mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 19:13:21 +00:00
37 lines
1.3 KiB
ReStructuredText
37 lines
1.3 KiB
ReStructuredText
SoC 能力宏
|
|
==========
|
|
|
|
:link_to_translation:`en:[English]`
|
|
|
|
不同型号的 ESP 芯片内部会集成不同的硬件模块。哪怕是同一种模块,在不同的芯片上也可能具有细微的差异。ESP-IDF 中提供了一份小型的“数据库”来描述不同芯片之间的差异(注意,我们不描述共性,只描述差异)。这份“数据库“的内容以宏定义的形式定义在 **soc/soc_caps.h** 文件中,我们称之为 **SoC 能力宏**。用户可以通过在代码中使用条件编译指令(比如 ``#if``)来使用这些宏,从而控制实际需要编译的代码内容。
|
|
|
|
.. note::
|
|
|
|
请注意, **soc/soc_caps.h** 中的内容目前还不稳定,未来可能会发生重大更改。
|
|
|
|
使用 SoC 能力宏
|
|
---------------
|
|
|
|
我们推荐通过下面的宏函数来间接地访问 SoC 能力宏:
|
|
|
|
.. list-table::
|
|
:widths: 30 60 80
|
|
:header-rows: 1
|
|
|
|
* - 宏函数
|
|
- 描述
|
|
- 示例
|
|
* - :c:macro:`SOC_IS`
|
|
- 判断芯片型号
|
|
- ``#if SOC_IS(ESP32)`` 判断是否为 ESP32 芯片
|
|
* - :c:macro:`SOC_HAS`
|
|
- 判断芯片是否具有某个硬件模块或功能
|
|
- ``#if SOC_HAS(DAC)`` 判断是否具有 DAC 模块
|
|
|
|
|
|
API 参考
|
|
--------
|
|
|
|
.. include-build-file:: inc/soc_caps.inc
|
|
.. include-build-file:: inc/soc_caps_eval.inc
|