很奇怪的问题!求助
片子: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函数都没进来。
恳请哪位大神指点,希望两个问题的原因是同一个。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
谢谢你的回复。第二个问题已经解决了,原因是boot里面的串口我初始化了,但是我的app里面又初始化了一次,这个好像有影响,具体原因待查。但是第一个还是没有头绪
可能就是要关闭资源,可是不知道怎么关。在新浪博客看见有个人和我的问题一样,不过他最后的解决办法是:放弃ucos直接跑裸板程序~~~,目前还没发现解决办法
一周热门 更多>