摘要: 应用的运行环境取决于操作系统和硬件 操作系统可以克服CPU以外的硬件差异 在windows操作系统之前,每种机型(CPU相同,内存和输入输出设备不同)都需要专门的MS-DOS应用直接操作计算机的硬件。 Windows的出现完善了操作系统。 不同操作系统的API不同 应用程序与操作系统进行交互的接口称 阅读全文
posted @ 2021-05-17 15:25 若水千点 阅读(91) 评论(0) 推荐(0)
摘要: 一. 存储类 一个变量在程序中的存在一般可以从时间和空间两个角度去描述。 时间就是变量在内存中存活的时间即存储时期。空间可以从变量的作用域和链接属性去描述。 1.作用域 C变量的作用域分为代码块作用域,函数原型作用域,文件作用域3种。 代码块作用域:从该变量被定义的地方到包含该定义的代码块的末尾该变 阅读全文
posted @ 2021-05-17 15:23 若水千点 阅读(370) 评论(0) 推荐(0)
摘要: (任务管理) 何为任务 任务是一种在各自独立环境中无限循环的函数,即任务之间是相互独立的且有自己的工作环境。 任务执行一般采用抢占式方式,当任务处于不同优先级时采用抢占式方式执行,高优先级的任务可以打断低优先级的任务执行。当任务处于同一优先级时采用时间片轮转的方式执行。也可以都采用轮转的方式执行,但 阅读全文
posted @ 2021-05-17 15:22 若水千点 阅读(305) 评论(0) 推荐(0)
摘要: (消息队列) 何为消息队列 消息队列是用于任务与任务,中断与任务之间通信的数据结构,具有不定长,异步的特点。消息队列支持先进先出方式,先进入消息队列的消息先传给任务,同时也支持后进先出方式,即往队首发送消息。 一个消息队列 = 控制块 + 单个消息空间大小 * 队列长度。 消息队列一旦创建无法更改消 阅读全文
posted @ 2021-05-17 15:21 若水千点 阅读(1440) 评论(0) 推荐(0)
摘要: () 何为信号量 信号量是实现任务间通信的机制,用于任务同步或资源互斥访问,常见于出现资源竞争型的任务。 信号量分类 二值信号量 二值信号量用于同步或临界资源访问,没有优先级继承机制,偏向于同步功能。二值信号量可以看作只有一个消息的队列,这个队列只能为有值和无值两种情况。 当二值信号量用于同步功能时 阅读全文
posted @ 2021-05-17 15:19 若水千点 阅读(591) 评论(0) 推荐(0)
摘要: 事件标志组用于任务间通信或同步 事件标志组和全局变量 全局变量一般用在无RTOS的程序中,因此程序对全局变量的访问是顺序的,全局变量对于每一个访问它的程序来说都是最新值 事件标志组一般用在多任务系统中,多任务使用事件标志组可以防止访问冲突。因为多任务相当于并行执行,访问全局变量可能会出现同时访问一个 阅读全文
posted @ 2021-05-17 15:18 若水千点 阅读(552) 评论(0) 推荐(0)
摘要: 软件定时器的时钟节拍来自于系统时钟,不需要硬件定时器外设,软件定时器通过回调函数实现功能。 软件定时器的多数API函数是通过消息队列给定时器任务发送数据,在定时器任务里通过回调函数处理数据。 不要在定时器回调函数中调用引起任务阻塞或挂起的函数 软件定时器API 功能 TimerHandle_t xT 阅读全文
posted @ 2021-05-17 15:17 若水千点 阅读(503) 评论(0) 推荐(0)
摘要: FreeRTOS创建的任务都有一个任务控制块。 任务控制块本质上是一个结构体变量,用于记录任务的相关的消息。 结构体变量中有一个专门用于任务通知的32位变量ulNotifiedValue。 ulNotifiedValue可取代计数信号,二值信号,事件标志组 特点: 节省内存,提高效率,只有一个任务等 阅读全文
posted @ 2021-05-17 15:16 若水千点 阅读(364) 评论(0) 推荐(0)
摘要: 系统栈和任务栈 系统栈 系统栈用于中断函数和中断嵌套 系统栈大小在启动文件.S文件中分配 系统栈指针为MSP指针 任务栈 任务栈用于局部变量,函数形参,现场保护及返回地址等 任务栈大小在FreeRTOSConfig.h文件定义的heap中分配 任务栈指针为PSP指针 临界段 调度锁 任务锁 中断锁 阅读全文
posted @ 2021-05-17 15:13 若水千点 阅读(356) 评论(0) 推荐(0)