基于ARMLINUX的嵌入式GUI的设计与开发._基于arm的简易gui设计

2020-02-28 其他范文 下载本文

基于ARMLINUX的嵌入式GUI的设计与开发.由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“基于arm的简易gui设计”。

基于ARM LINUX的嵌入式GUI的设计与开发

摘 要:GUI设计在嵌入式系统设计中占据着举足轻重的地位,MiniGUI为一种适合于嵌入式系统的、功能强大的GUI,本文介绍了基于ARM和Linux的MiniGUI移植方法以及在ARM开发板上实现普通手机操作界面的设计过程,并提出了相应功能的实现方法,给出了设计的效果。

关键词:嵌入式系统;ARM;Linux;MiniGUI

1、引言

目前,嵌入式应用非常广泛。嵌入式系统由硬件和软件两大部分组成。硬件方面的主要核心是嵌入式处理器,以ARM为核的32位RISC处理器是中高端嵌入式应用的代表。软件方面一般由嵌入式操作系统和应用软件组成。嵌入式操作系统种类众多,比如Linux、uCLinux,其具有开放源码、免费授权和资源丰富等优点,备受开发者的青睐。应用软件根据产品需求会用到图形界面(GUI)、文件系统(FS)、网络(TCP/IP协议栈)等软件功能,其中,GUI对于提高人机交互友好性,易操作性具有很好的效果,而随着图形显示设备的广泛应用,目标产品对GUI的需求越来越多。

2、系统环境和构架

系统实现环境采用SmartARM2200开发板及运行在ARM上的uCLinux操作系统。

SmartARM2200开发板:CPU型号为LPC2210,内核规格为ARM7TDMI-S,60M,支持uCLinux操作系统[1] [2];上面带有充足的存储资源(PSRAM,NAND FLASH,NOR FLASH和E2EPRORM等)和丰富的接口(以太网接口、CF卡和SD卡接口,串口接口等),可使用2.2英寸240*320 TFT液晶屏,可使用JTAG仿真调试[3];

嵌入式Linux内核[4]:uCLinux嵌入式操作系统;

uCLinux开发平台的构建:

基于Linux嵌入式系统的设计,其开发流程为如图1所示:

图1 Linux嵌入式系统开发流程

图中,依次建立开发环境arm-elf-gcc,安装uCLinux内核,下载ZLG/BOOT,下载uCLinux内核和文件系统,为了调试uCLinux应用程序,将宿主机的共享目录加到开发板的/mnt目录下,并启动NFS服务。MagicARM2200-S主芯片为LPC2210,LPC2210芯片没有内部Flash,无法进行ISP下载,需要额外的DownLoad程序。

3、MiniGUI移植

在宿主机上安装MiniGUI:将MiniGUI函数库源代码和资源文件(MiniGUI-STR压缩包)复制到PC机的RedHat 9.0特定目录上,解压,编译。

在目标板的uCLinux操作系统上运行MiniGUI应用程序[3],需要:

1)由于不同目标机的图形显示设备与输入设备不一致,所以需要为MiniGUI编写相应的GAL和IAL(驱动程序),再于MiniGUI的源代码一起交叉编译生成MiniGUI的静态链接库文件(uCLinux不支持共享库,只能使用静态连接库); 2)MiniGUI应用程序也在宿主机上进行交叉编译,并与MiniGUI静态链接库生成目标板可执行的FLAT格式文件,交叉编译如图2所示; 图2 MiniGUI应用程序的交叉编译

3)在目标板的uCLinux操作系统上搭建MiniGUI运行环境(安装MiniGUI的资源文件res和运行的配置文件MiniGUI.cfg),将MiniGUI应用程序(FLAT格式)下载和运行。

根据系统要求,需安装MiniGUI资源文件,并修改运行时的配置文件MiniGUI.cfg。

4、系统设计与实现 4.1系统总体框架

基于SmartARM2200开发板,进行MiniGUI系统,并模拟手机显示部分主要功能:首页,图标选择界面,电话本,信息,游戏,其他等六大模块,系统总体框架如图3.1所示:

1)首页:具有显示静态封面图片,更改、显示时间等功能;

2)图形选择界面:提供一个以图标加标签文字的方式供用户浏览选择条目的界面;

3)电话本管理:提供记录姓名、手机、电话、地址等信息,并且可以添加、修改、设计适合手机键盘输入的拼音输入法程序,满足中文姓名,中文短信等汉字输入的需要,键盘布局如图3.2所示;

4)信息管理:提供编写新信息,浏览收信箱和发信箱等的操作界面; 5)游戏:提供一到两个单机游戏,比如贪吃蛇,俄罗斯方块; 6)其他:利用GUI绘图函数绘制几幅优美的图像,制作闹钟等;

图3.1系统整体框图图

图3.2键盘布局图

