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

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段末尾开始,堆空间的末尾是页的开始
在这里插入图片描述


总结

http://www.lryc.cn/news/476026.html

相关文章:

  • 20241102在荣品PRO-RK3566开发板使用荣品预编译的buildroot通过iperf2测试AP6256的WIFI网速
  • 网络模型——二层转发原理
  • 【编程技巧】C++如何使用std::map管理std::function函数指针
  • 导航栏小案例
  • MyBatis一文入门精通,面试题(含答案)
  • Ubuntu18.04服务器非root用户在虚拟环境下的python版本设定
  • CodeS:构建用于文本到 SQL 的开源语言模型
  • HTML 基础概念:什么是 HTML ? HTML 的构成 与 HTML 基本文档结构
  • 18 Docker容器集群网络架构:一、etcd 概述
  • R语言贝叶斯分层、层次(Hierarchical Bayesian)模型房价数据空间分析
  • SpringBoot 在初始化加载无法使用@Value的时候读取配置文件教程
  • 基于MATLAB的身份证号码识别系统
  • 【人工智能-初级】练习题:matplotlib基础练习30例
  • 【002】基于SpringBoot+thymeleaf实现的蓝天幼儿园管理系统
  • nvm详解
  • Lucene的概述与应用场景(1)
  • 11.3笔记
  • 数据结构之线段树
  • vue 快速入门
  • iframe视频宽度高度自适应( pc+移动都可以用,jq写法 )
  • Observability:OpenTelemetry Elastic 分发简介
  • golang的RSA加密解密
  • 深度学习-梯度消失/爆炸产生的原因、解决方法
  • MVC(Model-View-Controller)模式概述
  • 数据结构 —— 红黑树
  • 《功能高分子学报》
  • Linux特种文件系统--tmpfs文件系统
  • 《基于STMF103的FreeRTOS内核移植》
  • 一七二、Vue3性能优化方式
  • 软件测试--BUG篇