会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
流水灯
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
23
24
25
26
27
28
29
30
31
···
109
下一页
2023年10月4日
FreeRTOS 原理 --- heap 堆内存的使用
摘要: FreeRTOS一共提供了5种申请内存的方案 heap1 只申请不释放,内存利用率最高。申请出来的内存块,没有内存块头记录这个内存的大小,所以也无法释放,也正是没有内存块头,内存利用率高 使用场景:不需要频繁申请内存 heap2 能申请能释放,不能合并内存块。每个内存块都有一个内存块头,有一个链表管
阅读全文
posted @ 2023-10-04 14:09 流水灯
阅读(277)
评论(0)
推荐(0)
2023年10月3日
FreeRTOS 原理 --- 软件定时器
摘要: 简介 有一个定时器任务,任务内读队列。启动定时器,会向队列发送消息,定时器任务读到消息后把定时器回调函数等信息作为一个链表项插入链表。当链表有链表项,算出还剩多长时间执行定时器回调函数,这个时间作为定时器任务阻塞时间。所以定时器任务重新运行要么是时间到准备运行定时器回调函数,要么是队列接收到消息。
阅读全文
posted @ 2023-10-03 21:27 流水灯
阅读(498)
评论(0)
推荐(0)
FreeRTOS 原理 --- 任务通知
摘要: 简介 任务通知核心包含是一个32位的无符号整数和一个8位的通知状态,这两个在任务控制块中,通知任务就是一个任务或者中断改写另外一个任务中的32位的无符号整数,改写这个整数的方式可以有所不同 可以让这个整数加1,模拟信号量 设置该整数的指定的某些位,模拟事件组 直接选择覆盖或者不覆盖写入,模拟消息队列
阅读全文
posted @ 2023-10-03 17:29 流水灯
阅读(240)
评论(0)
推荐(0)
FreeRTOS 原理 --- 事件组
摘要: 简介 信号量,队列。它们都具有一下特性: 它们允许在阻塞态下等待单个事件的发送。 它们在事件发送时可以取消阻塞的单个任务。 事件组是FreeRTOS提供另一种事件传递的方法,它与队列和信号量的不同点: 时间组允许任务在阻塞态下等待一个或多个事件。 事件发生时,事件组将取消阻塞等待同一事件或事件组合的
阅读全文
posted @ 2023-10-03 14:56 流水灯
阅读(726)
评论(0)
推荐(0)
2023年10月2日
FreeRTOS 原理 --- 队列
摘要: 队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(固定长度消息传递)。 队列的优点: 不同任务之间的读写队列操作是互斥的(通过关中断实现) 读写队列有阻塞唤醒机制,阻塞的任务不抢占CPU资源(比如读队列,发现队列空,阻塞当前任务,除非其他任务有写队列,否则当前任务不再占用CPU资源) 队列
阅读全文
posted @ 2023-10-02 16:55 流水灯
阅读(261)
评论(0)
推荐(0)
2023年9月30日
ARM架构芯片上电启动,自动干了啥
摘要: armv7-M 上电后芯片自动完成一些配置,伪代码TaskReset()如下: 主要功能: 设置芯片处于 Thread 模式 访问等级是特权级,SP用的是MSP 关闭所有中断(exception) 从flash读出第一个word,设置到MSP 从flash读出第二个word,并读出最低位设置到EPS
阅读全文
posted @ 2023-09-30 22:06 流水灯
阅读(115)
评论(0)
推荐(0)
2023年9月29日
ARM汇编 --- 跳转指令 B、BL、BX、BLX的区别
摘要: ARM的跳转指令介绍 跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程序流程的跳转: (1) 使用专门的跳转指令。 (2) 直接向程序计数器 PC 写入跳转地址值。 通过向程序计数器 PC 写入跳转地址值,可以实现在 4GB 的地址空间中的任意跳转,在跳转之前结合使用 MOV
阅读全文
posted @ 2023-09-29 12:09 流水灯
阅读(7251)
评论(0)
推荐(0)
中断函数、函数调用 --- 出栈入栈原理分析
摘要: 子函数或者中断函数的最后,一般的语句都是BX LR 返回调用点,但是两者的含义略有不同 中断函数 当系统发生中断/异常的时候,CM3 处理器会: 1、入栈:将 8 个寄存器的值压入栈,其中 LR 的值是中断前的值; 2、取向量:从向量表中获取对应中断的 ISR 入口地址; 3、取出MSP,更新到栈指
阅读全文
posted @ 2023-09-29 00:01 流水灯
阅读(948)
评论(0)
推荐(0)
2023年9月25日
FreeRTOS 原理 --- 任务调度机制
摘要: 任务的状态 运行态 就绪态 阻塞态(被动让出CPU) 挂起态(主动让出CPU) 就绪态、阻塞态、挂起态的任务都是由链表进行组织管理 /* Task states returned by eTaskGetState. */ typedef enum { eRunning = 0, /* A task
阅读全文
posted @ 2023-09-25 23:17 流水灯
阅读(704)
评论(0)
推荐(0)
2023年9月24日
linux 信号 --- 实现原理
摘要: 信号处理函数执行时刻 当我们对一个进程发送信号后,会将这个信号暂时存放到这个进程所对应的task_struct的pending队列中,此时,进程并不知道有新的信号过来了,这也就是异步的意思。那么进程什么时候才能得知并处理这个信号呢? 有两个时机,一个当前进程由于系统调用、中断或异常而进入系统空间以后
阅读全文
posted @ 2023-09-24 22:45 流水灯
阅读(323)
评论(0)
推荐(0)
上一页
1
···
23
24
25
26
27
28
29
30
31
···
109
下一页
公告