STMCU小助手
发布时间:2021-11-22 21:03
|
一.问题 2 g/ e1 ^. e/ c$ A3 P/ } 近来项目需要用低成本STM32F042G6开发。遇到下面问题:! g* f# A* Q, c- t4 u' f 1.J-FLASH下载找不到stm32f0芯片。( |9 K# \+ V. X @' E/ ~( N8 _ |: i: \4 u# u! Y' ^0 M& Z8 r6 D 2.做IAP升级程序,需要重新设定中断偏移量,但F0和F1及F4的中断偏移量设置相当不同。 8 Z$ X5 c. X8 Z" V* a8 M2 ^ 3.IAP程序的移植及注意事项。 2 I8 m. t* c0 r. O 二.解决 9 ^) g, [8 N L* H/ j( g G/ N, ^ 1.J-FLASH找不到F0芯片,很好解决,重新下载安装一个J-flash即可。 2.STM32F0中断偏移量的设置 $ u, k& @3 G! |5 \/ m. @1 G2 k 你需要这样搞:: W5 R3 W9 b; ^! J& z+ |$ F ! ^8 P: X E$ N A (1)main函数开头部分加入这两行代码:
0x20000000不需要更改; % c* M) d( t0 Z 0x8003000是APP程序的偏移地址;' N6 j3 j% N/ Q2 Y) M : L9 p, L$ W1 c7 @ 0xC0是这样计算出的:打开startup_stm32f042.s文件,从_Vectors往下数,总共48个中断向量入口;0 [+ r7 h0 ^5 [: d- L$ Q , ~+ E3 J( I0 e$ _8 j
1 z1 B9 ~$ k% X 48 *4 = 192 = 0xC0; (2)然后MDK魔术棒这样设置:# R% w) o n8 _% n( ^; b/ V/ [( y 9 }4 }2 k3 w E" ^
Start中设置0x200000C0就是0x2000000+0xC0; 9 K8 Z" E# P, w9 z1 S U: t$ a Size中这样设置,就是0x1800(6Kbytes的Sram)-0xC0 = 0x1740;$ K9 I: P7 s0 x5 h: ^ 好了,对于STM32F0的中断偏移就设置好了。 / Y! j/ c( \: w3 Z/ n 3.IAP程序的移植及注意事项; O8 B3 T. t% [% M/ d3 `: B 移植过程中,发现进入升级程序中,开始擦除Flash的对应页时,直接擦除了IAP程序的本身; 通过已通查找,发现这里要修改为对应芯片Flash的对应值:
2 E9 A% m. y' p4 k$ Z 否则会因为Flash不匹配而误擦除; 议,转载请附上原文出处链接及本声明。 $ q- B% Y$ L4 z+ i Y8 j * z* w- W6 Q* y! |1 [% r: ^ |
微信公众号
手机版