完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
工作平台28027+CCS5.5,想自己做Bootloader引导程序通过串口升级应用程序,这样就不用跳线;
FlashA区放Bootloader引导程序,FlashB/C/D区放应用程序; 用烧录器烧录时先烧录Bootloader引导程序至FlashA区(烧录时只擦除A区),仿真运行正常; 再用烧录器烧录应用程序至FlashB/C/D区(只擦除BCD区,由于还在调试阶段所以用仿真器烧录),每次烧录提示“Load Program Failed”,这个怎么解决? 另外,关于两个程序间跳转,不知跳转指令对不对,还需不需要其他处理? 从bootloader跳转至应用程序: asm(" MOVL XAR7, #0x3F0000"); //0x3F0000是FlashBCD区的起始地址 asm(" LB *XAR7"); 从应用程序跳转至bootloader: asm(" MOVL XAR7, #0x3F6000"); //0x3F6000是FlashA区的起始地址 asm(" LB *XAR7"); 多谢。 |
|
相关推荐
8 个讨论
|
|
diowqdnc 发表于 2018-11-30 08:57 多谢,按照你说的思路在map中找_c_int00地址,实际运行能正常跳转,是可行的,不过这样实现有点麻烦,源文件改动后_c_int00地址很可能也变了。 查找了下解决方法,由于_c_int00是从cmd文件BEGIN分配的地址跳转过来的,所以在跳转时直接跳转到BEGIN分配的地址去,实际运行OK,两个程序间能正常跳转了,这样的话跳转地址是分配好的,实现起来更方便些,不知这个实现方案有没有其他问题,因为没有在产品中应用过,不是很确定? 对于第一个问题也找到问题了,是由于之前两个程序的BEGIN地址空间分配的是一样的,导致烧录其中一个后,另一个就不能运行了,现在改为Bootloader分配自己的BEGIN地址空间,应用程序分配自己的BEGIN地址空间,两个程序间跳转也是根据这个地址跳转。 现在两个程序烧录后,每次最先运行的是Bootloader程序,这个先后顺序不知是确定的还是随机的,可不可以自己指定哪个程序最先运行? |
|
|
|
|
|
1 条评论
|
|
szoldman 发表于 2018-11-30 10:16 我懂你的意思了,就是0x3FFF6分配给应用程序codestart,则应用程序先执行,反之Bootloader程序先执行。由于我工程是把FlashA空间分配给Bootloader程序,所以肯定是先执行Bootloader程序,如果想让应用程序先执行,则需把FlashA空间分配给应用程序,我是这么理解的。关于Bootloader程序跳转等问题基本搞定。 不过,想问各位大侠,有没有C2PROG、SDFLASH或其他烧录软件的烧录过程及通信协议,烧录通信协议本来想自己定义,但是没有自己开发的上位机烧录,所以想让Bootloader程序兼容目前烧录软件的,不知各位大侠有木,多谢。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:55 , Processed in 1.131712 second(s), Total 76, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2661