STMCU小助手
发布时间:2021-11-22 21:03
|
一.问题) l; m6 c) O& d3 u* N3 L+ P 近来项目需要用低成本STM32F042G6开发。遇到下面问题: : @4 G4 j- r" D& v* a 1.J-FLASH下载找不到stm32f0芯片。# t0 L$ {4 x* p1 l4 F5 h; T % Z- i% P* w m% }& {' `* b. _/ F3 U 2.做IAP升级程序,需要重新设定中断偏移量,但F0和F1及F4的中断偏移量设置相当不同。6 U& [# T3 h* @; ?' h; ?; s& ]! o 3.IAP程序的移植及注意事项。" E+ }% y3 G% Z( u . H: E* C; D5 T8 N; c( [3 v" g 二.解决, }# Z' }% M, A( U( a/ n2 @ 1.J-FLASH找不到F0芯片,很好解决,重新下载安装一个J-flash即可。* ^, i4 p# c' I# D" h# e# m- x . b' T- a# ?# f- m3 X& b' l 2.STM32F0中断偏移量的设置% r9 ` k% h7 I, k5 g- Q! Q' J 你需要这样搞:3 Q7 c6 i; ^% Q/ t% X" u, l (1)main函数开头部分加入这两行代码:8 I; i9 q# H5 d# J9 K0 X / \/ Z7 Y5 ?8 {9 E
: K0 \: ~8 J( H: v+ q: p 0x20000000不需要更改;! C; M6 U! F- e, |' q 9 l/ R2 w3 v K: ?7 A 0x8003000是APP程序的偏移地址;* [* f4 v6 W2 s# s 0xC0是这样计算出的:打开startup_stm32f042.s文件,从_Vectors往下数,总共48个中断向量入口; 8 y0 ^4 e# U' I' g; x( {2 E f3 H
$ J3 I0 u J3 ^* V5 p4 n9 w# R 48 *4 = 192 = 0xC0;5 O2 A2 y O {- d, e8 B , N+ Y2 D# i4 p( v (2)然后MDK魔术棒这样设置:# K" o* H9 @3 C3 u 8 S3 f4 Q |/ S$ Y& G) {
+ n. P/ e3 r. ]4 R9 u Y8 E; @ Start中设置0x200000C0就是0x2000000+0xC0;0 C, ]# G) g4 q' l* S3 z: x6 p * d! b, u4 k9 z* F8 `, F$ Z. X2 f# v Size中这样设置,就是0x1800(6Kbytes的Sram)-0xC0 = 0x1740;' g: q3 }' D+ y' O 8 V" H) J' E% F6 L5 s 好了,对于STM32F0的中断偏移就设置好了。6 m6 {+ c6 t- O0 T8 C9 u( ^ " r" ^6 A3 Y6 a: q 3.IAP程序的移植及注意事项" X2 m/ s5 ~9 p g1 ?* K- Z* T 移植过程中,发现进入升级程序中,开始擦除Flash的对应页时,直接擦除了IAP程序的本身;0 f+ X1 _$ }9 d2 V( X# ]8 @ 通过已通查找,发现这里要修改为对应芯片Flash的对应值: " y* ?9 l, E) b7 Y/ H3 S. W' @% d
; k# U( j4 T. X/ p4 J7 R' q 否则会因为Flash不匹配而误擦除;" O% }' ~7 ~6 k: }6 ]* A6 E 议,转载请附上原文出处链接及本声明。8 e1 L6 s3 n$ L3 B \ |
微信公众号
手机版