本帖最后由 TLLED 于 2019-1-8 20:16 编辑 ' s- E- |* O( g; J' F' B( n 1 x% a6 M- s) c9 R( P c' d 将th-thread 代码搬运到STM32F407开发板上。 一、下载rt-thread源码 下载地址: 1.1、rt-thread官网/ x/ _0 n' y& a, j+ s 1.2、github下载地址 % _4 z- n) ]; } z 二、整理文件% p3 `4 X5 B) w# n' Y . m5 }: W1 T( e. J; F 2.1、rt-thread 源码下载后,拷贝出下面文件夹/ J% @" o/ x& E- }1 z 2.2、将rt-thread文件复制到自己创建的文件中,下面是我创建的项目文件目录。: f# |1 V- Q. {7 T # c* L x' u6 A" |7 p r 三、创建项目文件; O1 m/ u+ W' N5 f: \3 R5 b1 f 3.1、将rt-thread源码文件添加到对应的文件' a' H- a! }: M0 T5 _2 Q2 N& i1 b 3.2、添加头文件 3.3、修改代码 代码主要修改的地方: : a( L# P. p% }0 z% Y2 c! n 1、main.c的程序添加部分 main.c% Q% L' D' ], [2 L! [ Y6 E int main(void) { /* disable interrupt first */* ? S. o1 I( P, m rt_hw_interrupt_disable(); //添加代码 /* startup RT-Thread RTOS */$ o6 H. Z- c* _, n) q rtthread_startup(); //添加代码* x2 l! x! w2 J* N+ u& v! u5 l while (1) { }: p' U/ y, u; |# B/ N } 0 a# y/ _) d2 F( Z8 g3 f' t) L. J 2、硬件初始化,有关串口部分。 void rt_hw_board_init()' S; ^- m" \: e' g+ A! Z6 V$ m3 Z5 s { /* NVIC Configuration */ NVIC_Configuration();2 P5 j9 v, e Y+ J ( U2 N7 \# j" l /* Configure the SysTick */( y$ c) Q# i$ I) Z) b9 L SysTick_Configuration();2 @1 E4 V- V, O stm32_hw_usart_init(); //串口初始化. i' r# m" z. U2 G* @ rt_console_set_device(RT_CONSOLE_DEVICE_NAME);, t8 d/ d- ~& M6 U, c #ifdef RT_USING_HEAP3 v9 h6 m; P% C" ~0 F- d8 H" D t8 t rt_system_heap_init((void*)STM32_SRAM_BEGIN, (void*)STM32_SRAM_END); #endif; z" X# ^ S# l5 y& W3 w& x# l 5 ~0 h7 X' z: F8 a rt_components_board_init();( b8 C& I8 a' u3 J" x- R" j. h0 f: B " W5 X% b8 ]/ D2 O #ifdef RT_USING_CONSOLE+ m% E) m& W, x rt_console_set_device(RT_CONSOLE_DEVICE_NAME); #endif }' F; I( X7 }# I' G: p1 w 3、根据硬件修改串口代码。 串口硬件端口使用的是PB端口* f* k2 y/ H' I. p; j2 l % t$ y; [3 k* k 修改端口程序 修改外部晶振频率,板子上的时钟频率是8MHz,这里要修改为8MHz 四、程序执行结果 程序还没有应用程序,只是打印出rt-thread信息。 串口输出结果:, V* K) w+ G! e$ { 五、程序代码1 a9 X" e( J$ _6 g) ~ 3 ?! J# _* F3 ]7 m% O9 ~) f |
楼主可以尝试一下这个方法http://github.com/RT-Thread/rt-t ... 6%95%99%E7%A8%8B.md。BSP制作好了,再使用scons --dist |
STM32固件库分享,超全系列整理
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32F4中文用户手册
基于STM32F407的FreeRTOS阶段性的总结(13)
STM32F400、STM32F402 Cortex-M4超值单片机
基于STM32F407的FreeRTOS获取各任务运行时间及占用情况(4)
基于STM32F407的FreeRTOS任务的挂起与恢复(3)
基于STM32F407的FreeRTOS任务的创建与删除经验分享(2)
基于STM32F407的FreeRTOS环境搭建经验分享(1)