一起来学RTT系列教程 图文并茂教你在keil下搭建RT-thread最小系统工程
日期:2013-05-4 keilMDK版本号:4.54
对于初次接触RT-thread的朋友来说,要想自己重新建立一个keil下的工程,可能会觉得不知所措,那么看到这篇文字,可能对你会有帮助。
我在这里演示了如何提取官方bsp包中stm32分支中的相关文件,重新组织文件结构,按照下图中的文件夹分配,重新生成keil下的工程,这个工程将会包括RT-thread的内核和finsh组件。
我愿意在开始前说明下分别建立这几个文件夹的作用:
project ——存放MDK工程文件;
RT-thread ——存放rtt源码包(放在最外层);
apps ——存放我们自己(用户)写的一些应用代码; drivers ——存放硬件外设驱动;
third_part ——存放第三方程序源码,比如stm32固件库、解码库等; obj ——目标文件;
这么一来,各类代码分类一清二楚,好了,现在开始一步一步带大家走一遍生成这个工程的过程,当你明白后可按照自己的意愿去生成工程。 ? 拷贝所需的文件
解压RT-Thread源码,将源码放在我们所建立的工程文件夹外面(这么放是方便以后的工程可以共用)
RT-Thread源码 (我改了下文件夹名字) 我们准备构建的工程文件夹,包含上图中的各个文件夹
从源码bsp\\stm32f10x目录copy下图所列出的文件,放入 篇3-例程1-重构RTT最小系统\\apps目录
UP MCU工作室 1 / 9
一起来学RTT系列教程
从源码bsp\\stm32f10x目录copy下图列出的必要的驱动文件,放入 篇3-例程1-重构RTT最小系统\\drivers目录
从源码bsp\\stm32f10x\\ Libraries目录copy CMSIS、STM32F10x_StdPeriph_Driver,两个文件夹放入 篇3-例程1-重构RTT最小系统\\ third_part目录 ? 建立MDK工程
启动MDK,新建一个工程,将工程保存路径设置到篇3-例程1-重构RTT最小系统\\project目录,并给工程命名。如下图所示:
UP MCU工作室 2 / 9
一起来学RTT系列教程 工程保存到此文件夹 设置工程名
之后点击 保存 按钮,进入选择目标芯片界面,如下图:
选择目标芯片
选择以后,会跳出提示,询问我们是否需要加入MDK为我们准备好的启动文件,我们选择否,即不加入:
UP MCU工作室 3 / 9
一起来学RTT系列教程 选择否
? 给工程加入所需文件
我们先修改下工程属性,并按模块建立几个工程文件夹,如下所示:
建立各个文件夹 双击后即可修改 用以添加文件
接下来,我们开始往各个文件夹中添加文件: StartUp中加入apps、drivers文件夹下所有.c文件; Apps、Driver暂时不加入任何内容;
cm3中加入RT-Thread源码下libcpu\\arm\\common\\ 下所有.c文件,加入
libcpu\\arm\\ cortex-m3\\下cpuport.c和context_rvds.S这两个文件; STM32_StdPeriph中加入third_part\\ STM32F10x_StdPeriph_Driver\\src下所有.c
文件,加入third_part\\CMSIS\\CM3\\CoreSupport\\core_cm3.c
加入third_part\\CMSIS\\DeviceSupport\\ST\\STM32F10x\\system_stm32f10x.c 加入third_part\\CMSIS\\DeviceSupport\\ST\\STM32F10x\\ startup\\arm\\
startup_stm32f10x_hd.s
kernel中加入RT-thread源码目录中src下所有.c文件
UP MCU工作室 4 / 9
一起来学RTT系列教程
Finsh中加入RT-thread源码目录中src\\ components\\ finsh下所有.c文件 至此文件添加完毕!
? 设置包含路径
按照下图中所列的include paths添加文件包含列表
并将工程编译时的output路径和listing路径执行obj文件夹
? 其他设置
在下图所示区域设置器件类型和制定使用stm32固件库:
UP MCU工作室 5 / 9
一起来学RTT系列教程
最后加入一些编译控制,防止一些没被调用的函数被连接器移除(使用finsh时很重要)
? 编译、下载验证
UP MCU工作室 6 / 9
一起来学RTT系列教程 如果上面步骤都没问题,工程将会顺利编译通过,如果有错误提示,请检查各个步骤的操作。
0 error 0 warning 编译ok后,说明我们的设置都ok,接下来,我们修改下硬件配置使之与我们的目标板对应:
led.c中我们用GPIOF8、GPIOF9来替换原来的GPIOE2、GPIOE3:
#define led1_rcc RCC_APB2Periph_GPIOF #define led1_gpio GPIOF #define led1_pin GPIO_Pin_8
#define led2_rcc RCC_APB2Periph_GPIOF #define led2_gpio GPIOF #define led2_pin GPIO_Pin_9
程序中默认使用串口1作为终端,针对我的目标板就无需改了,如果你的板子串口不是串口1,则改动下面两处:
board.h中:
#define STM32_CONSOLE_USART 1 //根据目标板自己实际修改
rt_config.h中:
#define RT_USING_UART1 //根据目标板实际情况修改
最后进行下载前的最后设置:
UP MCU工作室 7 / 9
一起来学RTT系列教程 我用的stlink JTAG接口
我用的stlink
UP MCU工作室 8 / 9
一起来学RTT系列教程 以上都ok后,我们点击MDK下debug->start/stop Debug session即可下载程序,完成后后点击debug->run即可观察到串口的输出和led灯闪烁,至此工程建立完毕!!!
。
例程源码放在百度网盘:http://pan.http://m.diyifanwen.net//share/link?shareid=332467&uk=506725102
UP MCU工作室 9 / 9
相关推荐: