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.
工具/软件:Code Composer Studio
您好、E2E、
我使用 的是 TMS570LC4357 。 我在 https://git.ti.com/cgit/hercules_examples/hercules_examples/中找到了基于 CAN 的引导加载程序。 只需进行少量修改、引导加载程序就可以正常用于我自己的器件。
现在、我想为我的器件提供以太网引导加载程序、但到目前为止、没有适用于 TMS570LC4357的基于以太网的引导加载程序。
因此、我认为、通过将基于 CAN 的引导加载程序的通信层替换为基于以太网的引导加载程序、可能对我有用。 我删除了有关 CAN 通信的所有代码、在中添加了 lwip 1.41、并采用了 UDP。
我的以太网引导加载程序的 bl_link.cmd 文件由 QJ Wang 定制(我只需从 QJ Wang 提供的示例引导加载程序工程复制该文件)。 问题出在这里:
1. 在 BL_LINK_cmd 和以太网 TX/Rx 中断被启用的情况下、函数_c_int00会反复调用。 保持这种状态。
我在文件 hl_sys_startup.c 的第113行中设置一个断点
/*复位处理程序:以下指令从系统异常状态寄存器中读取
*以确定 CPU 复位的原因。
*
rstSrc = getResetSource();
调用函数_c_int00时、rstSrc 为 no_reset。 那么、为什么 会反复调用_c_int00呢?
但是、如果 从编译中排除文件 bl_link.cmd 并且使用 HALCoGen 生成的 hl_sys_link.cmd、lwip 运行良好。 当然、主函数需要一些更改。
我在下面附上了我的项目。 尚未完成。 希望听到您的声音。
e2e.ti.com/.../4403.TMS570LC43x_5F00_BootLoader_5F00_Ethernet.zip
您好!
CAN 引导加载程序示例中的链接器 cmd 文件也是为了生成闪存 ECC。 如果您使用此链接器 cmd 文件、则必须在加载波特图加载程序时在 CCS 中禁用"Auto ECC Generation"和"Flash Verification"。
当您使用通过 HALCOGen 生成的链接器 cmd 文件时、在 将引导加载程序加载到闪存时、您是否启用了"自动 ECC 生成"?
这是针对通过 HALCoGen 生成链接器 cmd 的工程、还是针对 CAN 引导加载示例中生成的链接器 cmd 的工程?
来自 CAN 的链接器 cmd 引导加载示例。
为什么 可能会反复调用函数_c_int00?
新:如果 启用了任何外设中断、将使用示例链接 cmd 文件调用_c_int00。
问题已出现。
我不知道原因、但是 、对于示例链接器 cmd 文件、寄存器 IRQVECREG (IRQ 中断矢量寄存器)的值始终为零。 VIM 运行不好。
每当发生中断时、CPU 跳转到保存在 IRQVECREG 中的地址。 在当前情况下、IRQVECREG = 0、它是复位的入口。
然后调用 funion _c_int00。
在 main()中添加 funion vimInit()可能会解决问题。