Function esp_idf_hal::sys::rmt_set_mem_block_num
source · pub unsafe extern "C" fn rmt_set_mem_block_num(
channel: u32,
rmt_mem_num: u8,
) -> i32
Expand description
@brief Set RMT memory block number for RMT channel
This function is used to configure the amount of memory blocks allocated to channel n
The 8 channels share a 512x32-bit RAM block which can be read and written
by the processor cores over the APB bus, as well as read by the transmitters
and written by the receivers.
The RAM address range for channel n is start_addr_CHn to end_addr_CHn, which are defined by:
Memory block start address is RMT_CHANNEL_MEM(n) (in soc/rmt_reg.h),
that is, start_addr_chn = RMT base address + 0x800 + 64 ∗ 4 ∗ n, and
end_addr_chn = RMT base address + 0x800 + 64 ∗ 4 ∗ n + 64 ∗ 4 ∗ RMT_MEM_SIZE_CHn mod 512 ∗ 4
@note
If memory block number of one channel is set to a value greater than 1, this channel will occupy the memory
block of the next channel.
Channel 0 can use at most 8 blocks of memory, accordingly channel 7 can only use one memory block.
@param channel RMT channel @param rmt_mem_num RMT RX memory block number, one block has 64 * 32 bits.
@return - ESP_ERR_INVALID_ARG Parameter error - ESP_OK Success