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.

[参考译文] TMS570LC4357:如何进入特权模式

Guru**** 2468460 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1053824/tms570lc4357-how-to-enter-privileged-mode

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

大家好、

问题:

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 参数处于要写入的特权模式、因此应在特权模式下修改此参数。

您能否帮助弄清修改 SCI 的 DMA 控制数据包后 SCI 的发送 DMA 停止工作的原因。

您可以帮助检查此案例吗? 谢谢。

此致、

樱桃

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我是否可以知道有任何更新?

    谢谢、此致、

    樱桃

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Cherry、

     在块传输结束时、硬件通道使能位被清零。 您需要重新启用它以传输下一个块。

    如果 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;      -->新的 FRCNT
    G_dmaCTRLPKT.ELCNT = 1;
    dmaRAMREG->PCP[0].ITCOUNT =(g_dmaCTRLPKT.FRCNT <<16U)| g_dmaCTRLPKT.ELCNT;

    /*将 DMA 通道0和1设置为在硬件请求时触发*/
    dmaSetChEnable (DMA_CH0、DMA_HW);

    sciREG1->SETINT |= SCI_SET_TX_DMA;  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    对于 ARM Cortex-R 架构、 有七种运行模式:USR、FIQ、IRQ、SVC、ABT、 UND 和 SYS。  用户模式以外的模式统称为特权模式。  有关特权模式的更多信息、请参考 Cortex-R4F TRM。

    HalCoGen 生成器件启动文件、在这个文件中、器件将进入系统特权模式。 在 sys_core.asm 中、您将找到_coreInitRegisters_()函数、其中内核寄存器在不同的 CPU 操作模式下进行初始化。  coreInitRegisters_()在一开始的 sys_startup.c 中被调用。  

    如果在用户模式下运行某些任务以限制其对关键内存区域的访问, 则不能简单地从用户模式切换到系统或管理器模式。

    在用户模式下、进入特权模式需要一个异常。  软件可以通过两种方式启动此操作: (a)使用 SVC 调用、它将使您进入 SWI 处理程序并进入管理员模式、(b)使用系统模块(SSI)的系统软件中断、它将为您生成 IRQ 中断并使您进入 IRQ 模式。