第一章 基于rtthread标准库工程创建

这里以stm32f429的芯片的为例

1 背景介绍

近年来,物联网(Internet Of Things,IoT)概念广为普及,物联网市场发展迅猛,嵌入式设备的联网已是大势所趋。终端联网使得软件复杂性大幅增加,传统的 RTOS 内核已经越来越难满足市场的需求,在这种情况下,物联网操作系统(IoT OS)的概念应运而生。物联网操作系统是指以操作系统内核(可以是 RTOS、Linux 等)为基础,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台,RT-Thread 就是一个 IoT OS。

RT-Thread 与其他很多 RTOS 如 FreeRTOS、uC/OS 的主要区别之一是,它不仅仅是一个实时内核,还具备丰富的中间层组件,如下图所示。

在这里插入图片描述

1.1 找到工程代码

在这里插入图片描述

1.2 复制代码到stm32文件夹下面

在这里插入图片描述

2 修改mdk模板

2.1 因为笔者用的是MDK-5,所以修改MDK5的模板

在这里插入图片描述

2.2 修改芯片型号

在这里插入图片描述

2.3 修改下载器方式

在这里插入图片描述

2.4 自动复位

在这里插入图片描述

3 利用stcubemx生成新的配置引脚配置

这一步操作,比较舒服的。
在这里插入图片描述

4 ENV配置KConfig文件

RT-Thread的构建与配置系统由以下几个部分组成:

C语言项目的裁剪配置本质上通过条件编译和宏的展开来实现的,RT-Thread借助Kconfig这套机制更方便的实现了这一功能。当前以Windows下Env工具中的使用为例,简述Kconfig在RT-Thread的工作机制。

Kconfig机制包括了Kconfig文件和配置UI界面(如menuconfig,pyconfig等)。Kconfig机制有如下特点:

Kconfig文件中的配置项会映射至rtconfig.h中

Kconfig文件可以随源码分散至各级子目录,便于灵活修改。
在这里插入图片描述

#config片段
CONFIG_RT_USING_TIMER_SOFT=y
CONFIG_RT_TIMER_THREAD_PRIO=4
CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
CONFIG_RT_DEBUG=y
// 相对应的rtconfig.h片段
#define RT_USING_TIMER_SOFT
#define RT_TIMER_THREAD_PRIO 4
#define RT_TIMER_THREAD_STACK_SIZE 512
#define RT_DEBUG

Kconfig文件在源码中呈现树形结构,需要在工程的根目录下存在一份顶层Kconfig文件,顶层Kconfig文件在文件中通过source语句显示地调用各子目录下的Kconfig文件。Env在根目录下执行menuconfig命令后会递归解析各级Kconfig文件,然后提供如下配置界面,完成相应的配置后并保存,根目录下会存在一份.config文件保存当前选择的配置项,并将.config文件转为RT-Thread的系统配置文件rtconfig.h。

4.1 输入menuconfig,进行配置

在这里插入图片描述

4.2 关闭所有的片上资源

在这里插入图片描述

5 修改配置文件

SCons 是一套由 Python 语言编写的开源构建系统,类似于 GNU Make。它采用不同于通常 Makefile 文件的方式,而是使用 SConstruct 和 SConscript 文件来替代。这些文件也是 Python 脚本,能够使用标准的 Python 语法来编写。所以在 SConstruct、SConscript 文件中可以调用 Python 标准库进行各类复杂的处理,而不局限于 Makefile 设定的规则。

SCons 使用 SConscript 和 SConstruct 文件来组织源码结构并进行构建,SConstruct是scons构建的主脚本,SConscript存放在源代码的子目录下,通常放在项目的子目录,以达到分层构建的目的。一个项目 (BSP) 只有一 SConstruct,但是会有多个 SConscript。一般情况下,每个存放有源代码的子目录下都会放置一个 SConscript。

5.1 修改board文件夹的SConscript

在这里插入图片描述

5.2 修改linker_scripts文件夹

5.2.1 修改link.lds

在这里插入图片描述

5.2.2 修改link.idf

在这里插入图片描述

6 重新生成工程

6.1 在env 环境下,输入scons

在这里插入图片描述
编译成功
在这里插入图片描述

6.2 在env 环境下,输入scons --target=mdk5

在这里插入图片描述
在这里插入图片描述

6.5 打开MDK工程

在这里插入图片描述
在这里插入图片描述

项目框架主要目录及文件的说明如下表所示:
在这里插入图片描述

6.7 生成独立工程

在 BSP 目录下打开 Env 工具,运行 scons --dist 命令。使用此命令会在该 BSP 目录下生成 dist 目录,这便是开发项目的目录结构,RT-Thread 源码位于项目文件夹内,可以随意拷贝 dist 文件夹的工程到任何目录下使用。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数贾电子科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值