部件号: RM57L843
您好:
我正在使用如下所示的 HET IDE 代码:
l00 CNT{next=l01、reqnum=0、request=GENREQ、reg=a、max=5};
L01 ECMP{next=L02、hr_lr=high、en_pin_action=on、COND_addr=L03、pin=27、action=PULSEHI、reg=A、data=0、hr_data=0};
L02 MOV32{REMOTE=L01、type=IMTOREG&REM、reg=none、data=0、hr_data=0};
L03 BR{next=L00、COND_addr=L00、event=NOCOND};
我尝试g_test_tx_buf使用 HET + HTU 传输存储在中的数据:
uint32_t g_test_tx_buf[2048];
设置功能:
void Transmit_Engine_Setup (uint32_t * sourceAddr、uint32_t targetIdx、uint32_t len)
{
htuREG1->GC = 0x00010000;
for (volatile int i=0;i<3000;i++);
htuREG1->CPENA = 0x00;
htuREG1->MPCS = 0x00000005;
htuDCP1[0].IFADCR =(uint32_t) sourceAddr;
htuDCP1[0].IHADDRCT =(1U << 23)|(1U << 18)| targetIdx;
htuDCP1[0].ITCOUNT = 0x00010000 + len;
hetREG1->GCR = 0x00010001;
hetREG1->REQENS =(1U << 0);
htuREG1->CPENA = 0x01;
}
函数调用:
Transmit_Engine_Setup (g_test_tx_buf、HTU_DCP0_TARGET、2048);
根据 TRM(SPNU562A、第 1168 页)、IFTCOUNT中的字段ITCOUNT为 8 位、因此每帧最大传输计数为 255。
由于这一限制、似乎无法在单个操作中传输 2048 个字。
我的问题是:
- 是否有一种使用 HTU 传输大于 255 个字的缓冲区的推荐方法?
- 是否应该通过将传输拆分成多个 HTU 帧来处理?
- 是否有任何硬件支持的机制(例如自动重新加载,链接或循环模式)可以有效处理更大的传输?
请提供任何指导。
谢谢你。