Function esp_idf_svc::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