上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 99 下一页
摘要: request_threaded_irq() 阅读全文
posted @ 2023-10-05 16:11 流水灯 阅读(16) 评论(0) 推荐(0) 编辑
摘要: wait_var_event 等待 condition 为1,否则阻塞 阅读全文
posted @ 2023-10-05 13:50 流水灯 阅读(19) 评论(0) 推荐(0) 编辑
摘要: ARM芯片有硬件中断号,比如0~15是SGI中断 linux内核规定了软件中断号及软件中断号的功能;不直接使用ARM芯片的硬件中断号是因为linux内核是适配多架构操作系统,比如有些芯片硬件中断号20是GPIO中断,有些芯片是25;linux统一规定了某个中断号对应GPIO中断。这样就存在硬件中断号 阅读全文
posted @ 2023-10-05 00:27 流水灯 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 构成cpu的主要部件包括运算器、控制器、寄存器三个部件。 完整的CPU构架: ALU只负责计算,它的数可以从寄存器来,也可以从片外存储器来;数从哪儿来,做什么运算,是由指令解析产生的,逻辑控制单元来控制;逻辑控制单元的指令是在PC指针寄存器的指引下,从程序的地址空间拿进来逐条解析;在这些过程中如果P 阅读全文
posted @ 2023-10-04 15:39 流水灯 阅读(79) 评论(0) 推荐(0) 编辑
摘要: FreeRTOS一共提供了5种申请内存的方案 heap1 只申请不释放,内存利用率最高。申请出来的内存块,没有内存块头记录这个内存的大小,所以也无法释放,也正是没有内存块头,内存利用率高 使用场景:不需要频繁申请内存 heap2 能申请能释放,不能合并内存块。每个内存块都有一个内存块头,有一个链表管 阅读全文
posted @ 2023-10-04 14:09 流水灯 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 简介 有一个定时器任务,任务内读队列。启动定时器,会向队列发送消息,定时器任务读到消息后把定时器回调函数等信息作为一个链表项插入链表。当链表有链表项,算出还剩多长时间执行定时器回调函数,这个时间作为定时器任务阻塞时间。所以定时器任务重新运行要么是时间到准备运行定时器回调函数,要么是队列接收到消息。 阅读全文
posted @ 2023-10-03 21:27 流水灯 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 简介 任务通知核心包含是一个32位的无符号整数和一个8位的通知状态,这两个在任务控制块中,通知任务就是一个任务或者中断改写另外一个任务中的32位的无符号整数,改写这个整数的方式可以有所不同 可以让这个整数加1,模拟信号量 设置该整数的指定的某些位,模拟事件组 直接选择覆盖或者不覆盖写入,模拟消息队列 阅读全文
posted @ 2023-10-03 17:29 流水灯 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 简介 信号量,队列。它们都具有一下特性: 它们允许在阻塞态下等待单个事件的发送。 它们在事件发送时可以取消阻塞的单个任务。 事件组是FreeRTOS提供另一种事件传递的方法,它与队列和信号量的不同点: 时间组允许任务在阻塞态下等待一个或多个事件。 事件发生时,事件组将取消阻塞等待同一事件或事件组合的 阅读全文
posted @ 2023-10-03 14:56 流水灯 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(固定长度消息传递)。 队列的优点: 不同任务之间的读写队列操作是互斥的(通过关中断实现) 读写队列有阻塞唤醒机制,阻塞的任务不抢占CPU资源(比如读队列,发现队列空,阻塞当前任务,除非其他任务有写队列,否则当前任务不再占用CPU资源) 队列 阅读全文
posted @ 2023-10-02 16:55 流水灯 阅读(86) 评论(0) 推荐(0) 编辑
摘要: armv7-M 上电后芯片自动完成一些配置,伪代码TaskReset()如下: 主要功能: 设置芯片处于 Thread 模式 访问等级是特权级,SP用的是MSP 关闭所有中断(exception) 从flash读出第一个word,设置到MSP 从flash读出第二个word,并读出最低位设置到EPS 阅读全文
posted @ 2023-09-30 22:06 流水灯 阅读(49) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 99 下一页