STMCU小助手
发布时间:2021-11-22 21:03
|
一.问题2 P6 d( ^- K2 C" } 近来项目需要用低成本STM32F042G6开发。遇到下面问题: / F. ^% |- }( g$ z1 j* | 1.J-FLASH下载找不到stm32f0芯片。 2.做IAP升级程序,需要重新设定中断偏移量,但F0和F1及F4的中断偏移量设置相当不同。 3.IAP程序的移植及注意事项。8 V" ?' H8 i2 \+ ? / B6 H0 [5 v9 Q4 z" l5 [ 二.解决1 X: I$ p, G1 c# M; B 1.J-FLASH找不到F0芯片,很好解决,重新下载安装一个J-flash即可。 - i; N) f7 h1 d- W8 {( b 2.STM32F0中断偏移量的设置 7 R3 R2 ~/ w6 W+ ^& g& T: _6 Z 你需要这样搞:/ |) Z: o0 }6 p" I (1)main函数开头部分加入这两行代码:. i( m& v+ R! s3 m* D) l1 ?
3 p4 X$ e% ]1 X( n- q 0x20000000不需要更改;/ p8 b6 ~. b4 W 6 P) o# K( C% M* W6 B 0x8003000是APP程序的偏移地址; 0xC0是这样计算出的:打开startup_stm32f042.s文件,从_Vectors往下数,总共48个中断向量入口;% L/ m# M( f, g+ q" k r z) H ! \( H9 b" @( Z2 |6 Q+ F$ h
48 *4 = 192 = 0xC0; (2)然后MDK魔术棒这样设置:
3 @( }5 u h }8 [) h' L/ O Start中设置0x200000C0就是0x2000000+0xC0; , L: m" i4 I2 P" Q3 U" m/ J6 o1 H Size中这样设置,就是0x1800(6Kbytes的Sram)-0xC0 = 0x1740; 好了,对于STM32F0的中断偏移就设置好了。! p$ i Q: \& u! G( }; E9 S/ K! F ) N( A0 }. y; ~ 3.IAP程序的移植及注意事项 - M* n* ~& z0 R, W' e }5 | 移植过程中,发现进入升级程序中,开始擦除Flash的对应页时,直接擦除了IAP程序的本身;$ u7 ]8 D1 O; F3 p, U A 通过已通查找,发现这里要修改为对应芯片Flash的对应值: / E, ^7 V {3 Q6 ^
4 V* c k: _ d* f2 t7 D1 W 否则会因为Flash不匹配而误擦除;$ n* H! {$ j/ x 议,转载请附上原文出处链接及本声明。 ~8 Q4 H$ E0 Z, b- ]# l! P ; L. S, X1 c! L+ r p6 p |
微信公众号
手机版