logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

十九、内存管理--FreeRTOS

同时在嵌入式系统中,对内存的分配时间也很严格,分配时间如果过长将影响实时性,一般的内存管理算法是根据存储的数据长度来一块块去寻找与它相接近的内存块,然后将数据存储在里面,而寻找这样的内存块需要的时间是不确定的,这对于实时操作系统来说是不可接受的,因此需要一个更好的内存管理算法,让它可以在可预测的时间内完成,在嵌入式系统中内存是非常珍贵的,嵌入式中64K的内存相对于电脑中8GB的内存是小巫见大巫,用

文章图片
#jvm#数据结构#单片机 +2
十. 如何移植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语言
四. 任务

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

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

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

#c语言
到底了