STMCU小助手
发布时间:2021-11-22 21:03
|
一.问题' A9 B8 I4 g4 y u" H' k- T% s 3 o( t: o9 M/ Z1 s 近来项目需要用低成本STM32F042G6开发。遇到下面问题:- @7 i7 W4 \' t2 ?1 m! h7 Z 1.J-FLASH下载找不到stm32f0芯片。; G# o/ B! D; R k5 ~, s " \9 P5 |# s1 k) x. U$ ], j 2.做IAP升级程序,需要重新设定中断偏移量,但F0和F1及F4的中断偏移量设置相当不同。 " N5 Y/ S) i7 r6 L! y5 b7 } 3.IAP程序的移植及注意事项。; C- q; _) M1 c- m 1 A7 p* |- q' m. M( Z 二.解决2 O! q# D) R$ O7 u5 O3 F7 ^! n 1.J-FLASH找不到F0芯片,很好解决,重新下载安装一个J-flash即可。* {+ w9 v+ V1 G& g 6 ~1 H1 z9 @0 |! C5 h0 O1 x 2.STM32F0中断偏移量的设置 你需要这样搞: . V. [/ _/ A& k9 h* n D3 _+ W (1)main函数开头部分加入这两行代码:
; v4 b) D3 Q. K1 M' J3 { 0x20000000不需要更改;* T3 a9 {6 {. E3 P1 Y/ p0 r ; r' L3 }$ p0 A3 T 0x8003000是APP程序的偏移地址; + y: @) Z* T2 S: m 0xC0是这样计算出的:打开startup_stm32f042.s文件,从_Vectors往下数,总共48个中断向量入口;
# H( I: Z- O+ m s9 A# q7 V 48 *4 = 192 = 0xC0; 9 D7 i6 ]3 m% H1 H+ n (2)然后MDK魔术棒这样设置:
1 X( V9 O( a5 ^+ f9 P$ e Start中设置0x200000C0就是0x2000000+0xC0; / G$ B% W& N: e6 X Size中这样设置,就是0x1800(6Kbytes的Sram)-0xC0 = 0x1740;; H: A2 Z$ d( w/ a. r * H1 o0 U5 H9 J1 v R% ^ 好了,对于STM32F0的中断偏移就设置好了。 3 L( m4 j7 s3 f" } % Y% v" W8 a) C 3.IAP程序的移植及注意事项" L1 P% L. o/ h& i 移植过程中,发现进入升级程序中,开始擦除Flash的对应页时,直接擦除了IAP程序的本身; 通过已通查找,发现这里要修改为对应芯片Flash的对应值:
, I3 s6 E+ \, x; a$ @' ^7 { q 否则会因为Flash不匹配而误擦除; 议,转载请附上原文出处链接及本声明。* w& v* k9 `1 }$ w( @ U: d; S5 J- S+ M4 Z7 Q |
微信公众号
手机版