DM648二次boot问题

2019-03-26 15:16发布

碰到的问题和这个帖子有点类似。http://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=437457&highlight=%C7%EB%BD%CCTMS320VC5509A%B6%FE%B4%CEBoot%CE%CA%CC%E2


自己按照DM648评估板提供的二次boot程序进行了修改,用在自己的648板子上。连接仿真器时,二次boot程序可以把flash中的用户程序搬到运行空间里,且用户程序运行正常。当把二次boot程序烧写到flash第一扇区后,裸板运行时发现二次boot没有成功。
会是什么问题??  板子硬件是否存在问题呢??

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
lelee007
1楼-- · 2019-03-27 02:12
 精彩回答 2  元偷偷看……
saintstar
2楼-- · 2019-03-27 02:38
<
lelee007 发表于 2015-1-29 17:32
boot方式选择正确吗?

二次boot的这个boot是bootrom直接跳转的吧?烧入flash的是bin文件吗?bootrom不识别其他格式的文件的哦
感谢回复! boot方式是按照datasheet选择的。复位之后,DM648从内部ROM空间运行程序RBL,地址为0x0080 0000.RBL程序读取EMIFA接口中地址为0XA000 0000的代码和数据,该地址为NOR flash的第一扇区起始地址,存放的是我的bootloader程序UBLUBL配置PSC,PLL,DDR,EMIF,MUX等,然后从flash其他扇区拷贝应用程序到运行地址空间。
UBL和自己的程序两个ais文件烧入flash,通过memory查看flash中的数据是正常的,此时直接通过仿真器运行UBL程序,可以成功把
自己的程序搬进来并正常运行。之后我断电,通过开关设置
bootmode方式,再上电运行,boot不成功,说明UBL程序没有跑起来。


lelee007
3楼-- · 2019-03-27 06:48
简单一点说,你这样的boot方式,应该是要把.out里边的text段直接放在nor flash的起始扇区

所以,你要check一下,你烧写的时候,是把.out镜像文件烧到flash中去了,还是把镜像文件中的各个segment烧到flash中去了,如果是直接把镜像文件烧到flash中去了,拿肯定没法直接启动。

镜像文件烧到flash中,用仿真器运行,仿真器是可以解析里边的各个segment,然后加载到运行地址,这个完全没有问题
saintstar
4楼-- · 2019-03-27 11:06
lelee007 发表于 2015-2-2 12:19
简单一点说,你这样的boot方式,应该是要把.out里边的text段直接放在nor flash的起始扇区

所以,你要check一下,你烧写的时候,是把.out镜像文件烧到flash中去了,还是把镜像文件中的各个segment烧到flash中去了,如果是直接把镜像文件烧到flash中去了,拿肯定没法直接启动。

镜像文件烧到flash中,用仿真器运行,仿真器是可以解析里边的各个segment,然后加载到运行地址,这个完全没有问题
DM648下,flash加载需要将.out格式转换为.ais格式。也就是说,烧写的时候是把UBL程序以ais格式烧到flash中。上电启动时,固化在ROM中的程序自动从nor flash的第一扇区读取ais命令字,然后将UBL程序各个数据段复制到RAM的运行空间。自己的应用程序也是以ais格式烧进flash的,在UBL中通过解析ais命令字,将各个数据段复制到指定的地址。   按照你回复中说的,这种方式应该不会导致连接仿真器时可以加载成功,烧进flash后加载不成功吧?




saintstar
5楼-- · 2019-03-27 15:53
 精彩回答 2  元偷偷看……
xiaomianzhou
6楼-- · 2019-03-27 21:49
 精彩回答 2  元偷偷看……

一周热门 更多>