TI中文支持网
TI专业的中文技术问题搜集分享网站

6678,bootload,big endianness

最近一直卡在6678大端模式的bootload上,6678设置 device status register为大端模式(0xe6b0)emifboot,之前用的两个版本的bootload改为引用大端模式库和工程,固化之后都没有成功load。单步运行时看出是boot了,而且在线调试是可以跑的,为什么一旦固化,bootload一直失败?找了很久的原因,也试着绕过bootloader,最后还是回归到boot固化的问题上。想请问一下,6678bootloader是否支持大端字节序模式?big endianness如果支持的话和小端有哪些区别?另外,在测试中有使用不烧写bootloader直接固化flash几个固定数,小端模式完全没问题,把这一套换到大端模式固化之后也起不来,是否大小端搬运数据方式不一样?这方面资料挺少的,如果有例程就更好了,求帮忙,万分感谢。

Shine:

抱歉,没有大端的例程。
processors.wiki.ti.com/…/KeystoneI_Bootloader_Resources_and_FAQ

看了一下bootloader文档,RBL默认是大端模式,Bootconvert6x is used to convert the boot table derived from a little endian application code to a big endian format. This is required as the RBL assumes all the images to be in big endian mode.

请看一下您的nor writer是否改成烧写大端模式的代码?

user4176403:

回复 Shine:

是的,所有可以修改的地方都改为大端了,包括库和烧写工具工程。大端程序固化之后断电启动时是否和小端启动有差别?固化之后总是起不来,bootload根本上是否和大小端有关系啊?bootother core和跳转地址也无关字节序啊。大端程序在线跑可以,固化之后总是无法启动

Shine:

回复 user4176403:

RBL默认是大端模式的,这个不能改的,可以用仿真器跟一下boot的过程,看加载的代码是否正确?ROM bootloader的源码可以下载。
processors.wiki.ti.com/…/Keystone_Device_Architecture

Ryan BL:

大小端都可以的,hex工具配置-M微你的机器模式,默认是小段,因为后面的转换工具会给你作转换,这块绕得很,我也研究乐好几天才搞明白,然后自己写了个全套工具,

赞(0)
未经允许不得转载:TI中文支持网 » 6678,bootload,big endianness
分享到: 更多 (0)