有的一些寄存器的参数只有在privileged mode模式下才能写,那么如果我想改这些参数,如何进入privileged mode模式,改完后又如何推出privileged mode模式。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
有的一些寄存器的参数只有在privileged mode模式下才能写,那么如果我想改这些参数,如何进入privileged mode模式,改完后又如何推出privileged mode模式。
你好,可以看一下这个帖子:e2echina.ti.com/.../tms570lc4357-privileged-mode
我没有找到解决我目前问题的答案。
我目前的问题是。我的SCI用DMA发送数据,在一开始初始化的时候我配置DMA发送的数据长度是10个字节。在程序运行的时候我想要SCI分别发送14和18和24个字节的数据包。这时我尝试修改DMA控制包的发送数据长度;dmaRAMREG->PCP[DMA_CH4].ITCOUNT = (14 << 16U) | 1; dmaSetChEnable(DMA_CH4, DMA_HW); 发现SCI的发送DMA停止了工作。我猜测是因为寄存器dmaRAMREG的ITCOUNT 参数处于privileged mode模式才能够写,所以应该在privileged mode模式下去修改该参数。
不知道您知道我修改完SCI的DMA控制包后SCI的发送DMA停止工作的原因吗?
好的收到您的问题,已帮您升级到英文论坛,如有答复将尽快给到您。
硬件通道使能位在块传输结束时会被清除。 您需要重新启用才能传输下一个块。 如果 SCI SET_TX_DMA 位被清除,也请重新启用来传输数据。
1. 清除 SCI TX DMA 位
2. 重新配置帧计数和元素计数
3. 设置硬件通道使能位
4. 设置 SCI TX DMA 位 ti 触发传输
sciREG1->CLEARINT |= SCI_SET_TX_DMA;
g_dmaCTRLPKT.FRCNT = size/2; -->new FRCNT
g_dmaCTRLPKT.ELCNT = 1;
dmaRAMREG->PCP[0].ITCOUNT = (g_dmaCTRLPKT.FRCNT << 16U) | g_dmaCTRLPKT.ELCNT;
/*Set dma channel 0 and 1 to trigger on hardware request*/
dmaSetChEnable(DMA_CH0, DMA_HW);
sciREG1->SETINT |= SCI_SET_TX_DMA;
希望以上回答对您有所帮助,如有其他问题请随时联系我们。