首页 > 嵌入式软件 > Uc/os II

便携式医疗监护仪已成为人们日常生活中不可缺少的一部分。便携式设备是由硬件与软件紧凑组合的一个单元模块,是一种体积小、智能化程度高、功能全、使用灵活、操作方便的便携机,适合家庭使用、外出携带等用途。为了使便携式心电监护仪实现友好的人机交互和更加方便的显示,这里提出一种GUI界面系统设计,就是在基于NiosⅡ处理器的嵌入式平台上实现μC/GUI的移植,使之实现系统功能。

本文引用地址: http://www.21ic.com/embed/software/ucos/201810/72486.html

1 μC/GUI的系统移植

1.1 μC/GUI简介及可移植性分析

μC/GUI是Micrium公司开发的通用的嵌入式图形用户界面软件,其中图形用户接口GUI(Graphical User Interface)。该界面软件被设计用于为任何使用一个图形LCD的应用提供一个有效的不依赖于处理器和LCD控制器的图形用户接口。它能工作于单任务或多任务的系统环境下。μC/GUI适用于使用任何LCD控制器和CPU的任何尺寸的物理和虚拟显示,具有源代码开放及模块化设计的特点。

μC/GUI的代码全部用ANSI的C语言编写的,具有很强的移植性。由于μC/GUI采用分层结构,即具有驱动接口层和应用层,因此可方便地移植到各种 CPU下使用。μC/GUI对各类图像LCD显示器具有良好的支持,并且有常见的2D图形库和窗口管理功能,而且消耗较少的系统资源,占用RAM和ROM 的空间很小。在典型的应用中,μC/GUI需要的资源如表1所示。由表1可见,运行μC/GUI需要的系统资源不是很多,并支持几乎所有类型的CPU与大多数的LCD模块,μC/GUI的源代码规模适中,移植过程中可将不需要的代码进行剔除,而且结构层次清晰,因此适合用于嵌入式系统中。

1.2 μC/GUI移植原理

嵌入式用户图形界面系统μC/GUI与嵌入式实时操作系统μC/OS-Ⅱ都是美国Micrium公司产品,μC/GUI能更轻易地在 μC/OS-Ⅱ上应用,实现与μC/0S-Ⅱ的无缝结合。在NiosⅡ嵌入式系统中,Altera公司已经将μC/OS-Ⅱ操作系统移植成功并且提供使用,所做的工作是将μC/GUI移植到NiosⅡ嵌入式平台之上,使其能与μC/OS-Ⅱ操作系统结合使用,采用μC/GUI 3.98版本的源代码进行移植。

μC/GUI的软件体系结构如图1所示,μC/GUI函数库为用户程序提供GUI接口,包含的函数有文本、数值、二维图形、输入设备以及各种窗口对象。其中,输入设备可以是键盘、鼠标或触摸屏;二维图形包括图片、直线、多边形、圆、椭圆、圆弧等;窗口对象包括按钮、编辑框、进度条、复选框等。

μC/GUI函数库可以通过GUIConf.h文件进行配置,包括内存设备,窗口管理器,支持操作系统、触摸屏,以及配置动态内存的大小等。在移植中,需要根据系统需要以外设所支持的功能对GUIConf.h文件进行配置。

在LCDConf.h文件中定义了与硬件有关的各种属性,如液晶的大小、颜色以及与液晶的接口函数。而LCD驱动文件则负责把μC/GUI的各种函数解释成LCDConf.h文件定义的液晶接口函数,这个文件与具体的硬件连接无关。在移植时,需要对LCDConf.h文件进行配置,并针对LCD控制器编写相应的LCD驱动文件。

2 μC/GUI在NiOSⅡ上的移植设计

2.1 TFT LCD IP核结构

μC/GUI的移植是基于IP核的移植,编写TFT LCD控制器,所以移植时,在底层配置文件,参数的配置要和TFT LCDIP的相关参数相匹配,否则不可能移植成功,该IP核的结构如图2所示。

