RT-Thread内核应用开发
RT-Thread文件夹简介
bsp文件夹
bsp 文件夹里面存放的是板级支持包,即board support package 的英文缩写,也就是相应开发板的驱动程序。bsp 文件夹下面的board.c这是RT-Thread 用来初始化开发板硬件的相关函数。rtconfig.h 是RT-Thread 功能的配置头文件,里面定义了很多宏,通过这些宏定义,我们可以裁剪RT-Thread 的功能。用户在使用RT-Thread 的时候,用户只需要修改board.c 和rtconfig.h 这两个文件的内容即可,其它文件我们不需要改动。如果为了减小工程的大小,bsp 文件夹下面除了board.c 和rtconfig.h这两个文件要保留外,其它的统统可以删除。
components文件夹
在RT-Thread 看来,除了内核,其它第三方加进来的软件都是组件,比如gui、fatfs、lwip 和finsh 等,那么这些组件就放在components 这个文件夹内。finsh 是RT-Thread 组件里面最具特色的,它通过串口打印的方式来输出各种信息,方便我们调试程序。
include文件夹
include 目录下面存放的是RT-Thread 内核的头文件,是内核不可分割的一部分。
libcpu文件夹
RT-Thread 是一个软件,单片机是一个硬件,RT-Thread 要想运行在一个单片机上面,它们就必须关联在一起,那么怎么关联?还是得通过写代码来关联,这部分关联的文件叫接口文件,通常由汇编和C 联合编写。这些接口文件都是跟硬件密切相关的,不同的硬件接口文件是不一样的,但都大同小异。编写这些接口文件的过程我们就叫移植,移植的过程通常由RT-Thread 和mcu 原厂的人来负责,移植好的这些接口文件就放在libcpu 这个文件夹的目录下。RT-Thread nano 目前在libcpu 目录下只放了cortex-m0、m3、m4 和m7 内核的单片机的接口文件,只要是使用了这些内核的mcu 都可以使用里面的接口文件。通常网络上出现的叫“移植某某某RTOS 到某某某MCU”的教程,其实准确来说,不能够叫移植,应该叫使用官方的移植,因为这些跟硬件相关的接口文件,RTOS 官方都已经写好了,我们只是使用而已。
src文件夹
src 目录下面存放的是RT-Thread 内核的源文件,是内核的核心。
keil工程结构
在开发环境里面新建rtt/source 和rtt/ports 两个组文件夹,其中rtt/source 用于存放src 文件夹的内容,rtt/ports 用于存放libcpu/arm/cortex-m?文件夹的内容,“?”表示3、4 或者7。bsp 里面的rtconfig.h 和board.c 添加到user 组文件夹下,其中rtconfig.h 用于配置RTThread的功能,board.c 用于存放硬件相关的初始化函数。