一、移植内核文件

以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移植相关推荐

  1. RT Thread Free Modbus移植问题整理

    RT Thread Free Modbus移植问题整理 问题描述: 在读写寄存器中,写数据正常,只能读1个寄存器的值,多个值会异常. 在移植过程中发现串口(或RS485)数据接收长度异常. 一.环境描 ...

  2. 正点原子delay函数移植到rt thread操作系统(HAL库)

    正点原子教程中涉及到的操作系统只涉及了UCOS的教程,其中例程的system文件夹中的delay.c函数只是适配了UCOS. 下面将delay.c函数移植到rt thread中,使用的bsp是rt t ...

  3. rt thread studio使用QBOOT和片外flash实现OTA升级

    我们这里要使用单片机外部flash作为OTA的下载分区,外部flash硬件连接关系 PB3-->SPI3_CLK PB4-->SPI3_MISO PB5-->SPI3_MOSI PE ...

  4. Yeelink平台使用——远程控制 RT Thread + LwIP+ STM32

    1.前言     [2014年4月重写该博文]     经过若干时间的努力终于搞定了STM32+LwIP和yeelink平台的数据互通,在学习的过程中大部分时间花在以太网协议栈学习上,但是在RT Th ...

  5. RT Thread根据开发板制作BSP方法

    之前一直不懂怎么使用RT Thread的软件包,感谢网上的大神,看了你们的博客后大概了解一些,在此做下记录.用RT Thread软件包需要RT Thread的系统,但是RT Thread和RT Thr ...

  6. 基于rt thread smart构建EtherCAT主站

    我把源码开源到到了gitee,https://gitee.com/rathon/rt-thread-smart-soem 有兴趣的去可以下载下来跑一下 软件工程推荐用vscode 打开.rt thre ...

  7. RT Thread利用STM32CUBEMX和RT Thread studio来创建模板工程

    (1)RT Thread利用STM32CUBEMX来创建模板工程 1.参考文档: 基于 CubeMX 移植 RT-Thread Nano:RT-Thread 文档中心 注意:串口2必须使能异步模式(启 ...

  8. xpt 2046的触摸屏 rt thread设备驱动框架

    1 基于rtt 开发触摸屏驱动 准备使用rtt 框架 , 驱动xpt 2046的触摸屏, 翻阅大量资料发现, 大部分文章强调的是时序图, 而且很多代码要么直接操作寄存器, 要么是io 口模拟, 只能用 ...

  9. 关于RT thread系统节拍时钟的配置

    关于RT thread系统节拍时钟的配置                  -----本文基于rt-thread-3.1.3版本编写 首先,使用RTthread OS时,要配置(或者明白)它的系统节拍 ...

  10. rt thread 使用FAL遇到fal_init() undefined reference

    rt thread FAL 0.5版,之前有没有不知道,遇到一个坑. 在main.cpp里面已经 #include <fal.h> fal_init() 编译报错,说 fal_init() ...

最新文章

  1. Linux C编程--网络编程3--面向无连接的网络编程
  2. HGOI 20181103 题解
  3. linux下的tmpfs目录重启后文件全部消失
  4. 移动通信蜂窝原理例题整理
  5. 度量时间差和jiffies计数器
  6. python个人网站系统_利用基于Python的Pelican打造一个自己的个人纯静态网站
  7. 2021年终总结2022未来展望——人生天地之间,若白驹过隙,忽然而已
  8. 华为vrrp默认优先级_华为VRRP综合配置
  9. jQuery EasyUI 下拉菜单获取日期,最高年份为当前年份,最低年份为当前年份向前推10年...
  10. 虚拟机系统和windows主机系统的文件互传方法 ——WinSCP使用
  11. Springboot异常--Identify and stop the process that‘s listening on port 9090 or configure this applicat
  12. oracle删除闪回文件,oracle的闪回查询,闪回删除:
  13. 对接支付宝 生成付款码功能
  14. 如何编写c语言延时程序,单片机写延时程序的几种方法
  15. 移动二班钟静雯1853230244 0416
  16. java图片合成视频
  17. 大数据开发和大数据分析有什么不同?
  18. 织梦如何更改默认的后台登录账号和密码(亲测可用)
  19. 【AI简报20210514期】开源项目树莓派复古相机、L4自动驾驶新闻速递
  20. 2015年春节联欢晚会节目单

热门文章

  1. Uva 11178 Morley's Theorem 向量旋转+求直线交点
  2. 通过Qos 策略来对P2P限速
  3. Js将字符串转数字的方式
  4. 数组中的第K个最大元素
  5. php 魔术方法 多继承,PHP通过魔术方法实现多继承与重载
  6. java图形界面重写坐标_重写自由软件和计算机图形的历史
  7. 查询雇佣的所有员工_想要最好的员工? 让他们自己雇用
  8. roi计算_计算开放式硬件项目的ROI的6个步骤
  9. 惊呆了! | Spring Boot 使用 @Value 读取配置还能这样用
  10. es6 Iterator(迭代器)的概念