上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 107 下一页
摘要: 简介 信号量,队列。它们都具有一下特性: 它们允许在阻塞态下等待单个事件的发送。 它们在事件发送时可以取消阻塞的单个任务。 事件组是FreeRTOS提供另一种事件传递的方法,它与队列和信号量的不同点: 时间组允许任务在阻塞态下等待一个或多个事件。 事件发生时,事件组将取消阻塞等待同一事件或事件组合的 阅读全文
posted @ 2023-10-03 14:56 流水灯 阅读(685) 评论(0) 推荐(0)
摘要: 队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(固定长度消息传递)。 队列的优点: 不同任务之间的读写队列操作是互斥的(通过关中断实现) 读写队列有阻塞唤醒机制,阻塞的任务不抢占CPU资源(比如读队列,发现队列空,阻塞当前任务,除非其他任务有写队列,否则当前任务不再占用CPU资源) 队列 阅读全文
posted @ 2023-10-02 16:55 流水灯 阅读(219) 评论(0) 推荐(0)
摘要: armv7-M 上电后芯片自动完成一些配置,伪代码TaskReset()如下: 主要功能: 设置芯片处于 Thread 模式 访问等级是特权级,SP用的是MSP 关闭所有中断(exception) 从flash读出第一个word,设置到MSP 从flash读出第二个word,并读出最低位设置到EPS 阅读全文
posted @ 2023-09-30 22:06 流水灯 阅读(102) 评论(0) 推荐(0)
摘要: ARM的跳转指令介绍 跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程序流程的跳转: (1) 使用专门的跳转指令。 (2) 直接向程序计数器 PC 写入跳转地址值。 通过向程序计数器 PC 写入跳转地址值,可以实现在 4GB 的地址空间中的任意跳转,在跳转之前结合使用 MOV 阅读全文
posted @ 2023-09-29 12:09 流水灯 阅读(7002) 评论(0) 推荐(0)
摘要: 子函数或者中断函数的最后,一般的语句都是BX LR 返回调用点,但是两者的含义略有不同 中断函数 当系统发生中断/异常的时候,CM3 处理器会: 1、入栈:将 8 个寄存器的值压入栈,其中 LR 的值是中断前的值; 2、取向量:从向量表中获取对应中断的 ISR 入口地址; 3、取出MSP,更新到栈指 阅读全文
posted @ 2023-09-29 00:01 流水灯 阅读(838) 评论(0) 推荐(0)
摘要: 任务的状态 运行态 就绪态 阻塞态(被动让出CPU) 挂起态(主动让出CPU) 就绪态、阻塞态、挂起态的任务都是由链表进行组织管理 /* Task states returned by eTaskGetState. */ typedef enum { eRunning = 0, /* A task 阅读全文
posted @ 2023-09-25 23:17 流水灯 阅读(659) 评论(0) 推荐(0)
摘要: 信号处理函数执行时刻 当我们对一个进程发送信号后,会将这个信号暂时存放到这个进程所对应的task_struct的pending队列中,此时,进程并不知道有新的信号过来了,这也就是异步的意思。那么进程什么时候才能得知并处理这个信号呢? 有两个时机,一个当前进程由于系统调用、中断或异常而进入系统空间以后 阅读全文
posted @ 2023-09-24 22:45 流水灯 阅读(299) 评论(0) 推荐(0)
摘要: 什么是信号 信号本质上是在软件层次上对中断机制的一种模拟,其主要有以下几种来源: 程序错误:除零,非法内存访问…外部信号:终端Ctrl-C产生SIGINT信号,定时器到期产生SIGALRM…显式请求:kill函数允许进程发送任何信号给其他进程或进程组。 系统支持信号 在linux终端输入kill - 阅读全文
posted @ 2023-09-24 21:27 流水灯 阅读(482) 评论(0) 推荐(0)
摘要: 定义 自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,”自旋”一词就是因此而得名。由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。 信号量和读写信号量 阅读全文
posted @ 2023-09-17 22:21 流水灯 阅读(2142) 评论(0) 推荐(0)
摘要: 结构体内存对齐是什么? 结构体内有一个或者多个成员变量,这些成员变量是要“对齐”的。这么说可能有点抽象,我们先来了解一下内存对齐的规则,以及几个概念。 每个成员变量都有一个“对齐数”,这个对齐数等于其自身大小和默认对齐数的较小值。 举个例子: struct S { int a; char c; do 阅读全文
posted @ 2023-09-09 17:36 流水灯 阅读(227) 评论(0) 推荐(0)
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 107 下一页