首页 > 其他分享 >STM32裸机移植RT-Thread(标准版)

STM32裸机移植RT-Thread(标准版)

时间:2023-05-11 12:44:48浏览次数:38  
标签:RT rt thread Thread 文件 裸机 标准版 定义

  前言,因为我嫌正点原子stm32l475vet6(潘多拉)给的rt-thread太过臃肿,决定自己移植一遍(RT-Thread包来自正点原子中潘多拉例程)

  参考了野火rt-thread的手册

  1、建立工程文件夹,如下

          

 Core  

Core/Inc

Core/src

用于存放用户自己的.c和.h文件 
Drivers Drivers/CMSIS
Drivers/STM32L4xx_HAL_Driver
CMSIS是存放库函数的,另一个是HAL库,设备驱动是直接放在Drivers文件下
MDK-ARM 使用keil5创建工程自动生成的文件夹
rt-thread

rt-thread/components/finsh

rt-thread/components/drivers

rt-thread/include

rt-thread/libcpu

rt-thread/src

finsh是一个好用的命令行工具

drivers包含rt-thred外设驱动.c和.h文件,例如spi、gpio.etc

include包含rt-thread是相关头文件

libcpu包含支持的cpu系列,例如M0、M4之类

src包含源文件  

      

 

 

 

 

 

 

 

 

 

 rt-thread内核源码直接从正点原子给的例程中找

  2、添加路径

   

    在keil中相应分组中添加.c文件

     

       具体的如下图所示:

       

    

       主要放设备驱动,根据需要选择添加

  

    

   对应上文的rtt/ports文件(改名了),存放cpu的支持包

  

    

     rt-thread源文件

   rt-thread设备驱动文件,与上文设备驱动有重合

  3、拷贝 rtconfig.h 文件到 user 文件夹(很重要)

   用户可以通过修改这个 RT-Thread 内核的配置头文件来裁剪 RT-Thread 的功能,但keil并不会自己给我们生成这样一个配置文件,所以需要手动移植

       

  修改rtconfig.h

  该头文件对裁剪整个 RT-Thread 所需的功能的宏均做了定义,有些宏定义被使能,有些宏定义被失能,一开始我们只需要配置最 简单的功能即可。要想随心所欲的配置 RT- Thread 的功能,我们必须对这些宏定义的功能有所掌握。

      

  例如,这里定义了一些关于RT-Thread内核的宏,一般不需要修改

   

    这里定义了线程间通信和同步的资源(信号量、互斥锁等)

     总之,rtconfig.h部分根据自己的需要配置即可

  如果,添加了相应的组件包,但编译器没有检测到相应的头文件,多半是由于忘记在这里头添加宏定义(踩过的坑)

  4、拷贝 board.h和borad.c 文件到 user 文件夹

  这里主要是存放与硬件相关的初始化函数

 

标签:RT,rt,thread,Thread,文件,裸机,标准版,定义
From: https://www.cnblogs.com/hk-to-try/p/17304452.html

相关文章

  • 【HTML】Echart图表
    layui-echarts简介基于layui实现的echart图表Echart官网示例Echart示例下载EchartEchart下载我们选择最下面的在线定制我这里就按照它默认选择的,后续以上面三个为梨子。下载完成后,访问工程里面,并引入页面。环境jdk1.8ideamavenspringboot2.1.1.RELEASE......
  • react echarts tooltip 区域新加一个输入框,可以编辑保存数据
     //demo页面//需求:产品要求在折线图的tooltip上新加一个输入框,可以编辑这个输入框保存备注信息,需要两种交互方式:1.鼠标滑过展示备注信息。2.鼠标点击某一个日期时,鼠标可以滑到tooltip上做保存/编辑操作。//思路:1.保留初始鼠标滑过echarts图效果。//2.主要难点是点击时to......
  • Makefile export
    1)1.在(parent,上层的)makefile中export出来变量,子makefile(submake)中,是可以访问的。2.而同一级别的makefile(可通过makefile中内置变量MAKELEVEL查看得知当前makefile的levlel),是无法通过export来传递变量的,即一个makefile中export出来一个变量,同一级的另外一个makefile中,是无法访......
  • vue3 Type 'never[]' is missing the following properties from type 'Ref ': value,
      加个value就可以了基本在vue3里面类似的错都可以用这种方法......
  • 算法学习day13栈与队列part03-239、347
    packageLeetCode.StackAndQueuepart03;importjava.util.ArrayDeque;/***239.滑动窗口最大值*给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。*你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。*返回滑动......
  • 算法学习day11栈与队列part02-20、1047、150
    packageLeetCode.StackAndQueuepart02;/***20.有效的括号*给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。*有效字符串需满足:*左括号必须用相同类型的右括号闭合。*左括号必须以正确的顺序闭合。*每个右括号都有一个对应的相同类型的......
  • Linux xfs文件系统stat命令Birth字段为空的原因探究
    在Linux平台找出某个目录下创建时间最早的文件,测试验证脚本结果是否准确的过程中发现一个很有意思的现象,stat命令在一些平台下Birth字段有值,而在一些平台则为空值,如下所示:RHEL8.7下,XFS文件系统[mysql@mysqlu02 ~]$ more /etc/redhat-release Red Hat Enterprise Linux......
  • python库之turtle库(1)
    Python的turtle库是一个用于绘制图形的库,它来自WallyFeurzeig,SeymourPapert于1967年在麻省理工学院MIT人工智能实验室开发的Logo编程语言。由于turtle绘图十分的直观而且十分受欢迎,所以turtle也逐渐的成为了Python的标准库之一。它很容易学习并且使用简单。安装turtle......
  • ubuntu apt 安装报错:Media change: please insert the disc labeled 'Ubuntu 20.04.5
    前言如果你在Ubuntu上使用apt安装软件包时遇到"Mediachange:pleaseinsertthedisclabeled..."的错误消息,这通常是因为apt源列表中包含CD/DVD源,但你的系统中没有插入相应的安装介质(CD或DVD)。解决检查/etc/apt/sources.list文件中,是否出现CD/DVD源。类似d......
  • 关于error The "ApexChart" component has been registered but not used 问题的解决
    问题描述学习了vue之后,但是还没熟练使用的我,发现删除某些模块会使得整个界面报错,真的是又被无语到(被自己哈!)问题解决仔细看了看这个报错,发现是因为这个界面定义了一些vue模块,但是由于我的修改,导致它们被定义之后,并没有得到相应的调用;然后解决的话,就很简单,将我们对这些模块再这......