基于STM32f429中ucosiii+emWin应用

本文介绍了基于STM32f429的ucosiii操作系统和emWin图形库的应用。内容涵盖UCOSII系统概念,如任务优先级、堆栈和调度,以及任务的创建、删除、挂起和恢复。同时,讲解了emWin的图形化界面操作和在硬件上的应用,包括GUIBuilder仿真和BMP图片显示。最后提到了在ucosiii中配置emWin任务的注意事项。
摘要由CSDN通过智能技术生成

第一篇 介绍

在这里就是稍微介绍一下ucosiii和emWin,f429在网上资源也是非常成熟了,在此就不啰嗦了。
**uC/OS-III**:(Micro C OS Three 微型的C 语言编写的操作系统第3版)是一个可升级的,可固化的,基于优先级的实时内核。它对任务的个数无限制(uC/OS-II在2.80版本之前 最多允许任务个数为64个,之后达到255个)。uC/OS-III 是一个第3 代的系统内核,支持现代的实时内核所期待的大部分功能。例如资源管理,同步,任务间的通信等等。然而,uC/OS-III 提供的特色功能在其它的实时内核中是找不到的,比如说完备的运行时间测量性能,直接地发送信号或者消息到任务,任务可以同时等待多个内核对象等。
**emWin/UCGUI**:是一款图像界面制作工具,在图像制作这一块应用相当广泛,可使用 M4 内核 MCU 的时候会移植 UCGUI 来制作精美的 UI, UCGUI 的高级版本就是 emWin,而 STemWin是 SEGGER授权给ST的 emWin版本,ST的芯片可以免费使用 STemWin,而且 STemWin 针对 ST 的芯片做了优化。 本章我们将向大家介绍如何STM32F429 开发板上移植 STemWin, 在文章通过使用原子配套开发板 ALIENTEK 及配套液晶屏来实现对图片制作, 硬件搭载包括 8080 接口的 2.8寸, 3.5 寸, 4.3 寸和 7 寸(SSD1963),还有 RGB 接口的 4.3 寸(480*272), 7 寸(800*480), 7 寸(1024*600)这七种不同尺寸和分辨率的屏幕。

第二篇 uC/OS-III实现与应用

(1)系统概念

在应用之前首先了解 UCOSII 相关的概念需要大家了解一下: 任务优先级,任务堆栈,任务控制块,任务就绪表和任务调度器。
任务优先级:这个概念比较好理解, ucos 中,每个任务都有唯一的一个优先级。优先级是任务的唯一标识。在 UCOSII 中, 使用 CPU 的时候,优先级高(数值小)的任务比优先级低的任务具有优先使用权,即任务就绪表中总是优先级最高的任务获得 CPU 使用权,只有高优先级的任务让出 CPU 使用权(比如延时)时,低优先级的任务才能获得 CPU 使用权。 UCOSII 不支持多个任务优先级相同,也就是每个任务的优先级必须不一样。在软件中可以类比成是线程,我们WINDOWS采用的也是单线程,即在同一时间下只有一个任务在允许,通过调节应用线程的优先级可以确认线程抢占顺序。
任务堆栈:就是存储器中的连续存储空间。为了满足任务切换和响应中断时保存 CPU 寄存器中的内容以及任务调用其他函数时的需要,每个任务都有自己的堆栈。在创建任务的时候,任务堆栈是任务创建的一个重要入口参数。
任务控制块 :OS_TCB,用来记录任务堆栈指针,任务当前状态以及任务优先级等任务属性。UCOSII 的任何任务都是通过任务控制块(TCB)的东西来控制的,一旦任务创建了,任务控制块 OS_TCB 就会被赋值。每个任务管理块有3个最重要的参数:1任务函数指针;2任务堆栈指针;3任务优先级;任务控制块就是任务在系统里面的身份证(UCOSII 通过优先级识别任务),任务控制块我们就不再详细介绍了,详细介绍请参考任哲老师的《嵌入式实时操作系统 UCOSII 原理及应用》一书第二章。
任务就绪表:简而言之就是用来记录系统中所有处于就绪状态的任务。 它是一个位图,系统中每个任都在这个位图中占据一个进制位,该位置的状态( 1 或者 0)就表示任务是否处于就绪状态。
任务调度:作用一是在任务就绪表中查找优先级最高的就绪任务,二是实现任务的切换。比如说,当一个任务释放 cpu 控制权后,进行一次任务调度,这个时候任务调度器首先要去任务就绪表查询优先级最高的就绪任务,查到之后,进行一次任务切换,转而去执行下一个任务。
UCOSII 的每个任务都是一个死循环。每个任务都处在以下 5 种状态之一的状态下,这 5种状态是:睡眠状态、 就绪状态、 运行状态、 等待状态(等待某一事件发生)和中断服务状态。将运行状态结合起来就是系统中一个任务的生命周期,即单个程序被调用从开始到结束的生命周期。
睡眠状态:任务在没有被配备任务控制块或被剥夺了任务控制块时的状态。
就绪状态: 系统为任务配备了任务控制块且在任务就绪表中进行了

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值