RTT-移植Nano

本文档详细介绍了如何将RTT-Nano实时操作系统移植到STM32F103开发板上,包括工程配置、文件增删、中断处理、内存堆栈配置、rt_printf适配以及Finsh命令行系统的整合。通过一系列步骤,实现了RTT-Nano在STM32上的完整移植并创建了一个测试线程,同时展示了如何处理中断冲突和初始化串口输出。

RTT-移植Nano

一、准备工作

  1. STM32F103模板工程
  2. RTT-nano源码 https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-nano/an0038-nano-introduction

二、增减文件

  1. rt-thread\bsp里只保留board.crtconfig.h
  2. rt-thread\libcpu里只保留cortex-m3
  3. 在MDK的工程文件路径里加入:
  • rt-thread\bsp
  • rt-thread\components\finsh
  • rt-thread\include
  • rt-thread\include\libc

在这里插入图片描述

  1. 在MDK的工程文件Groups中添加RTT/src,加入rt-thread\src文件夹中的所有*.c文件
  2. 在MDK的工程文件Groups中添加RTT/port,加入rt-thread\libcpu\cortex-m3文件夹中context_rvds.Scpuport.c以及rt-thread\bsp中的rtconfig.h

在这里插入图片描述

三、修改文件

  1. 注释rtconfig.h中的#include “RTE_Components.h”
  2. 编译会发现报错,解决方法是将stm32f10x_it.c文件中的这个三个中断函数注释掉
linking...
.\Output\F103xE.axf: Error: L6200E: Symbol HardFault_Handler multiply defined (by context_rvds.o and stm32f10x_it.o).
.\Output\F103xE.axf: Error: L6200E: Symbol PendSV_Handler multiply defined (by context_rvds.o and stm32f10x_it.o).
.\Output\F103xE.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by board.o and bsp_systick.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
Finished: 2 information, 0 warning and 3 error messages.
".\Output\F103xE.axf" - 3 Error(s), 0 Warning(s).
  1. 修改rtconfig.h,取消#define RT_USING_HEAP这一行的注释,开启动态堆栈
  2. 新建board.h,修改board.c
#ifndef __BOARD_H__
#define __BOARD_H__

/* STM32 固件库头文件 */
#include "stm32f10x.h"
/* 开发板硬件bsp头文件 */
#include "bsp_uart.h"

void rt_hw_board_init(void);
void SysTick_Handler(void);
	
#endif 

/* 开发板硬件相关头文件 */
#include "board.h" 
/* RT-Thread相关头文件 */
#include 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tangYi0_0

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

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

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

打赏作者

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

抵扣说明:

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

余额充值