
一、移植到STM32G473RC准备工作. Z: g1 ~; o! X2 {7 n( l1 M0 j4 q 1.1、Keil版本支持STM32 G系列3 R$ }+ o' Y- W+ T/ T% R& M 1 D. ^1 ^' x5 U ![]() 1.2 Keil下找到G系列文件并下载安装 ![]() $ g; t; Y; }. l2 u. Y1 ^, J ![]() 1.3 安装成功5 B; v7 ^- P k* g ![]() ! ^- Q3 S- e* }# f" v ![]() 1.4 Keil版本过低,不支持新的DFP包造成的错误。(重新安装新版本即可,我尝试了MDK529.exe) ![]() 二、移植9 B$ X% l* K6 t/ r0 q( H 2.1 安装STM32CubeMX,目前ST官方主推。 ![]() 2.2 官方下载库文件(STM32G系列不再有std库,只有hal库)' f! m8 C7 `; u4 R$ v5 _) E 1 y3 T8 W% t) P1 C$ Z& B7 y ![]() 0 f! o9 M) k& L9 E- m9 q 2.3 导入库文件,打开STM32CubeMX,点击Help -> Manage embedded software packages 。 2 Z/ G$ {0 `% h* } 我这里是添加本地packages,即通过3.2已经有下载了hal库。 0 Z3 L6 D( ~# @6 N, {7 R2 m ' D- F; f5 H1 o ![]() $ \! m0 v2 h) s4 }: b + Z y& y$ o8 f7 m# j6 v9 b 2.4 选择IC,然后在Middleware下选择FREERTOS,版本10.2.1,接口选择CMSIS_V2(V2与V1的区别可以参考百度其他文档)。 7 Z) N/ ^. ^% a2 F' g ![]() 2.5 SYS下的Timebase Source选择TIMI1,否则生成code是会有警告提示,与FreeRTOSg . _8 z* n% O# L b: F& K$ k* ~ HAL使用的是systick作为时钟源,现在使用了rtos,不建议hal库和rtos一起使用systick作为时钟源,否则会有冲突。' r) V0 Z8 S! W- u7 T5 F SYS Timebase选择Tim1 4 p0 D6 t7 Z) |* K- q6 Y, y) G/ e ![]() ![]() 2.6 选择MDK-ARM, 点击GENERATE CODE,生成工程。 ![]() ![]() 点击生成: . _+ \: I3 D' @3 z) R( N1 m ![]() 2.7 打开MDK工程,编译。2 Y! @) w, a% W" Y ![]() 三、源码下载(不使用STM32CubeMX移植的需要自行下载源码); ~6 ?6 }8 ?4 r9 `: o 1、虽然FreeRTOS官方最新版本为 FreeRTOSv10.3.1.zip, 但手头项目还是决定基于V9.0开始。目前官方下载路径已经迁移的Githu 6 a0 Z7 p% I0 D4 V$ V8 c" J) p$ N ![]() . M5 ~2 v/ j' L 3 h: q3 c4 K8 b) H! q 2、GIthub下载旧版本 (无需登录,游客下载) ; [0 J @2 q% Y6 Z( Z ![]() ( \' v" Z5 x9 v2 o8 S+ _ ![]() & H( _8 W l3 @( m! w: R& T/ r; U ![]() ![]() 7 e$ k$ B8 T7 a% g* F, r( W ![]() . K) q1 `# I, o9 U8 w0 \0 R6 p: x % G) V7 R5 ?' |! Q3 ? U 3 y* [6 T7 y( \6 B- }3 ]% t |