请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LAUNCHXL-F2800157尊敬的 TI 社区:
我们正在关注 这个主题 、其中 Matt *** 建议在闪存中创建“使用备用 GPIO 的自定义 CAN 引导加载程序(通过重新调整 CAN 闪存内核的用途来从闪存而不是 RAM 执行,可以轻松完成)“。
我们一直在努力实施这一方法、但遇到了一些概念和技术方面的挑战、我们希望在继续工作之前加以澄清。
了解当前启动流程
- ROM 引导加载程序 (从位于 0x3FC4EA 的 ROM 运行):
- 在预定义的 GPIO 引脚上配置 CAN
- 通过 CAN 从 PC 接收闪存编程内核
- 将该内核加载到 RAM
- 跳转到 RAM 中的内核
- 闪存内核 (从 RAM 运行):
- Re 初始化 CAN
- 对闪存 API 进行初始化
- 擦除闪存扇区
- 通过 CAN 从 PC 接收应用固件
- 将应用程序编程到闪存
- 跳转到新应用程序
我们的实施目标
我们想要创建一个 自定义第一阶段引导加载程序 以便:
- 从我们基于闪存的应用程序运行(例如,地址为 0x80000)
- 允许我们为 CAN 使用自定义 GPIO 引脚(不限于 ROM 选项)
- 从 PC 接收闪存内核并将其加载到 RAM
- 跳转到用于实际闪存编程的基于 RAM 的内核
本质上、我们希望将 ROM 引导加载程序的功能替换为可定制的 GPIO 引脚/波特率等
您能否提供有关如何正确实现此自定义第一级引导加载程序的指导?
- 从闪存内核示例中提取哪些函数/代码
- 如何构建链接器文件以适当地保留 RAM 段
- 用于从 PC 接收闪存内核的正确数据协议
如果有任何用于创建自定义第一阶段引导加载程序的示例项目或其他文档、请告知我们。
感谢您的指导!
此致、
Taif Shamsi