液晶屏采用台湾统宝公司的TRDB_LCM 3.6寸屏,该屏的分辨率是320x240,支持24位色,也就是RGB888模式,但是由于Avalon总线支持传输数据宽度的差异,因此只用16位色,即RGB为565的模式。由于DE2-70有2个32 MB的SDRAM,所以拿使用其中一块作为数据的存储器,Nio-sⅡ处理器将图像数据写入该SDRAM中,在NiosⅡIDE中用软件控制缓冲器的开启,当开启缓冲器之后,该BUFFER会源源不断地读取SDRAM中的数据,为避免读数据和NiosⅡ处理器向其中写入数据时发生冲突,Avalon总线自动在二者之间加入了一个Arbitrator仲裁模块来决定执行哪个操作。

配置LCD采用3线串行总线配置LCD,缓冲器以Avalon存储器映像主机的方式从SDRAM中读取数据,然后以Avalon Streaming Soume的方式把这些数据传送到LCD控制器上,LCD控制器是以Avalon Streaming Sink的方式接收从缓冲器传来的数据,LCD控制器生成时序,在适当时候将数据送出到TFT LCD屏上显示。

2.2 移植过程

2. 2.1 μC/GUI的文件组织结构

μC/GUI是以ANSI C源码包的形式提供的。源码包由配置文件目录(Config)和库函数目录(GUI)2个文件目录组成。在Config目录中包含了LCDConf.h、GUITouchConf.h、GUIConf.h 3个配置文件,这3个文件分别用于LCD底层接口的配置、触摸屏底层接口的配置以及μC/GUI自身的配置。在GUI目录中的库函数文件按照不同功能又分成若干子目录如图3所示,各子目录所实现的功能如表2所示。

2.2.2 移植过程

首先建立一个硬件系统,采用Altera公司的QuartusⅡ9.0版本的配套软件,硬件系统在QuartusⅡ集成的 SOPCBuilder系统开发工具中建立,添加NiosⅡ处理、JTAG调试模块、添加定时器SDRAM控制器、BUFFER IP、TFT LCD IP以及其他部分组件,最后生成一个硬件系统。然后在NiosⅡIDE环境下针对该系统建立一个TFT LCD软件工程,并且将μC/GUI有关的源代码拷贝到工程目录下,修改LCDConf.h、GUIConf. h、LCDLin32.c以及GUI_X_uCOS.c文件,使之与LCD控制相匹配,在该系统中,LCD采用16位数据总线,而CPU是32位的NiosⅡ软核处理器,先查看一下μC/GUI所支持的数据宽度信息,其数据宽度和NiosⅡ处理器所支持的宽度基本吻合,只要在改动代码时注意就可以。以下是具体的代码实现情况:

因为这里是基于TFT LCD IP核的移植,所以要定义LCD的读写函数,即LCD_READ_MEM(Off)和LCD_WRITE_MEM(Off,data)以及显示缓存区的起始位置,读写函数中的Off和data都是32位的无符号数,而操作函数IORD_32DIRECT()以及IOWR_32DIRECT()都是一次执行 32位数的操作,刚好和NiosⅡ处理器的数据宽度相匹配。由于支持μC/OS-Ⅱ操作系统,所以要对GUI_X_uCOS.c文件进行修改,增加系统延时函数OSTimeDly(1),使之能与μC/OSⅡ操作系统实现无缝衔接,以及3个子函数,void GUI_X_Log(const char*s){GUI_USE_PARA (s);};void GUI_X_Warn(const char*s){GUI_USE_PARA(s);};void GUI_X_ErrorOut(const char*s){ GUI_USE_PARA(s);};LCDLin32.e是对应3200型号控制器的驱动文件,由于在LCDConf.h中已经对用到的参量进行设置,所以无需修改,剩下的工作就是把不用的文件进行剔除,以减少编译时产生多余的代码量。

3 移植验证

在NiosⅡIDE环境下修改配置文件以及驱动文件,然后编译该系统,系统编译成功,编译成功之后还有MICRIUM公司的联系方式,这个是提醒用户该系列软件如果要用于商业目的是需要买license的,用于研究目的是免费的。

