抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

链表线性表的链式储存结构有很多个结点,每个结点都有一个指针头,左后一个结点的指针为空,通常设置为null或者^表示,第一个结点称作为头结点 头指针 头结点 头指针是指链表指向第一个结点的指针,若链表有头结点,则指向头结点的指针 头结点是为了操作的统一和方便而设立的,放在第一元素的结点之前,其数据域一般无意义(也可以存放链表的长度) 头指针具有标识作用,所以常用头指针冠以链表的...

OLED常见的OLED​显示屏,0.96寸,128*64 通用流程 开启显示(进入工作模式) 关闭显示(进入睡眠模式) 设置复用率 设置列引脚硬件配置 设置显示时钟分频值/振荡频率(刷新率) 设置预充电周期 设置VCOMH反压值 设置电荷泵开启 屏幕控制指令,反色、镜像反转、滚动、淡出、闪烁等动画效果 设置坐标位置1234567891011//指定操作的像素坐标/* X:0-12...

CPU利用率CPU​利用率需要控制在一个较好的范围,能够完美响应紧急的事件 开启宏定义portCONFIGURE_TIMER_FOR_RUN_TIME_STATS 1​、portGET_RUN_TIME_COUNTER_VALUE 1​ 创建CPU利用率监控 开启宏定义 12345678910111213//启用运行时间统计功能#define configGENERATE_RUN_TI...

中断管理异常:同步异常和异步异常 同步异常:内部事件,处理器指令产生的事件。由内部产生 异步异常:被零除算术运算,读写异常等。由外部硬件装置 中断管理: 支持开关中断 支持恢复中断 支持使能 支持屏蔽 支持可选系统管理的中断优先级 中断种类:外设、中断控制器、CPU本身 中断名词 中断号:特定标志 中断请求:紧急事件需向CPU​提出请求,这一过程称为中断请求 中断优先级:将中断源分为...

内存管理内存通常分为两种:内部存储空间(RAM​)和外部存储空间(硬盘) 避免使用C​语言标准库的malloc​和free​内存函数 嵌入式RAM​可能不足,函数并不总是可用 实现可能很大,占用很大的代码空间 几乎不安全 调用时间不确定,每次可能都不一样 可能产生碎片 会使链接器配置复杂 如果允许堆空间的生长方向覆盖其他变量占据的内存,会成为debug​的灾难 内存管理应用场景 void...

任务通知任务通知是一种任务间通信的手段,比使用信号量更节省资源,解除阻塞时间更快 无需创建队列 更节省RAM空间 发送通知任务几种模式:通知未读,不覆盖通知值;直接覆盖通知值;设置通知位的一个或多位,当作事件组;递增通知值,当做计数信号量。 由于必须指定接收通知的任务,只能有一个任务接收通知。 只有等待通知的任务可以被阻塞,发送通知的任务不会因为发送失败进入阻塞态。 任务通知运行机制12...

软件定时器软件定时器是一种基于硬件定时器的资源利用手段,相当于扩展了定时器数量。 允许开启关闭软件定时 创建软件定时 启动软件定时 停止软件定时 复位软件定时 删除软件定时 软件定时运行机制123//开启宏定义#define configUSE_TIMERS 1#define configTIMER_QUEUE_LENGTH 10 单次模式,定时完毕只执行一次回调...

事件事件是一种任务间通信的技术,和信号量不同,可以实现一对多,多对多的通信,但是不涉及数据的传输。 configUSE_16_BIT_TICKS​ 开启后,uxEventBits​为16位,8位存储事件组;未开启时,uxEventBits​为32位,24位存储事件组。 事件只与任务相关联,事件之间彼此独立。 事件只同于同步,不涉及数据传输。 事件无队列消息性质,多次向同一任务发送事件,若未...

信号量信号量类似于裸机开发中的标志位,用于任务间通信的变量,或者成为标志位。 临界资源:任何时刻只能被一个任务访问的资源 递归信号量和互斥量都实现继承优先级机制,降低优先级反转的危害 二值信号量运行机制 类似于互斥量,但是没有互斥量的优先级继承机制 偏向于同步功能,任务与任务的同步,任务与中断的同步 等效于一个只有一个消息的队列,只存在两种状态:有消息或者无消息 信号被获取时为0,被释放时为...

消息队列消息队列是一种用于线程间通信的技术,在FreeRTOS​中则用于任务间通信,其中的任务可以视为线程。 支持先进先出、后进先出 消息队列运行机制 创建消息队列单独划分一个内存空间,内存大小=控制块大小+单个消息空间*队列长度,然后初始化消息队列,空间大小无法更改。 初始化后,内存空间中会包含头指针等信息,消耗部分内存,删除消息队列后空间释放。 每个空间存放不大于uxIte...