
一.问题 近来项目需要用低成本STM32F042G6开发。遇到下面问题: 1.J-FLASH下载找不到stm32f0芯片。 2.做IAP升级程序,需要重新设定中断偏移量,但F0和F1及F4的中断偏移量设置相当不同。3 s4 t' h! r; r1 p3 I7 Y6 ]5 r 0 c( A B7 s) ^1 F 3.IAP程序的移植及注意事项。5 h2 @- W4 ~+ H, Q5 | 二.解决 # k; K: M2 K8 N& q: l: H# v* O 1.J-FLASH找不到F0芯片,很好解决,重新下载安装一个J-flash即可。* S* Z* i- p, n8 r 2.STM32F0中断偏移量的设置 你需要这样搞: (1)main函数开头部分加入这两行代码:# k. u0 _* @" \7 o- J4 Q3 Y$ ^6 V ![]() 3 C8 }8 x# l2 R 0x20000000不需要更改; 0x8003000是APP程序的偏移地址; 0xC0是这样计算出的:打开startup_stm32f042.s文件,从_Vectors往下数,总共48个中断向量入口; " L, _' O* ]( J( O ![]() 48 *4 = 192 = 0xC0;; \2 Q0 B8 D- R9 `; O1 D (2)然后MDK魔术棒这样设置:# S. `$ w& g0 X4 u6 [5 ?# O8 } ![]() , i8 e$ R- `3 l! M; Q Start中设置0x200000C0就是0x2000000+0xC0; Size中这样设置,就是0x1800(6Kbytes的Sram)-0xC0 = 0x1740;) w% @; u& w5 W% u: Q5 T. k - v8 p' K2 f6 @, S 好了,对于STM32F0的中断偏移就设置好了。+ F# W6 s! [) M: L) ^ \ a5 _ # |' Z2 t; U9 d' y, _ 3.IAP程序的移植及注意事项& N: [7 O" p' P7 k- m6 T, a% ]0 F 移植过程中,发现进入升级程序中,开始擦除Flash的对应页时,直接擦除了IAP程序的本身; ) G L4 d! }1 `" e& g+ u 通过已通查找,发现这里要修改为对应芯片Flash的对应值:/ \# E2 I7 g# q6 \% N# I: Z " k* b0 u! y! R( c. z( [0 o ![]() " Y" Q2 \3 ~! M* d, } 否则会因为Flash不匹配而误擦除; 议,转载请附上原文出处链接及本声明。 1 _ o: M: ^* [6 B1 W 0 m" l m3 }0 S4 Z# e |