
一、移植到STM32G473RC准备工作 1.1、Keil版本支持STM32 G系列) R" L a' k& K6 K( m, Y ![]() 1 T/ p' k$ r8 z7 F 1.2 Keil下找到G系列文件并下载安装; z: B5 ~: W+ g* @1 ~ c : E' P" ?' f/ `, _# f ![]() , F" M: x; }: W/ b9 h* c$ Y ![]() 1.3 安装成功 + T6 S% d& u7 x" C ![]() ![]() 1.4 Keil版本过低,不支持新的DFP包造成的错误。(重新安装新版本即可,我尝试了MDK529.exe) ![]() : y* g; V3 ~0 e1 s 二、移植 2.1 安装STM32CubeMX,目前ST官方主推。 ![]() , ]" I6 |! T, x. x0 H 2.2 官方下载库文件(STM32G系列不再有std库,只有hal库); i9 \; m& B/ b3 \2 G ![]() / s0 _0 d7 b+ g! U( H b 2.3 导入库文件,打开STM32CubeMX,点击Help -> Manage embedded software packages 。 # ?- c3 [1 d3 `* O 我这里是添加本地packages,即通过3.2已经有下载了hal库。 , b" }, s4 Y# A' G ![]() 6 I& ]( j" Q0 ^$ T8 N : v& w8 p6 J: ~# `: B0 x7 @ 2.4 选择IC,然后在Middleware下选择FREERTOS,版本10.2.1,接口选择CMSIS_V2(V2与V1的区别可以参考百度其他文档)。 ! |" y7 r' n9 ^" |% d' K( g ![]() 2.5 SYS下的Timebase Source选择TIMI1,否则生成code是会有警告提示,与FreeRTOSg 5 n" Y& _6 y' d" p HAL使用的是systick作为时钟源,现在使用了rtos,不建议hal库和rtos一起使用systick作为时钟源,否则会有冲突。( T1 X H( N8 s( `! [ , j8 M" C+ [ {8 F( X+ F+ {1 H/ U5 a SYS Timebase选择Tim1% ?1 u( E) m+ c& Q/ C ![]() 9 i) Y% R* s3 p; P+ M- V ; k5 J/ C7 v1 L% t: a ![]() 2.6 选择MDK-ARM, 点击GENERATE CODE,生成工程。" z: ?" p6 V7 a+ U 2 J0 _( P* [1 P% U ![]() ! m- U* r4 C; }& X9 Y1 f ![]() 7 y# z9 ^, O* K- v: y; T 点击生成:8 ?* Y5 `8 w, T3 L ) F; L, n9 c7 Q+ B( ` ![]() 2.7 打开MDK工程,编译。 : T1 Y* e9 s. @0 c ![]() 三、源码下载(不使用STM32CubeMX移植的需要自行下载源码) 1、虽然FreeRTOS官方最新版本为 FreeRTOSv10.3.1.zip, 但手头项目还是决定基于V9.0开始。目前官方下载路径已经迁移的Githu 9 Y! k) ] C" J. f2 R/ y; B" B, l ![]() , `& N1 z5 r1 Y( u+ c! F( L1 X " l3 R# P2 f( s9 u$ A0 D" w 2、GIthub下载旧版本 (无需登录,游客下载)$ k8 T: m. D( f* U ![]() ![]() . u/ m' ^ _( t0 u" z ![]() . m! A, c$ K# S( D ![]() + ~3 B. D' T K2 b ![]() |