RT-Thread移植
一、移植内核文件
以rtt3.1.0为例,只需下面所示这些,组件暂时只有finsh。
二、RTT移植步骤
1、内核源码添加:将rt-thread-v3.1.0\src的源码添加到IAR/keil/gcc编译环境的工程中
2、移植相关的cpu文件:将rt-thread-v3.1.0\ libcpu下的各类型的芯片架构的context_xxx.s和cpuport.c的源码添加到IAR/keil/gcc编译环境的工程中
3、系统时钟节拍接口提供:移植任何一款RTOS,其心跳得提供。
在core_cm0.h、core_cm3.h和core_cm4.h内核头文件中可以查到一模一样的systick中断配置,如下函数:
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
{
if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */
SysTick->LOAD = ticks - 1; /* set reload register /
NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); / set Priority for Systick Interrupt /
SysTick->VAL = 0; / Load the SysTick Counter Value /
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk; / Enable SysTick IRQ and SysTick Timer /
return (0); / Function successful */
}
所以对m0/m3/m4,对RTT的systick初始化很便利:
(1)在RTT的rt_hw_board_init函数中进行systick初始化,如下所示。
/其中CntValue 是当前m0/m3/m4的时钟频率/
SysTick_Config( (CntValue/RT_TICK_PER_SECOND));
(2)systick中断一般放到board.c中,其他c文件也行。
void SysTick_Handler(void)
{
/* 进入中断 */
rt_interrupt_enter();
/* 更新时基 */
rt_tick_increase();/* 离开中断 */
rt_interrupt_leave();
}
这就完成了systcik的配置。
4.串口配置。
想用kprintf需要改写,这个还在探索。
5.其实这就完成了,剩下就是用户添加线程了。
RT-Thread移植相关推荐
- RT Thread Free Modbus移植问题整理
RT Thread Free Modbus移植问题整理 问题描述: 在读写寄存器中,写数据正常,只能读1个寄存器的值,多个值会异常. 在移植过程中发现串口(或RS485)数据接收长度异常. 一.环境描 ...
- 正点原子delay函数移植到rt thread操作系统(HAL库)
正点原子教程中涉及到的操作系统只涉及了UCOS的教程,其中例程的system文件夹中的delay.c函数只是适配了UCOS. 下面将delay.c函数移植到rt thread中,使用的bsp是rt t ...
- rt thread studio使用QBOOT和片外flash实现OTA升级
我们这里要使用单片机外部flash作为OTA的下载分区,外部flash硬件连接关系 PB3-->SPI3_CLK PB4-->SPI3_MISO PB5-->SPI3_MOSI PE ...
- Yeelink平台使用——远程控制 RT Thread + LwIP+ STM32
1.前言 [2014年4月重写该博文] 经过若干时间的努力终于搞定了STM32+LwIP和yeelink平台的数据互通,在学习的过程中大部分时间花在以太网协议栈学习上,但是在RT Th ...
- RT Thread根据开发板制作BSP方法
之前一直不懂怎么使用RT Thread的软件包,感谢网上的大神,看了你们的博客后大概了解一些,在此做下记录.用RT Thread软件包需要RT Thread的系统,但是RT Thread和RT Thr ...
- 基于rt thread smart构建EtherCAT主站
我把源码开源到到了gitee,https://gitee.com/rathon/rt-thread-smart-soem 有兴趣的去可以下载下来跑一下 软件工程推荐用vscode 打开.rt thre ...
- RT Thread利用STM32CUBEMX和RT Thread studio来创建模板工程
(1)RT Thread利用STM32CUBEMX来创建模板工程 1.参考文档: 基于 CubeMX 移植 RT-Thread Nano:RT-Thread 文档中心 注意:串口2必须使能异步模式(启 ...
- xpt 2046的触摸屏 rt thread设备驱动框架
1 基于rtt 开发触摸屏驱动 准备使用rtt 框架 , 驱动xpt 2046的触摸屏, 翻阅大量资料发现, 大部分文章强调的是时序图, 而且很多代码要么直接操作寄存器, 要么是io 口模拟, 只能用 ...
- 关于RT thread系统节拍时钟的配置
关于RT thread系统节拍时钟的配置 -----本文基于rt-thread-3.1.3版本编写 首先,使用RTthread OS时,要配置(或者明白)它的系统节拍 ...
- rt thread 使用FAL遇到fal_init() undefined reference
rt thread FAL 0.5版,之前有没有不知道,遇到一个坑. 在main.cpp里面已经 #include <fal.h> fal_init() 编译报错,说 fal_init() ...
最新文章
- Linux C编程--网络编程3--面向无连接的网络编程
- HGOI 20181103 题解
- linux下的tmpfs目录重启后文件全部消失
- 移动通信蜂窝原理例题整理
- 度量时间差和jiffies计数器
- python个人网站系统_利用基于Python的Pelican打造一个自己的个人纯静态网站
- 2021年终总结2022未来展望——人生天地之间,若白驹过隙,忽然而已
- 华为vrrp默认优先级_华为VRRP综合配置
- jQuery EasyUI 下拉菜单获取日期,最高年份为当前年份,最低年份为当前年份向前推10年...
- 虚拟机系统和windows主机系统的文件互传方法 ——WinSCP使用
- Springboot异常--Identify and stop the process that‘s listening on port 9090 or configure this applicat
- oracle删除闪回文件,oracle的闪回查询,闪回删除:
- 对接支付宝 生成付款码功能
- 如何编写c语言延时程序,单片机写延时程序的几种方法
- 移动二班钟静雯1853230244 0416
- java图片合成视频
- 大数据开发和大数据分析有什么不同?
- 织梦如何更改默认的后台登录账号和密码(亲测可用)
- 【AI简报20210514期】开源项目树莓派复古相机、L4自动驾驶新闻速递
- 2015年春节联欢晚会节目单