
一、移植到STM32G473RC准备工作 1.1、Keil版本支持STM32 G系列 3 S7 O5 |) c* ~1 f2 ] ![]() 1.2 Keil下找到G系列文件并下载安装6 l9 P4 o: {' x- j- p$ l7 N ![]() ![]() ' ]0 V& @5 Q) E: A 1.3 安装成功 ![]() ![]() + t8 o- T* m# U6 N1 T0 I8 { 1.4 Keil版本过低,不支持新的DFP包造成的错误。(重新安装新版本即可,我尝试了MDK529.exe)# l( u" Q4 j7 q2 `8 Y+ J . e2 h9 ^, Q* w3 o1 S# T ![]() 二、移植 2.1 安装STM32CubeMX,目前ST官方主推。 ![]() b9 m% R. G* s8 N 2.2 官方下载库文件(STM32G系列不再有std库,只有hal库)* c8 S/ X+ ?, |! f# ~ $ Z- s# D x, N: q# l1 ` ![]() " Y# P" `+ w B( p0 I 2.3 导入库文件,打开STM32CubeMX,点击Help -> Manage embedded software packages 。 我这里是添加本地packages,即通过3.2已经有下载了hal库。( w' `7 E6 L) k! @, e9 @! q ![]() 2.4 选择IC,然后在Middleware下选择FREERTOS,版本10.2.1,接口选择CMSIS_V2(V2与V1的区别可以参考百度其他文档)。 8 G& M/ `% }. d4 t ![]() 9 s* q2 i( q) x. k 2.5 SYS下的Timebase Source选择TIMI1,否则生成code是会有警告提示,与FreeRTOSg HAL使用的是systick作为时钟源,现在使用了rtos,不建议hal库和rtos一起使用systick作为时钟源,否则会有冲突。* {4 `; d& n, S0 U ^* Y7 z 3 I( I- o$ E/ s8 i8 n* j SYS Timebase选择Tim1 ![]() 1 \3 x) R/ O6 Z/ i5 ^* J* Q ![]() 2.6 选择MDK-ARM, 点击GENERATE CODE,生成工程。& J; g3 M7 M7 z0 w2 Z, R3 o2 G9 L - L& ?' u; F. {$ Y S* s# R ![]() ![]() 点击生成:7 }- H' K5 D$ ^3 a( z ![]() 2 G1 v8 `% ?! h- D, L Z 2.7 打开MDK工程,编译。 % O5 c) w; D/ A& P0 f: c ![]() : j$ k* u2 z8 c9 I 三、源码下载(不使用STM32CubeMX移植的需要自行下载源码) 1、虽然FreeRTOS官方最新版本为 FreeRTOSv10.3.1.zip, 但手头项目还是决定基于V9.0开始。目前官方下载路径已经迁移的Githu. p! m1 ]6 q4 C: K8 T " X" {9 Y/ s: ]0 z1 h, x ![]() ! m' O* V8 n1 n( m ; W; B- ^- y7 v9 g, x- H' t6 p/ Y7 b: ?$ s 2、GIthub下载旧版本 (无需登录,游客下载)) W! ~) j9 j( D9 U; _/ n" d ( r! _4 K( j; Q) K, Q- L8 z ![]() ' D# j/ |) o7 _0 }% S( b ![]() ![]() ![]() ![]() . v7 [2 f, {8 r3 ?, b3 z" X$ Q9 ~; Z) K ; N5 N2 B4 g r' p& R & t& X I: C$ H; m |