上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 22 下一页
摘要: 任务间通信 系统中的多个任务在运行时,经常需要互相无冲突地访问同一个共享资源,或者需要互相支持和依赖,甚至有时还要互相加以必要的限制和制约,才保证任务的顺利运行。因此,操作系统必须具有对任务的运行进行协调的能力,从而使任务之间可以无冲突、流畅地同步运行,而不致导致灾难性的后果。 与人们依靠通信来互相 阅读全文
posted @ 2018-04-04 11:15 Zackary丶Liu 阅读(819) 评论(0) 推荐(0)
摘要: 简介 μC/OS II 与大多数计算机系统一样,用硬件定时器产生一个周期为 ms 级的周期性中断来实现系统时钟,最小的时钟单位就是两次中断之间相间隔的时间,这个最小时钟单位叫做时钟节拍(Time Tick)。 硬件定时器以时钟节拍为周期定时地产生中断,该中断的中断服务程序叫做 OSTickISR( 阅读全文
posted @ 2018-04-03 23:15 Zackary丶Liu 阅读(537) 评论(0) 推荐(0)
摘要: 任务调度 多任务操作系统的核心工作就是任务调度。 所谓调度,就是通过一个算法在多个任务中确定该运行的任务,做这项工作的函数就叫做调度器。 μC/OS II 进行任务调度的思想是 “近似地每时每刻总是让优先级最高的就绪任务处于运行状态” 。为了保证这一点,它在系统或用户任务调用系统函数及执行中断服务程 阅读全文
posted @ 2018-04-02 21:49 Zackary丶Liu 阅读(852) 评论(0) 推荐(0)
摘要: 任务堆栈的作用 应用程序在创建一个新任务的时候,必须把在系统启动这个任务时 CPU 各寄存器所需要的初始数据(任务指针、任务堆栈指针、程序状态字等等),事先存放在任务的堆栈中,以备任务切换等操作时调用。 初始化函数的调用 μC/OS II 是在创建任务函数 OSTaskCreate( ) 中通过调用 阅读全文
posted @ 2018-04-01 21:40 Zackary丶Liu 阅读(527) 评论(0) 推荐(0)
摘要: 1. 任务的状态及其转换 睡眠状态: 任务在没有被配备任务控制块或被剥夺了任务控制块时的状态叫做任务的睡眠状态。 等待状态: 正在运行的任务,需要等待一段时间或需要等待一个事件发生再运行时,该任务就会把CPU的使用权让给别的任务而使任务进入等待状态。 就绪状态: 系统为任务配备了任务控制块且在任务就 阅读全文
posted @ 2018-03-31 20:31 Zackary丶Liu 阅读(517) 评论(0) 推荐(0)
摘要: 如果有下面这段代码: ~~~~ define min(x, y) ({ \ const typeof(x) _x = (x); \ const typeof(y) _y = (y); \ (void) (&_x == &_y); \ _x 阅读全文
posted @ 2018-03-30 20:59 Zackary丶Liu 阅读(1000) 评论(0) 推荐(0)
摘要: 1. 语句表达式 GNU C 把包含在括号中的复合语句看做是一个表达式,称作语句表达式,它可以出现在任何允许表达式的地方。我们可以在语句表达式中使用原本只能在复合语句中使用的循环、局部变量等,例如: ~~~~ define min_t(type, x, y) \ ({ type _x = (x); 阅读全文
posted @ 2018-03-30 20:55 Zackary丶Liu 阅读(160) 评论(0) 推荐(0)
摘要: Linux 上可用的 C 编译器是 GNU C 编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布。GNU C 是对标准 C 进行的一系列扩展,以增强标准 C 的功能。 1. 零长度和变量长度数组 GNU C 允许使用零长度数组,在定义变长对象的头结构时,这个特性非常有用。例如: 阅读全文
posted @ 2018-03-29 22:18 Zackary丶Liu 阅读(214) 评论(0) 推荐(0)
摘要: 多个单核CPU: ~~~~ 成本更高,因为每个CPU都需要一定的线路电路支持,这样对主板上布局布线极为不便。并且当运行多线程任务时,多线程间通信协同合作也是一个问题。依赖总线的传输,速度较慢,且每一个线程因为运行在不同的CPU上。导致不同线程间各开一个Cache,会造成资源的浪费,同时如果线程间协作 阅读全文
posted @ 2018-03-28 21:36 Zackary丶Liu 阅读(1716) 评论(0) 推荐(0)
摘要: 我们以 LDR 指令为例来分别举例分析。 LDR 指令的格式为: ~~~~ LDR{条件} 目的寄存器, ~~~~ LDR 指令是字加载指令,用于从存储器中将一个 32 位的字数据送到目的寄存器中。该指令通常用于从存储器中读取 32 位的字数据到通用寄存器,然后对数据进行处理。当程序计数器 PC 作 阅读全文
posted @ 2018-03-27 22:10 Zackary丶Liu 阅读(665) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 22 下一页