从 0 到 1 教你写 RT-Thread

1 新建文件夹 (1)在开始新建工程之前,我们先在电脑端新建一个文件夹用于存放工程。 文件夹命名为“1--创建 RT-Thread 工程”(名字可以随意取),然后再在该文 件夹下面新建各个文件夹和文件,它们的目录级别及文件夹作用如下所示: 文件夹名称 子文件夹 文件夹作用 Obj 用于存放编译产生的 c/汇编/链接 的列表清单、调试信息、 hex 文件、 预览信息、封装库等文件 Rtthread/3.0.3 bsp 存放板级支持包,暂时为空。 components/finsh 存放 RT-Thread 组件,暂时未空。 include 存放头文件,暂时为空。 include/libc libcpu/arm/cortex-m0 存放与处理器相关的接口文件, 暂时为空。 libcpu/arm/cortex-m3 libcpu/arm/cortex-m4 libcpu/arm/cortex-m7 src 存放 RT-Thread 内核源码,暂时为 空。 User 存放 main.c 和其它的用户编写 的程序, main.c 第一次使用需要用户自行 新建,里面可以不写任何东西

2 创建工程 首先大家要在电脑中安装好 KEIL5 软件.

2.1 New Progect 首先打开 KEIL5 软件,新建一个工程,工程文件放在“1--创建 RT-Thread 工程”文件夹内,名称命名为 Template,当然你也可以换成其它名称,但是必 须是英文,不能是中文或特殊符号。如下所示

2.2 Select Device For Target 当命名好工程名称,点击保存之后会弹出 Select Device for Target 的选 项框,让我们选择处理器,这里我们选择 ARMCM4(ARMCM3 或 ARMCM7,这个需 要根据你所使用的芯片所对应的 M 内核选择,比如 STM32F429IGT6 是 M4 内核, 所以选择 ARMCM4),如下所示 

2.3 Manage Run-Time Environment 选择好处理器,点击 OK 按钮后会弹出 Manage Run-Time Environment 选 项框。这里我们在 CMSIS 栏选中 CORE,在 Device 栏选中 Startup 这两个文件 即可,如下所示。

 

 点击 OK,关闭 Manage Run-Time Environment 选项框之后,刚刚我们选择 的 CORE 和 Startup 这两个文件就会添加到我们的工程组里面,如下所示。

其中 startup_ARMCM4.s(startup_ARMCM3.s 或 startup_ARMCM7.s)是汇 编编写的启动文件, system_ARMCM4.c(startup_ARMCM3.c 或 startup_ARMCM7.c)是 C 语言编写的跟时钟相关的文件。更详细的可直接阅读 这两个文件的源码。只要是 Cortex-M4(ARMCM3 或 ARMCM7)内核的单片机,这 两个文件都适用。 在上图中我们可以看到与前面新建的文件夹多了 3 个,分别是 Listings、 Objects 和 RTE。Listings 和 Objects 文件夹是在创建 KEIL5 工程时自动生成的, 用于存放编译产生的 c/汇编/链接的列表清单、调试信息、hex 文件、预览信息、 封装库等文件,这个我们已经通过 Obj 文件夹可以存放,所以自动生成的这个文 件夹可以删除,并且在 KEIL5 中的魔术棒 Output 和 Listing 选项卡指定到 Obj 文件夹内方可。这个在我们介绍 STM32 的工程模板创建就讲解过,不清楚的朋友 可以回过头看下。如下所示

 

 

2.4 在 KEIL 工程里新建文件组 在工程里面添加 User、rtt/ports、rtt/source 这几个文件组,用于管理 文件,如下图所示。

 

对于新手,这里有个问题就是如何添加文件组?具体的方法为鼠标右键 Target1,在弹出的选项里面选择 Add Group…即可。还可以通过 KEIL 工具图标 实现,如下图所示: 

2.5 在 KEIL 工程里添加文件 在工程里面添加好组之后,我们需要把本地工程里面新建好的文件添加到工 程里面。具体为把 main.c 添加到 User 组,至于 RT-Thread 相关的文件我们 还没有编写,那么 RT-Thread 相关的组就暂时为空,如下所示

 

2.6 编写 main 函数 一个工程如果没有 main 函数编译是会出错的。因为系统在开始执行的时候 先执行启动文件里面的复位程序,复位程序里面会调用 C 库函数 main,main 的 作用是初始化好系统变量,如全局变量,只读的,可读可写的等等。main 最后 会调用 rtentry,再由 rtentry 调用 main 函数,从而由汇编跳入到 C 的世界, 这里面的 main 函数就需要我们手动编写,如果没有编写 main 函数,就会出现 main 函数没有定义的错误,如下图所示 

2.7 设置软件仿真 最后,我们再配置下调试相关的配置即可。为了方便,我们全部代码都用软 件仿真,即不需要开发板也不需要仿真器,只需要一个 KEIL 软件即可,有关软 件仿真的配置具体如下所示 

2.8 修改时钟大小 在时钟相关文件 system_ARMCM4.c(system_ARMCM3.c 或 system_ARMCM7.c)的开头,有一段代码定义了系统时钟的大小为 25M,如下所 示

 

 

2.9 添加头文件路径 在 C/C++选项卡里面指定工程头文件的路径,不然编译会出错,头文件路径 的具体指定方法如下所示 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值