 |
思澈科技软件开发工具包
2.20
|
|
EXTDMA 在HCPU, 用于内存-内存之间数据的高效率搬运工作(特别是与PSRAM相关的数据搬运, 比DMA内存-内存的传输更高效),并且在搬运的同时可实时进行图像的有损压缩(54x不支持)。
主要特性
- 源地址和目标地址均为4字节访问, 且地址均需要4字节对齐, 长度也要4字节对齐
- 源地址和目标地址独立支持BURST访问(BURST1/4/8/16),并支持地址自动递增
- 单次配置最大传输单元数为2^20-1,每单元为4字节传输,即单次最大传输4M bytes
- 支持3种事件标志-传输完成,过半传输,传输出错
- 可配置为图像压缩模式,支持RGB565/RGB888/ARGB8888格式输入
各种颜色格式下的压缩档位对应压缩率(共10档)
- rgb565 {1.33, 1.47, 1.6, 1.73, 1.87, 1.93, 2, 2.13, 2.26, 2.4}
- rgb888 {2, 2.2, 2.4, 2.6, 2.8, 2.9, 3, 3.2, 3.4, 3.6}
- argb8888 {2.67, 2.93, 3.2, 3.47, 3.73, 3.86, 4.0, 4.27, 4.53, 4.8}
使用EXTDMA示例1
将0x20000000地址上100x100大小的RGB888图片压缩并搬运到0x60000000,压缩档位1(即2倍)
void EXTDMA_IRQHandler(void)
{
rt_interrupt_enter();
rt_interrupt_leave();
}
static void dma_done_cb()
{
}
static void dma_err_cb()
{
}
void main(void)
{
DMA_Handle.
Init.
DstInc = HAL_EXT_DMA_DST_INC | HAL_EXT_DMA_DST_BURST16;
{
}
}
EDMA_InitTypeDef Init
Definition: bf0_hal_ext_dma.h:135
uint32_t SrcInc
Definition: bf0_hal_ext_dma.h:81
uint16_t len
Definition: bf0_ble_ancs.h:226
@ HAL_EXT_DMA_XFER_CPLT_CB_ID
Definition: bf0_hal_ext_dma.h:121
@ HAL_EXT_DMA_XFER_ERROR_CB_ID
Definition: bf0_hal_ext_dma.h:123
HAL_StatusTypeDef HAL_EXT_DMA_Start_IT(EXT_DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t Counts)
Start the DMA Transfer with interrupt enabled.
HAL_StatusTypeDef HAL_EXT_DMA_Init(EXT_DMA_HandleTypeDef *hdma)
Initialize the DMA according to the specified parameters in the DMA_InitTypeDef and initialize the as...
@ HAL_OK
Definition: bf0_hal_def.h:75
#define HAL_EXT_DMA_SRC_BURST16
Definition: bf0_hal_ext_dma.h:198
EXT_DMA handle Structure definition.
Definition: bf0_hal_ext_dma.h:132
@ HAL_ERROR
Definition: bf0_hal_def.h:76
bool cmpr_en
Definition: bf0_hal_ext_dma.h:87
uint32_t src_format
Definition: bf0_hal_ext_dma.h:91
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
Set the priority of an interrupt.
HAL_StatusTypeDef
HAL Status structures definition.
Definition: bf0_hal_def.h:74
uint16_t row_num
Definition: bf0_hal_ext_dma.h:90
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
Enable a device specific interrupt in the NVIC interrupt controller.
uint8_t cmpr_rate
Definition: bf0_hal_ext_dma.h:88
HAL_StatusTypeDef HAL_EXT_DMA_RegisterCallback(EXT_DMA_HandleTypeDef *hdma, HAL_EXT_DMA_CallbackIDTypeDef CallbackID, void(*pCallback)(EXT_DMA_HandleTypeDef *_hdma))
Register callbacks.
void HAL_EXT_DMA_IRQHandler(EXT_DMA_HandleTypeDef *hdma)
Handle DMA interrupt request.
uint32_t DstInc
Definition: bf0_hal_ext_dma.h:84
#define HAL_EXT_DMA_SRC_INC
Definition: bf0_hal_ext_dma.h:200
uint16_t col_num
Definition: bf0_hal_ext_dma.h:89