程序烧写,升级

2019-07-21 00:26发布

很奇怪的问题!求助
片子:stm32f407IE,片上Flash 只有512k
主角:ZH816.bin(项目最终程序) , Test.bin(测试文件) ,和 boot工程(以后程序升级用的)。
工具:jFlash5.10,keil5
目的:将 ZH816.bin 烧写到0x0800 0000地址,并使之运行。


问题一:
          ZH816 和 Test 两个工程都编译通过,用keil直接下载到板子里面也都可以正常运行。keil download到板子里面默认的是 .axf文件(是吧?ps:我测试过),现在我想利用jFlash将ZH816.bin文件烧写到板子里面,那么现在问题来了: Test.bin (大小15K,裸板程序) 烧写没问题,手动复位板子后可以正常运行,但是 ZH816.bin (大小252k)烧写后,程序烧写进去了,外设初始化也都完成了,但是main函数中开的任务一个没跑起来,就是说ucos没有反应!不知为何


问题二:
          抛开问题一(彻底的)。现在我的boot程序放在0x0800 0000(片上flash开始处),其main函数只执行一句话,while(1){ iap_load_app(FLASH_APP1_ADDR); },其中FLASH_APP1_ADDR = 0x0801 0000 ,上电直接加载0x0801 0000 处的程序。问题来了:当我将Test.bin 通过jFlash烧写到0x0801 0000 处后,复位,两套程序(boot和Test)正常运行,但是我将ZH816烧到0x0801 0000处后,死机,ZH816的main函数都没进来。


恳请哪位大神指点,希望两个问题的原因是同一个。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
jermy_z
1楼-- · 2019-07-21 04:58
 精彩回答 2  元偷偷看……
xxoospring
2楼-- · 2019-07-21 08:51
jermy_z 发表于 2016-1-5 15:18
如果程序大小没有超过Flash空间,可以检查下你的APP地址和偏移量是否设置正确

谢谢你的回复。第二个问题已经解决了,原因是boot里面的串口我初始化了,但是我的app里面又初始化了一次,这个好像有影响,具体原因待查。但是第一个还是没有头绪
jermy_z
3楼-- · 2019-07-21 13:22
 精彩回答 2  元偷偷看……
xxoospring
4楼-- · 2019-07-21 14:32
xxoospring 发表于 2016-1-5 15:57
谢谢你的回复。第二个问题已经解决了,原因是boot里面的串口我初始化了,但是我的app里面又初始化了一次 ...

可能就是要关闭资源,可是不知道怎么关。在新浪博客看见有个人和我的问题一样,不过他最后的解决办法是:放弃ucos直接跑裸板程序~~~,目前还没发现解决办法

一周热门 更多>