logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

十. 如何移植FreeRTOS到STM32中(精简版-全是干货!)

还有stm32f10x_it.c程序文件也需要修改,FreeRTOS 为开发者考虑得特别多,PendSV_Handler()与 SVC_Handler()这两个很重要的函数都帮我们实现了, 在 port.c 文件中已经实现 xPortPendSVHandler()与 vPortSVCHandler()函 数 , 防 止 我 们 自 己 实 现 不 了 , 那 么 在 stm32f10x_it.c

文章图片
#stm32#嵌入式硬件#单片机
一. RTOS概述

在FreeRTOS中,定义变量的时候,往往把变量的类型当做前缀加在变量上。例如char型变量的前缀是c,short型变量的前缀是s,long型变量的前缀是l,portBASE_TYPE类型变量的前缀是x。在编程的时候,如果用户没有明确char的符号类型,编译器会无从选择有符号或无符号,所以,在FreeRTOS中,需要明确指定变量char是有符号还是无符号的。我们知道,一个TAB键=4个空格键,代码

文章图片
#c语言
二. 新建FreeRTOS工程(保姆级步骤)

存放工程说明文档,如readme.txt。通常情况下我们都要对整个文档实现的功能,如何编译,如何使用等做一个简要说明。存放main.c和用户编写的其它程序,main第一次使用时需要用户自行新建。存放与处理器相关的接口文件,也叫移植文件,暂时为空。存放FreeRTOS内核源码,暂时为空。新建FreeRTOS工程之软件仿真。存放FreeRTOS组件,暂时为空。在KEIL工程里新建文件组。存放板级支持包

文章图片
#c语言
三 . 链表(列表)与节点(列表项)

举个通俗的例子,链表就像一个晾衣架,节点就是上面的钩子,节点与节点之间首尾相连。钩子不能代表很多东西,但是可以挂很多东西,节点类似,链表的节点不是用来存储大量数据的,但是可以挂很多数据。我们通过链表存储的数据里内嵌一个节点来实现将存储的数据挂在链表里。列表和列表项是直接从FreeRTOS源码的注释中的list和list item翻译过来的,其实就是我们C语言中的链表和节点。以单向链表为例,如图,该

文章图片
#链表#数据结构
四. 任务

这说明什么,说明有些操作是64位的,那是什么呢?如果栈顶指针是8字节对齐的,那么在进行向下8字节对齐的时候,指针不会移动,如果不是8字节对齐的,再向下做8字节对齐的时候,就会空出几个字节,不会使用,比如当栈顶指针(pxTopOfStack)是33,它不能整除8,进行向下8字节对齐的是32,那么就会空出一个字节不使用。在使用操作系统的时候,我们可以简单的将这两个指针理解为,当在线程中运行的时候,使用

文章图片
#c语言#链表#数据结构
二. 新建FreeRTOS工程(保姆级步骤)

存放工程说明文档,如readme.txt。通常情况下我们都要对整个文档实现的功能,如何编译,如何使用等做一个简要说明。存放main.c和用户编写的其它程序,main第一次使用时需要用户自行新建。存放与处理器相关的接口文件,也叫移植文件,暂时为空。存放FreeRTOS内核源码,暂时为空。新建FreeRTOS工程之软件仿真。存放FreeRTOS组件,暂时为空。在KEIL工程里新建文件组。存放板级支持包

#c语言
到底了