1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
背景:自己开发的带一片C6678的电路板,6678外挂128MSPI NOR flash,通过SPI 启动。程序1使用ti转化工具链生成BIN文件烧写存储在FLASH block0(带SPI参数表,格式为大端),程序2使用TI转化工具生成BIN文件烧写存储在FLASH block1(小端模式,仅存储了BOOT TABLE,格式应该是类似EMIF加载启动的格式,没有BOOT代码)。已通过SPI 从FLASH加载启动程序1,在L2 0x10800000起始,程序1大小不到100K。
程序1运行后,从BLOCK1读取程序2,并按段加载到L2 0x10820000起始。 现在希望跳转到L2 入口运行,但是不知道如何触发运行。尝试了将程序2入口地址更新到MAGIC_ADDRESS,并设置IPCGR0 =1,但是程序2没有启动运行。 由于项目进度压得紧,C6678也是第一次接触,希望TI专家对程序切换再触发运行给予解答帮助,谢谢。 |
|
相关推荐
7个回答
|
|
1、这两个程序都放在核0运行?
2、可以尝试定义一个指针函数:void *entry(); 加载完程序2的代码后,将entry= 程序2的入口地址。 我上面写的可能不完全正确,可以参考IBL 中I2cinit.c main()中的代码跳转方法。 |
|
|
|
60user143 发表于 2018-6-21 10:53 Wu Feng,你好: 1 是要两个程序都在核0运行,先跑起程序1,再加载程序2运行; 2 IBL中,有个跳出语句, exit = (void (*)())entry; (*exit)(); 之前在调试过程中,程序1将程序2按段加载后,将程序2入口地址赋给entry,然后运行上面两句代码,程序并没有跳转到程序2。不知道在运行上面两句前还有没有别的操作。或者还有没有其他方法。 |
|
|
|
你的程序入口地址是0x10820000 还是map文件中的入口地址? |
|
|
|
Wu Feng 你好: 是map文件中的入口地址,转化工具生成的是BIN文件,格式为BOOT TABLE,开始4个字节为入口地址。 调试时,程序1将程序2加载后,从flash读取的入口地址也正确,确实是map中的入口地址。代码段也没问题,至少跟烧入的bin文件一样。 因为看多核启动流程,core0加载其他核后,更新MAGIC ADDRESS,然后发送IPCGRx产生IPC中断。 不知道core0自己能否给自己发送IPC中断,使程序切换。 |
|
|
|
0x10820000起始段为csl_vec段,也尝试了直接跳转过去,未能成功。 以前C6000单核,用过直接跳中断向量表的方法来切换。 |
|
|
|
mashiquan123 发表于 2018-6-21 11:33 给自己发ipc中断实现跳转没试过。还是求专家点拨吧 |
|
|
|
问题解决了把朋友
|
|
|
|
只有小组成员才能发言,加入小组>>
336 浏览 1 评论
529 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
774 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
651 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1130 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
56浏览 29评论
133浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
252浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
201浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
57浏览 13评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 03:57 , Processed in 0.914657 second(s), Total 57, Slave 51 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号