feat(rmt): support calling rmt_receive in ISR callback
This commit is contained in:
@@ -552,6 +552,8 @@ IRAM 安全
|
||||
|
||||
启用该选项可以保证 cache 禁用时的中断运行,但会相应增加 IRAM 占用。
|
||||
|
||||
另外一个 Kconfig 选项 :ref:`CONFIG_RMT_RECV_FUNC_IN_IRAM` 可以将 :cpp:func:`rmt_receive` 函数放进内部的 IRAM 中,从而当 flash cache 被关闭的时候,这个函数也能够被使用。
|
||||
|
||||
.. _rmt-thread-safety:
|
||||
|
||||
线程安全
|
||||
@@ -560,6 +562,10 @@ IRAM 安全
|
||||
RMT 驱动程序会确保工厂函数 :cpp:func:`rmt_new_tx_channel`、:cpp:func:`rmt_new_rx_channel` 和 :cpp:func:`rmt_new_sync_manager` 的线程安全。使用时,可以直接从不同的 RTOS 任务中调用此类函数,无需额外锁保护。
|
||||
其他以 :cpp:type:`rmt_channel_handle_t` 和 :cpp:type:`rmt_sync_manager_handle_t` 作为第一个位置参数的函数均非线程安全,在没有设置互斥锁保护的任务中,应避免从多个任务中调用这类函数。
|
||||
|
||||
以下函数允许在 ISR 上下文中使用:
|
||||
|
||||
- :cpp:func:`rmt_receive`
|
||||
|
||||
.. _rmt-kconfig-options:
|
||||
|
||||
Kconfig 选项
|
||||
@@ -567,6 +573,7 @@ Kconfig 选项
|
||||
|
||||
- :ref:`CONFIG_RMT_ISR_IRAM_SAFE` 控制默认 ISR 处理程序能否在禁用 cache 的情况下工作。详情请参阅 :ref:`rmt-iram-safe`。
|
||||
- :ref:`CONFIG_RMT_ENABLE_DEBUG_LOG` 用于启用调试日志输出,启用此选项将增加固件的二进制文件大小。
|
||||
- :ref:`CONFIG_RMT_RECV_FUNC_IN_IRAM` 用于控制 RMT 接收函数被链接到系统内存的哪个位置(IRAM 还是 Flash)。详情请参阅 :ref:`rmt-iram-safe`。
|
||||
|
||||
应用示例
|
||||
--------------------
|
||||
|
||||
Reference in New Issue
Block a user