图片验证是采用μC/GUI自带的位图转换工具uC-GUI-BitmapConvert.exe,该工具可以将.bmp格式图片转换成指定的C语言数组的形式保存,例如将兰博基尼跑车标志的图片转换成RGB565的格式进行保存,加入工程,编译工程,然后下载验证,如图4所示。窗口管理组件验证采用代码包中自带的一个测试代码,其效果如图5所示。实验结果表明,移植是成功的。

4 结论

本文介绍了μC/GUI界面系统,以及NiosⅡ嵌入式系统,详细介绍了移植的过程,以及最终实现移植。实验结果表明,在嵌入式系统中使用μC/GUI进行人机界面的开发,不但移植简单、使用灵活,而且功能强大,稳定高效,大大降低了在嵌入式系统中开发图形人机界面的复杂程度,而且 μC/GUI还提供了几个非常实用的工具软件,其中包括一个仿真器,它使得在进行移植工作的同时,就可以在仿真器上进行软件界面部分的程序编写,加快了整个系统的开发进度。还有位图转换工具,可以轻松地将图片转换成C语言数组的形式保存,方便界面开发。μC /GUI还支持其他PS2鼠标、PS2键盘、触摸屏,包含丰富的绘图库、动画显示优化、还可以自己加入中文字体,通过使用μC/GUI的各项功能,相信可以在嵌入式系统中开发出功能强大的人机界面,而且在嵌入式系统中有很好的应用前景。

换一批

延伸阅读

[行业资讯] 看准高速通讯及存储器市场 晶心推小型CPU核心N22

看准高速通讯及存储器市场 晶心推小型CPU核心N22

瞄准高速通讯和存储等市场需求,嵌入式处理器IP公司晶心科技宣布推出32位元RISC-V CPU核心N22,可应用于小型物联网及穿戴设备等入门级MCU。总经理林志明表示,N22的高性能和精简设计,相当适合处理以高数据传输率运行中的协定封包。 ......

关键字:嵌入式 处理器 CPU

[行业资讯] 新突思电子科技发布业内首个边缘智能系统级芯片

新突思电子科技发布业内首个边缘智能系统级芯片

这套基于边缘计算的智能解决方案,能凭借较短的响应时间和更强的稳健性,实现更佳的用户体验。例如,语音识别(ASR)和自然语言理解(NLU)功能可以嵌入芯片内部,在本地运行时确保在网络信号不佳或中断时,智能家居的语音控制功能受到较少影响。SyN......

关键字:芯片 语音识别 嵌入式芯片

[行业资讯] 3D封装/GPU/CPU架构尽现 Intel六大领域战略力拓市场

3D封装/GPU/CPU架构尽现 Intel六大领域战略力拓市场

英特尔(Intel)日前举办「架构日」(Architecture Day 2018)活动,除了于会中展示多样基于10奈米系统,用于PC,数据中心和网络的解决方案之外,更于会中宣布未来将聚焦于六个工程领域的技术策略, 分别为先进制程和封装、加......

关键字:英特尔 嵌入式 多芯片

[行业资讯] 赛普拉斯进入中国20周年庆典在北京举行

赛普拉斯进入中国20周年庆典在北京举行

全球领先的嵌入式解决方案供应商赛普拉斯半导体公司(Cypress Semiconductor Corp.)(纳斯达克代码:CY)近日在北京举办“芯动中国”20周年庆典。活动上,赛普拉斯回顾了过去二十年间,为中国相关行业发展所做出的贡献;同时......

关键字:嵌入式 赛普拉斯 半导体

[行业资讯] 中国存储芯片自主研发技术交流峰会成功举办!国内首颗自研嵌入式40nm工规级存储芯片HC5001震撼发布

中国存储芯片自主研发技术交流峰会成功举办!国内首颗自研嵌入式40nm工规级存储芯片HC5001震撼发布

2018年11月21日,中国·南京 ICTECH 2018中国存储芯片自主研发技术交流峰会在南京举行。作为南通市第一家高阶存储产品主控设计公司——江苏华存电子科技有限公司(以下简称“江苏华存”),会上发布了国内自研第一颗嵌入式40纳米工规级......

关键字:存储芯片 嵌入式 HC5001
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14