注:在主界面下,可以通过按左右键来进入图形选择界面,电话本管理和短信管理;在图形选择界面下可以通过选择不同的图标来进入不同的操作界面。

4.2 系统模块设计

4.2.1主界面功能的实现如下:

1)主窗口的创建部分[5]

InitMainWindow();

// 设置各项属性,并建立主窗口

ShowWindow(hMainWnd,SW_SHOWNORMAL);

// 显示主窗口

2)消息循环

while(GetMeage(&Msg,hMainWnd))

{ TranslateMeage(&Msg); DispatchMeage(&Msg);}

3)填充背景色和显示汉字

LoadBitmapFromFile(HDC_SCREEN,&mainskin,“res/skin2.bmp”);

FillBoxWithBitmap(hdc,0,0,MWINDOW_RX,283,&mainskin);

TextOut(hdc,30,295,“信息”); // 显示文字

其中资源图片一般在MiniGUI建立主窗口的过程中发送MSG_CREATE消息时加载(逻辑字体也在此时创建),而背景色的填充和汉字的显示则是在窗口初始显示,发送MSG_PAINT消息时绘制,而且必须在指定的设备上下文中操作:

hdc = BeginPaint(hWnd);

// 获得设备hdc

EndPaint(hWnd,hdc);

// 释放设备hdc

4)时间操作

在MSG_CREATE消息时,启动1s的定时器:SetTimer(hWnd,ID_TIME,100);在定时器消息MSG_TIMER中获取当前时间,并显示出来。

4.2.2图形选择界面的功能实现

当有键盘按下时,系统会发送MSG_KEYDOWN,处理此消息时,通过判断按键方向,确定当前选择的图标,当选择图标发生变化时,即用背景色重绘原有边框,用另一种颜色绘制新的边框,并将标签文字重写在右下角的位置。

4.2.3电话本管理模块完成的功能:

1)显示电话本名单,通过上下键移动可选中不同的名单,同时显示其电话号码;

2)选中一个名单时,可以查看其详细信息(姓名,手机,固话,住址,排序,类型等),并且可以编辑修改;

3)当选中“新建”时,可以创建一个新的电话名单和其详细信息;

4)姓名和住址的编辑支持中文拼音输入法,通过2~9按键上标注的26个字母组合,可以输入常见的汉字。

电话本管理模块的实现方法如下:

1)电话本列表框实现:

{CTRL_LISTBOX,//列表框控件定义:

WS_VISIBLE WS_VSCROLL WS_BORDER LBS_NOTIFY,//LBS_SORT,//

L

BS_AUTOCHECKBOX,1,0,238,263,ID_PhoneList,”“,0,}

在初始化和更新条目时需要填充列表框,清空列表框和填充函数分别为:

SendDlgItemMeage(hWnd,ID,LB_RESETCONTENT,0,0);

SendDlgItemMeage(hWnd,ID,LB_ADDSTRING,0,(LPARAM)myphonenote[i].name);

更改选择条目字符串和更改反白条位置的函数分别为:

SendDlgItemMeage(hwnd, ID, LB_SETTEXT,index,buff),SendDlgItemMeage(hwnd,ID,LB_SETCURSEL,index,0L);

2)条目明细——查看框

分别创建相应的静态框和编辑框,列表框,并填充相应的值即可。

3)条目明细——编辑框

初始化时把光标赋予姓名框,备份当前的条目信息。

SendMeage(hwnd,EM_LIMITTEXT,10,0L);

4)拼音输入框

拼音输入法实现了手机电话本的修改维护和信息的编写,它不仅窗口比较多,切换频繁,而且需要汉字字库和键盘编码译码的支持,显示界面实现的难度比较大,其实现框架图如图4所示:

图4 拼音输入法界面

5、系统实现

经过交叉编译,通过FTP或NFS,和MiniGUI的资源文件、配置文件一起下载到构架好uCLinux操作平台的ARM板,重启运行,程序在开发板上运行时部分界面效果比较理想,如图5所示:

图5 运行结果

参考文献:

[1]李岩,荣盘祥编著.基于S3C44B0X嵌入式uCLinux系统原理及应用.清华大学出版社.[2] 广州周立功单片机发展有限公司.uCLinux开发平台构建.[3]周立功等著.ARM嵌入式系统实验教程(二).北京航空航天大学出版社.[4]林晓飞,刘彬等编著.基于ARM嵌入式Linux应用开发与实例教程.清华大学出版社.[5]北京飞漫软件技术有限公司.MiniGUI编程指南.

《基于ARMLINUX的嵌入式GUI的设计与开发..docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
基于ARMLINUX的嵌入式GUI的设计与开发.
点击下载文档
相关专题 基于arm的简易gui设计 设计 嵌入式 armlinux 基于arm的简易gui设计 设计 嵌入式 armlinux
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文