新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于嵌入式处理器S3C44B0X的μC/GUI设计

基于嵌入式处理器S3C44B0X的μC/GUI设计

作者:时间:2012-03-23来源:网络收藏

1. 引言

B0X 是三星公司针对嵌入式系统推出高性价比微处理器,它是基于ARM7TDMI内核的16/32位RISC处理器,工作主频为66MHz。人机界面(GUI)是现代智能电子设备必不可少的重要组成部分,近年来随着硬件的发展不断进步,目前基于嵌入式的μC/GUI已经在智能仪器、工业领域等发挥了重要的作用[1-3]。本文讨论了一种基于三星公司生产的的μC/GUI移植方法,这种设计方法具有占用资源少、高性能、可靠性强、易移植等优点。

2. 通用嵌入式图形模块μC/GUI

μC/GUI是Micrium公司开发的通用的嵌入式用户图形界面软件。它给任何使用图形LCD的应用程序提供独立于处理器和LCD控制器之外的有效的图形用户接口。可以应用于单一任务环境,也可以应用于多任务环境中。μC/GUI能够应用于任何LCD控制器和CPU的任何尺寸的物理显示或者模拟显示中。 它具有驱动接口层和应用层,全部代码采用ANSI _C编写,提供源代码,可以方便的移植到各种平台下。

2.1 μC/GUI特点

μC/GUI的特点主要包括:适用于任何8位/16位/32位CPU,可允许于支持ANSI C的任何编译器;适用于任何控制器驱动任何LCD(单色,灰度,或者彩色);通过配置宏,可支持任何接口;可配置显示尺寸;可在LCD的任何一点上显示字符和画位图;对于显示尺寸和速度提供优化进程,编译时间依赖于采用的优化进程,支持虚拟显示,虚拟显示的尺寸比实际显示大。

2.2 μC/GUI数据结构

μC/GUI以其窗口作为内存管理的基本单位,对所有窗口的管理是通过定义一个堆结构实现的。每个窗口在创建时根据其结构类型的不同为其在堆空间里分配特定大小的连续内存块,并用一个块结构体数组中的一个元素标识,块结构体的定义如下:

typedefstruct

{

tALLOCINTOff;/*在堆中块开始的位置*/

tALLOCINTSize;/*在堆中所占连续内存块的大小*/

HANDLENext;/*指向后一窗口指针*/

HANDLEPrev;/*指向前一窗口指针*/

}tBlock;

statictBlockaBlock[GUI_MAXBLOCKS];

所分配的块结构体数组元素在数组中的序号作为返回值用以标识一个窗口,即句柄。这样对于一个窗口而言,记录其各方面属性的窗口类型结构体变量被放在堆空间中并且有一个块标志与之对应。在整个过程中通过定义一个全局结构变GUI_Alloc存放相关分配信息,实现对内存的辅助管理。

2.3 μC/GUI工作机制

μC/GUI依靠消息机制和毁掉函数来实现窗口的创建、显示及删除。在μC/GUI中定义了数十种用于各类基本操作的消息宏,对一个窗口的操作基本上都是通过向其对应的回调函数传送消息参数完成的。在整个工作过程μC/GUI利用一个全局的结构体变量GUI_Context即所谓的上下文变量来记录包括:绘图属性、当前窗口信息、当前API列表、字体信息等与当前操作密切相关的信息,以管理整个工作流程。

3. 微处理器

三星公司推出的16/32位RISC处理器为手持设备和一般应用提供了高性价比和高性能的微控制器解决方案。其主频可达66MHz,外围设备和接口扩展丰富,使嵌入式系统的开发成本大大降低。

3.1 S3C44B0X内置LCD控制器

S3C44B0X内置LCD控制器可以支持规格为每像素2位(4级灰度)或每像素4位(16级灰度) 的黑白LCD。也可以支持每像素8位(256颜色)的彩色LCD屏。其内部结构框图如图1所示。

图1 LCD内部控制器框图

3.2基于S3C44B0X建立GUI硬件平台

S3C44B0X有两种运行方式:一种是有操作系统的,另一种是无操作系统的。对于无操作系统的运行方式,系统的初始化和主程序都在2MB的线性 FALSH内运行,2MBFALSH与S3C44B0X的Bank0相连,上电复位后系统自动从0x00000000地址开始运行,也可以把程序加载到指定的地址开始运行。本文中采用无系统运行方式,将初始化程序和主程序加载到首地址为0x0c008000的2MFLASH中运行。

笔者使用的基于S3C44B0X的开发板与LCD相关部分主要集成了如下器件:2MB的FLASH;8MB的SDRAM;用户自定义逻辑器件;一块夏普5.7英寸、256色、320×240分辨率LCD;ARM JTAG接口。

其功能框图如图2所示。

图2开发板相关部分框图


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