当前位置: 首页 > article >正文

RT-Thread学习


文章目录

  • 前言
  • 一、rtt的启动流程
  • 二、移植工作
  • 总结


前言

RT-Thread学习,这里记录对bsp的移植


一、rtt的启动流程

RT-Thread 支持多种平台和多种编译器,而 rtthread_startup() 函数是 RT-Thread 规定的统一启动入口。一般执行顺序是:系统先从启动文件开始运行,然后进入 RT-Thread 的启动函数 rtthread_startup() ,最后进入用户入口函数 main(),如下图所示:

在这里插入图片描述
入口函数存放在该目录 rt-thread/src/components.c
在这里插入图片描述

…/src/klibc/ 目录存放内核库文件,跟标准c库相关的
…/src/ 目录存放着内核实现的源码

rt_hw_interrupt_disable(), rt_hw_board_init(), rt_system_schedular_star() 这三个函数是关键,决定板子的中断初始化,板级设置初始化,系统调度初始化。
rt_hw_interrupt_disable() 和 rt_system_schedular_star() 主要是跟架构相关的东西,rtt中在 /libcpu/ 下可以查看。对于riscv架构的在 rt-thread/libcpu/risc-v 这个目录下
在这里插入图片描述
cvitek 下 使用的 cv18xx 用的是 riscv c906 架构cpu,这是个64位的cpu,所以应该参考…/common64/
使用 SConscript.py 来控制编译(生成汇编文件),Kconfig 来控制板子配置信息,rtconfig 来填充Kconfig。

二、移植工作

移植流程

  1. 移植并处理启动文件
  2. 将芯片架构的几个文件编译进来,rtt实现了基本的调度和中断等
  3. 完成rt_hw_board_init函数,不同的芯片这个函数不同
    确保一个板子可以运行rtt,需要完成下列工作
    1. 配置定时器为系统提供心跳时钟,一般来说是Systick滴答定时器
    2. 配置时钟系统,保证系统的正常运行
    3. 根据板子的flash或者ram的情况来配置系统堆的空间
    4. 最基本的pin驱动和uart驱动,

在 rt-thread/bsp/cvitek/cv18xx_risc-v/board/board.h 这个目录下
在这里插入图片描述
堆空间在bss段末尾开始,堆空间的末尾是页的开始
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
需要修改 bsp/xxx/board/Kconfig 来适配芯片
bsp/xxx/board/ports 是xxx这个板子的端口的配置,可以修改删除

rtthread.py
在这里插入图片描述

在这里插入图片描述


总结


http://www.kler.cn/a/379415.html

相关文章:

  • angular实现list列表和翻页效果
  • 如何修改网络ip地址:一步步指南‌
  • 真·香!深度体验 zCloud 数据库云管平台 -- DBA日常管理篇
  • 信息学科平台设计与实现:Spring Boot技术详解
  • 为什么 5g 物理信道 采用不同的调制方式
  • lost+found目录实现文件找回的原理
  • 基于SSM+微信小程序的社团登录管理系统(社团1)
  • Android Studio Gradle没有assembleRelease等选项的解决方法
  • 2024快手面试算法题-生气传染
  • HTML+CSS科技感时钟(附源码!!!)
  • 浅谈vuex和pinia的区别
  • 什么是虚拟dom,如何实现一个虚拟dom
  • 硅谷甄选(10)用户管理
  • HTML5 + CSS3 + JavaScript 编程语言学习教程
  • Rust编程中的浮点数比较
  • Spring Boot 3.x 整合 Druid 数据库连接池(含密码加密)
  • Docker安装MySQL8.0
  • LeetCode 热题100 之 回溯1
  • 已解决:VS2022一直显示编译中但无法运行的情况
  • 贝叶斯+PINN!双重热点buff叠加,轻松斩获Nature子刊!
  • 人工智能技术的演变与未来:前景、挑战与应对
  • Lobe Chat:你的私人AI助理
  • Kimi出考题,考题提示词Prompt附上,培训机构试题、期中考试、人事入职试题全搞定
  • Three.js基础入门笔记
  • Centos安装ZooKeeper教程(单机版)
  • DBA之路,始于足下