电子说
RT-thread源码移植到STM32F10x和STM32F4xx:
一、源码下载
点击入门->下载
在历史版本里边随便选取一个
会进入百度云盘的下载地址,里边有全部版本的源码。这里下载v2.1.0的稳定版本。
解压后的源码目录结构:
基本内核的移植只需要关心目录-bsp、include、libcpu、src。
二、开始移植
1、文件拷贝
-- F:RT-Thread源码 t-thread-2.1.0spstm32f10x下的rtconfig.h。
--F:RT-Thread源码 t-thread-2.1.0spstm32f10xapplications下的application.c和startup.c。
--F:RT-Thread源码 t-thread-2.1.0spstm32f10xdrivers下的board.c和board.h。
--F:RT-Thread源码 t-thread-2.1.0include下的所有头文件。
-- F:RT-Thread源码 t-thread-2.1.0libcpuarmcortex-m3下的cpuport.c和对应IDE的汇编文件。
Keil MDK使用context_rvds.S。
--F:RT-Thread源码 t-thread-2.1.0src下的所有文件。此目录是RT-thread的内核代码。
STM32的启动文件等自己添加。也可以直接复制源码中的文件。
2、工程目录结构
RT-Thread存放RTOS源码,也就是用户无需修改的文件。
applications存放用户修改文件和配置文件。
3、修改board.c文件
主要作用:初始化外设、硬件等。
源码中提供的函数:
NVIC_Configuration(void)里,加上中断分组的配置。
EXT_SRAM_Configuration(void)是配置外部运存的代码,如果用不到,可以不管或者删除。关于48行的宏STM32_EXT_SRAM可在rtconfig.h里边找到。
这个是系统心跳中断服务函数。默认使用内核自带的SystemTick计数器。当然,也可以使用定时器来产生系统心跳。只要能够周期性调用下图165行、167行、170行的代码即可。
rt_hw_board_init(void)函数是单片机上电调用的一个函数,主要功能就是初始化外设,串口、定时器、GPIO之类的。
4、修改application.c文件
主要作用:用户任务线程初始化、执行。
从43行开始,把下面的内容全部删除。然后自己重写。
主要提供一个int rt_application_init(void)的初始化函数即可。然后其他的全是任务线程。
5、提供串口打印函数
RT-Thread使用rt_hw_console_output函数来打印一些信息,这个只要在串口驱动文件里边写好即可。不需要extern。
6、修改配置文件rtconfig.h
注释掉78行即可。
移植完成。
三、创建应用
全部0条评论
快来发表一下你的评论吧 !