一.问题
近来项目需要用低成本STM32F042G6开发。遇到下面问题:
1.J-FLASH下载找不到stm32f0芯片。
2.做IAP升级程序,需要重新设定中断偏移量,但F0和F1及F4的中断偏移量设置相当不同。
3.IAP程序的移植及注意事项。
二.解决
1.J-FLASH找不到F0芯片,很好解决,重新下载安装一个J-flash即可,软件见链接。
链接:https://pan.baidu.com/s/1i4j-jokrlyC7ToREVROgPA
提取码:pu13
2.STM32F0中断偏移量的设置,参考如下博主,写的很好:
http://www.51hei.com/bbs/dpj-40235-1.html
你需要这样搞:
(1)main函数开头部分加入这两行代码:
0x20000000不需要更改;
0x8003000是APP程序的偏移地址;
0xC0是这样计算出的:打开startup_stm32f042.s文件,从_Vectors往下数,总共48个中断向量入口;
48 *4 = 192 = 0xC0;
(2)然后MDK魔术棒这样设置:
Start中设置0x200000C0就是0x2000000+0xC0;
Size中这样设置,就是0x1800(6Kbytes的Sram)-0xC0 = 0x1740;
好了,对于STM32F0的中断偏移就设置好了。
3.IAP程序的移植及注意事项
从网上找的官方的STM32F051的IAP程序,地址在这里:
http://www.openedv.com/forum.php?mod=viewthread&tid=47346&highlight=STM32F0%2BIAP
移植过程中,发现进入升级程序中,开始擦除Flash的对应页时,直接擦除了IAP程序的本身;
通过已通查找,发现这里要修改为对应芯片Flash的对应值:
否则会因为Flash不匹配而误擦除;
-----------------------------------------------
最后,由于规定,真的不能传源码,各位谅解。。。