你好! 我对 bootloader 应用程序有疑问。
我正在使用 TI 的通过 CAN 总线引导加载器示例。
当我调用任何 Flash API 函数(第一个函数是 BLInternalFlashStartAddrCheck)时,该程序将跳到 UndefEntry。 它使用任何 Flash API 函数执行此操作。
我尝试使用 CCS 作为管理员,但它不起作用。 我不明白我的问题在哪里。
如果代码对您有帮助,我会留下代码。
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.
你好! 我对 bootloader 应用程序有疑问。
我正在使用 TI 的通过 CAN 总线引导加载器示例。
当我调用任何 Flash API 函数(第一个函数是 BLInternalFlashStartAddrCheck)时,该程序将跳到 UndefEntry。 它使用任何 Flash API 函数执行此操作。
我尝试使用 CCS 作为管理员,但它不起作用。 我不明白我的问题在哪里。
如果代码对您有帮助,我会留下代码。
王一杰! 感谢你的回复。 显然,这些函数是在 SRAM 上复制的。
/*内存映射*/
内存
{
引导程序(X):Origal=0x00000000 length=0x00000020 vfill = 0xffffffff
FLASH0 (RX):Origin =0x00000020 Length=0x00010000 vfill = 0xffffffff
FLASH1 (RX):Origal=0x00010020 length=0x07FF1FE0 vfill = 0xffffffff
SRAM (rwx):origy=0x08002000 length=0x00002000
堆栈(RW):原点=0x08004000长度=0x00002000
/*用户代码开始(2)*/
错误1
ECC_VEC (R):Original=(0xf0400000 +(START(向量)>> 3))
长度=(大小(向量)>3)
ecc={算法=algoL2R5F021,input_range=vectors}
ECC_FLA0 (R):Original=(0xf0400000 +)(开始(FLASH0)>> 3)
长度=(大小(FLASH0)>> 3)
ecc={算法=algoL2R5F021,input_range=FLASH0}
ECC_FLA1 (R):Original=(0xf0400000 +)(开始(FLASH1)>> 3)
长度=(大小(FLASH1)>> 3)
ecc={算法=algoL2R5F021,input_range=FLASH1 }
#endif
/*用户代码结束*/
}
内存浏览器:

我已经用过这个例子,但它是有效的,但对于 CCS V 10.0。 现在,我有 CCS v11.0。 这可能是问题吗? 我 认为 它甚至没有进入功能是很奇怪的。 谢谢!!
这可能是 CCS11无法从调试 器加载 F021闪存 API 的问题,因为 CCS 未能在大型 endian 设备上将某些部分正确编程为闪存。
https://sir.ext.ti.com/jira/browse/EXT_EP-10633 被提出,CCS 11.1中报告了该问题的固定位置