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:TMS570LC43 SCI 中断问题-

Guru**** 2033340 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/1034246/tms570lc4357-tms570lc43-sci-interrupt-issue--

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

您好!

我使用 Halcogen 来生成用于 SCI 评估的外设代码、如 TI 视频中所述。  

唯一的区别是、我选择 了采用 FreeRTOS 的微控制器。

观察结果-在所有已确认的接收设置下、无法在 sci_notification 中断处获得命中 、指示在调试期间接收到字符。

请指导解决此问题。

提前感谢!

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

    尊敬的 Anil:

    如果未启动 FreeRTOS 调度程序、您是否能够获得 SCI 中断?

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

    您好、QJ Wang、

    谢谢! 我将进行检查。

    我有另一个查询。 我在 CAN 评估中使用了 halcogen 示例代码。 它在内部回送模式下工作良好。

    当我尝试通过使用 CAN 收发器连接外部 CAN 总线来检查 CAN 是否正常工作时、无法接收数据。

    请求提供建议。 提前感谢- Anil  

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

    尊敬的 Anil:

    您是否会为此 CAN 问题打开一个新主题? 谢谢

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

    如果未启动 FreeRTOS 调度程序、您是否能够获得 SCI 中断?

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

    您好、QJ Wang、

    当 FreeRTOS schedular 未启动时、我无法获得 SCI 中断。

    请提供建议。

    谢谢

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

    Anil、您好!

    ARM 架构如下定义了异常向量:

    地址 异常
    0x00000000 复位
    0x00000004 未定义的指令
    0x00000008 软件中断
    0x0000000C  预取中止
    0x00000010 数据中止
    0x00000014 保留供将来使用
    0x00000018 IRQ
    0x0000001C 频率

    基本上、这些是 CPU 可以"陷阱"的例外情况。 应用程序使用异常向量来分支到相应的异常处理例程。 sys_intvecs.asm 在名为.intvecs 的段中定义这些分支指令。 然后、链接器命令文件将这个.intvecs 段映射到从地址0x00000000开始

    有关这些例外情况的更多信息、请参阅 CPU 技术参考手册。

    在向 CPU 发出中断请求之前、有几个"门":

    1. 产生中断请求的模块有一个寄存器来启用它可以产生的每个中断。
    2. 矢量中断管理器(VIM)具有寄存器、可根据优先级机制(先是较低的通道编号)将来自模块的中断请求转发到 CPU。
    3. 最后、必须将 CPU 本身配置为响应 VIM (IRQ 或 FIQ)转发的中断请求。

    请检查您的代码以确保中断已启用:

     sciREGx->SETINT

    2.选择 VIM 表中的 SCI 通道:

    3.启用 IRQ:_enable_IRQ();