![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
嵌入式相关
文章平均质量分 69
Mr.羊
这个作者很懒,什么都没留下…
展开
-
XDU嵌入式操作系统 实验7:消息队列
在本实验中,设计了6个普通应用任务:TA0(优先级为1)、TA1(优先级为2)、TA2(优先级为3)、TA3(优先级为4)、TA4(优先级为5)、TA5(优先级为6),以及一个控制任务TaskCon(优先级为7)。(4)任务TaskCon再次将消息放入队列中,TA0—TA2按照LIFO顺序获取消息,TA3—TA5按照FIFO顺序获取消息。(5)任务TaskCon将消息队列2删除以后,TA3—TA5就不能获取消息了。掌握嵌入式实时操作系统µC/OS-II中消息队列机制的基本原理和使用方法。原创 2023-08-10 17:01:49 · 118 阅读 · 0 评论 -
XDU嵌入式操作系统 实验6
在本实验中,设计了三个任务Task1、Task2、Task3,创建了一个信号量InterruptSem。通过观察本实验的输出结果,熟悉并掌握了嵌入式实时操作系统µC/OS中中断的使用情况。掌握嵌入式实时操作系统µC/OS中中断的使用情况。原创 2023-08-10 17:00:39 · 71 阅读 · 0 评论 -
XDU嵌入式操作系统 实验5:µC/OS-II的内存管理
在main()函数中,使用µCos-II的OSMemCreate()函数创建一个用于动态内存分配的区域。通过传递适当的调用参数,我们在该区域中划分了2个128B的内存块。也就是说,内存块1已经被分配出去了,它的首地址储存在OSMemGet()函数的返回参数中。也就是说,如果进行多次内存分配和归还的话,那么最终的链表和初始化时的链表会完全不同。在该实验中,需要用到µC/OS-II内存管理中内存分配和回收的功能。通过完成该实验,深入学习掌握了嵌入式实时操作系统µC/OS-II内存管理中内存分配和回收的功能。原创 2023-08-10 16:51:54 · 149 阅读 · 0 评论 -
XDU嵌入式操作系统 实验4:哲学家就餐问题的实现
五个哲学家任务(ph1、ph2、ph3、ph4、ph5)主要有两种过程:思考(即睡眠一段时间)和就餐。每个哲学家任务在就餐前必须申请并获得一左一右两支筷子,就餐完毕后释放这两支筷子。通过完成该实验,掌握了在基于嵌入式实时操作系统µC/OS-II的应用中,任务使用信号量的一般原理;并且通过经典的哲学家就餐实验,学会了如何利用信号量来对共享资源进行互斥访问。掌握在基于嵌入式实时操作系统µC/OS-II的应用中,任务使用信号量的一般原理。通过经典的哲学家就餐实验,了解如何利用信号量来对共享资源进行互斥访问。原创 2023-08-10 16:49:48 · 133 阅读 · 0 评论 -
XDU嵌入式操作系统 实验3:优先级继承
(7)t7时刻,TASK1延时到,它在高优先级(PIP)下继续运行,调用OSMutexPost(mutex)释放互斥信号量并由TASK2获得此信号量,TASK1的优先级恢复到原来的高度,而TASK2因优先级较高而抢占TASK1运行(在t8时刻);(12)t13时刻,TASK0延时到,在高优先级(PIP)下继续运行,它执行OSMutexPost(mutex)释放互斥信号量,其优先级恢复到原来的高度,并由TASK2获得此信号量,TASK2抢占TASK0运行;,提升的高度等于这个高优先级任务的优先级。原创 2023-08-10 16:48:39 · 189 阅读 · 0 评论 -
XDU嵌入式操作系统 实验2:优先级反转
优先级反转发生在有多个任务需要使用共享资源的情况下,可能会出现高优先级任务被低优先级任务阻塞,并等待低优先级任务执行的现象。高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务,这种现象就被称为优先级反转。但如果是低优先级任务首先获得共享资源的访问,然后高优先级任务请求对共享资源的访问,则高优先级任务被阻塞,直到低优先级任务完成对共享资源的访问。在本实验中,要体现嵌入式实时内核的优先级抢占调度的策略,并显现由于共享资源的互斥访问而出现的优先级反转现象。原创 2023-08-10 16:47:33 · 216 阅读 · 0 评论 -
XDU嵌入式操作系统 课程内容分析
之后检查该sem event的资源限号量是否大于0,如果是则进行减操作表示信号量被一个任务占用,如果不大于0,说明对改event来说,已经没有信号量供使用需要的操作是挂起当前任务,并调用任务切换函数,在上面的代码中在OS_Sched()上面的四步操作是挂起任务操作,直到有可以使用的信号量再次执行任务切换时,会切换到当前任务继续从OS_Sched开始执行,可以看出下面的操作是从event的等待group和table中删除该任务,并且改变任务的状态为OS_STAT_RDY。//事件标志组的等待类型。原创 2023-08-10 16:46:07 · 110 阅读 · 0 评论 -
XDU嵌入式操作系统 实验1: 任务的基本管理
一个任务通常是一个无限的循环 ,由于任务的执行是由操作系统内核调度的,因此任务是绝不会返回的,其返回参数必须定义成void。在μC/OS-Ⅱ中,当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就会被抢占,高优先级任务会立刻得到CPU的控制权(在系统允许调度和任务切换的前提下)。优先级号越低,任务的优先级越高。为了展现任务的各种基本状态及其变迁过程,本实验设计了Task0、Task1两个任务:任务Task0不断地挂起自己,再被任务Task1解挂,两个任务不断地切换执行。原创 2023-08-10 16:41:25 · 214 阅读 · 0 评论 -
XDU嵌入式驱动程序设计 嵌入式系统设计【软工嵌入式方向】 四次实验报告+源码+截图+测试用例
2、测试函数open无法打开proc字符驱动设备,排除了设备号不一致、设备节点是否创建、file_operations结构体是否定义等原因,问题依旧无法解决,最终通过insmod导入设备时传入参数代替测试函数,实现相同的实验效果。1、测试函数中调用open打开设备文件时,返回值一直为-1,无法打开,解决:在mknod为设备创建节点时,自己设定的设备号需要与驱动程序中预设的设备号保持一致。在编译内核时,通过精简内核并生成zImage文件,使我学会了如何配置内核、移植内核和精简内核,加深了我对内核移植的理解。原创 2023-08-10 12:56:14 · 196 阅读 · 0 评论