打印

转基于GD32微控制器和RT-Thread实时操作

[复制链接]
楼主: lxs0026
手机看帖
扫描二维码
随时随地手机跟帖
21
lxs0026|  楼主 | 2018-10-17 21:14 | 只看该作者 回帖奖励 |倒序浏览
include:RT-Thread操作系统使用的头文件,可供外部应用程序调用。

使用特权

评论回复
22
lxs0026|  楼主 | 2018-10-17 21:14 | 只看该作者
libcpu:CPU支持包,包含对各种常见CPU的底层驱动程序,大部分为汇编语言开发。

使用特权

评论回复
23
lxs0026|  楼主 | 2018-10-17 21:14 | 只看该作者
src:对应RT-Thread操作系统的内核层,包含RT-Thread实时调度、时钟管理、内存分配、线程管理等全部核心功能。

使用特权

评论回复
24
lxs0026|  楼主 | 2018-10-17 21:15 | 只看该作者
tools:Scons构建脚本文件,包含用于不同开发工具的各种脚本执行文件。

使用特权

评论回复
25
lxs0026|  楼主 | 2018-10-17 21:15 | 只看该作者
根据RT-Thread源代码文件包中各个文件夹的用途,结合GD32芯片所提供的外设固件库、CMSIS配置文件和Colibri-F207ZE开发板的板级支持包构建基于GD32F207芯片和RT-Thread操作系统的目录结构,如图3所示。

使用特权

评论回复
26
lxs0026|  楼主 | 2018-10-17 21:16 | 只看该作者
其中App文件夹中包括RT-Thread的启动文件startup.c和用户开发的应用程序;GD32F207ZET6文件夹中包括硬件相关的两个子文件夹,Colibri_BSP中是开发板的外设驱动程序,GD32F20x_StdPeriph_Driver中是GD32芯片所提供的外设固件库,芯片驱动、配置和中断处理文件;

使用特权

评论回复
27
lxs0026|  楼主 | 2018-10-17 21:16 | 只看该作者
Obj文件夹中为MDK所建立的工程文件和存放编译后得到的axf文件;RT-Thread210文件夹中包含RT-Thread操作系统的各软件模块,其为直接从源代码文件包中相关内容复制而来。

使用特权

评论回复
28
lxs0026|  楼主 | 2018-10-17 21:16 | 只看该作者
图3 基于GD32芯片构建的RT-Thread系统目录结构

使用特权

评论回复
29
lxs0026|  楼主 | 2018-10-17 21:17 | 只看该作者
2.2 项目工程的建立与驱动程序改写 在完成上述目录结构的构建后,需要使用MDK开发工具将RT-Thread源代码和GD32芯片的相关文件有机结合起来,实现RT-Thread操作系统在Colibri-F207ZE开发板上的移植工作。在MDK工具内部各个文件按照逻辑关系进行分组管理,这里以GD32开头的组和嵌入式系统硬件相关,以RT开头的组和操作系统软件相关,如图4所示。

使用特权

评论回复
30
lxs0026|  楼主 | 2018-10-17 21:17 | 只看该作者
这种分组结构可有效实现软硬件隔离,便于日后硬件部分或软件部分代码的升级替换工作。

使用特权

评论回复
31
lxs0026|  楼主 | 2018-10-17 21:18 | 只看该作者
2.2.1 软硬件配置与代码修改 在RT-Thread和GD32的配置中采用宏定义方式实现对所需软件功能模块的条件编译和芯片性能参数设置,以达到对嵌入式系统软、硬件裁剪和配置的目的。因此,在移植过程中需要对这些宏定义进行有选择的设置。

使用特权

评论回复
32
lxs0026|  楼主 | 2018-10-23 11:49 | 只看该作者
修改system_GD32f20x.c文件,该文件中主要实现GD32的系统时钟和AHB、APB总线上挂接各部件的时钟树配置,本文中将系统时钟设置为72MHz。

使用特权

评论回复
33
lxs0026|  楼主 | 2018-10-23 11:50 | 只看该作者
修改colibri_board.h文件,该文件主要用于设置GD32芯片内、外部RAM的容量,根据本文中所使用的GD32F207ZET6芯片,将内部RAM容量设置为128KB;

使用特权

评论回复
34
lxs0026|  楼主 | 2018-10-23 11:50 | 只看该作者
开发板未扩展外部RAM,将对应的宏定义GD32_EXT_SRAM设置为0。

使用特权

评论回复
35
lxs0026|  楼主 | 2018-10-23 11:50 | 只看该作者
修改rtconfig.h文件,该文件主要用于RT-Thread操作系统的参数配置以及软件功能模块的裁剪。

使用特权

评论回复
36
lxs0026|  楼主 | 2018-10-23 11:51 | 只看该作者
用户可根据需要设置,保留的软件功能模块越多,则编译后的HEX文件尺寸越大且需要的运行RAM越多。

使用特权

评论回复
37
lxs0026|  楼主 | 2018-10-23 11:51 | 只看该作者
本文中将RT-Thread最大优先级RT_THREAD_PRIORITY_MAX设置为16;每秒节拍数RT_TICK_PER_SECOND设置为100;启用了控制台和Shell交互功能RT_USING_CONSOLE和RT_USING_FINSH以方便应用程序调试。

使用特权

评论回复
38
lxs0026|  楼主 | 2018-10-23 11:51 | 只看该作者
图4 对GD32芯片和RT-Thread系统文件的分组管理

使用特权

评论回复
39
lxs0026|  楼主 | 2018-10-23 11:52 | 只看该作者
2.2.2 设备驱动程序的改写 编写驱动程序是操作系统移植过程中的重要一步,其用于实现软件对硬件的最终操作。在RT-Thread中驱动程序属于Porting层采用了统一的设备驱动模型框架,可以被应用程序通过标准接口函数访问和调用,在文献[6,8,9]中对RT-Thread设备驱动框架的构成进行了说明。

使用特权

评论回复
40
lxs0026|  楼主 | 2018-10-23 11:53 | 只看该作者
由于GD32F2系列微控制器与STM32微控制器在系统结构上具有相似性,因此在本文中通过对RT-Thread源代码文件包中/bsp/stm32f10x/drivers子文件夹内驱动程序进行改写的方法实现Colibri-F207ZE开发板上串口通信和LED灯的驱动程序。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则