基于uClinux的Microwindows的移植与中文化研究

合集下载

嵌入式C语言自我修养:从芯片、编译器到操作系统

嵌入式C语言自我修养:从芯片、编译器到操作系统

04
7.4 Linux内核 中的 size_t类 型
06
7.6枚举类 型
05
7.5为什么 很多人编程 时喜欢用 typedef
7.7常量和变量 7.8从变量到指针
7.9指针与数组的 “暧昧”关系
7.10指针与结构体
7.12函数指针
7.11二级指针
7.13重新认识void
1
8.1代码复用 与分层思想
5.1程序运行的“马 甲”:进程
5.2 Linux环境下的 内存管理
5.3栈的管理 5.4堆内存管理
5.6内存泄漏与防 范
5.5 mmap映射区域 探秘
5.7常见的内存错 误及检测
6.1 C语言标准和编 译器
6.2指定初始化
6.3宏构造“利器”: 语句表达式
6.4 typeof与 container_of宏
任何复杂的运算都可以分解为有限个基本运算指令。
目录分析
1.2程序编译工具: make
1.1代码编辑工具: Vim
1.3代码管理工具: Git
1
2.1一颗芯片 是怎样诞生的
2.2一颗CPU是 2
怎么设计出来 的
3
2.3计算机体 系结构
4 2.4 CPU性能
提升:Cache 机制
5
2.5 CPU性能 提升:流水线
2
4.2预处理过 程
3
4.3程序的编 译
4
4.4链接过程
5
4.5程序的安 装
4.7链接静态库
4.6程序的运行
4.8动态链接
1
4.9插件的工 作原理
4.10 Linux 2
内核模块运行 机制
3 4.11 Linux

五、ucos-II的移植-智能嵌入技术开发与实践-佟国香-清华大学出版社

五、ucos-II的移植-智能嵌入技术开发与实践-佟国香-清华大学出版社
放置移植实例的目录决定于用户所用的处理器,例如在下 面的表中所示的放置不同移植实例的目录结构。注意,各 个目录虽然针对完全不同的目标处理器,但都包括了相同 的文件名。
11
Intel/AMD 80186 Motorola 68HC11
\SOFTWARE\uCOS-II\Ix86S \OS_CPU.H \OS_CPU_A.ASM \OS_CPU_C.C \SOFTWARE\uCOS-II\Ix86L \OS_CPU.H \OS_CPU_A.ASM \OS_CPU_C.C \SOFTWARE\uCOS-II\68HC11 \OS_CPU.H \OS_CPU_A.ASM \OS_CPU_C.C
➢ uC/OS-II的全部源代码量大约是6000-7000行,一共有15 个文件。将 uC/OS-II 移植到ARM处理器上,需要完成的工 作也非常简单,只需要修改三个和ARM体系结构相关的文件 ,代码量大约是500行。
14
移植工作
如果处理器和编译器满足了μC/OS-Ⅱ的要求,并 且已经有了必要工具。移植工作包括以下几个内容: (1)用#define设置一些常量的值(OS_CPU.H) (2)声明10个数据类型(OS_CPU.H) (3)用#define声明三个宏(OS_CPU.H) (4)用C语言编写六个简单的函数(OS_CPU_C.C) (5)编写四个汇编语言函数(OS_CPU_A.ASM)
7
处理器支持硬件堆栈
COS-II进行任务调度的时候,会把当前任 务的CPU寄存器存放到此任务的堆栈中,然后, 再从另一个任务的堆栈中恢复原来的工作寄存器 ,继续运行另一个任务。所以,寄存器的入栈和 出栈是COS-II多任务调度的基础。
处理器中有专门的指令处理堆栈,可以灵活 的使用堆栈。

《嵌入式Linux系统开发与应用》康维新第6章 Qt图形编程

《嵌入式Linux系统开发与应用》康维新第6章 Qt图形编程

6.1 嵌入式GUI简介
目前的桌面机操作系统大多有着美观、操作方便、功能齐 全的GUI(图形用户界面)的特点,例如KDE或者GNOME。 GUI(图形用户界面)是指计算机与其使用者之间的对话接口 ,可以说,GUI是当今计算机技术的重大成就。它的存在为使 用者提供了友好便利的界面,并大大地方便了非专业用户的使 用,使得人们从繁琐的命令中解脱出来,可以通过窗口、菜单 方便地进行操作。 而在嵌入式系统中,GUI的地位也越来越重要,但是不同 于桌面机系统,嵌入式GUI要求简单、直观、可靠、占用资源 小且反应快速,以适应系统硬件资源有限的条件。另外,由于 嵌入式系统硬件本身的特殊性,嵌入式GUI应具备高度可移植 性与可裁减性,以适应不同的硬件条件和使用需求。
6.2.1 Qt/Embedded介绍
6.2.1 Qt/Embedded介绍
(1)窗口系统 一个Qt/Embedded窗口系统包含了一个或多个进程,其中的一个进程可作为 服务器。该服务进程会分配客户显示区域,以及产生鼠标和键盘事件。该服务进 程还能够提供输入方法和一个用户接口给运行起来的客户应用程序。该服务进程 其实就是一个有某些额外权限的客户进程。任何程序都可以在命令行上加上“qws‖的选项来把它作为一个服务器运行。
6.1.1 Qt/Embedded
6.1.2 MiniGUI
MiniGUI分为最底层的GAL层和IAL层,向上为基于标准POSIX接口中pthread 库的Mini-thread架构和基于Server/Client的Mini-Lite架构。其中前者受限于thread 模式对于整个系统的可靠性影响——进程中某个thread的意外错误可能导致整个进 程的崩溃,该架构应用于系统功能较为单一的场合。Mini-Lite应用于多进程的应用 场合,采用多进程运行方式设计的Server/Client架构能够较好地解决各个进程之间 的窗口管理、Z序剪切等问题。

MiniGUI图形界面实验

MiniGUI图形界面实验

学习移植 MiniGUI-STR(for uC/OS-II)软件到 SmartARM2200 开发板的基本方法,然后 编写一个简单的 MiniGUI 应用程序,使用 MessageBox 函数创建一个消息框,消息框中显示 字符串“Hello MiniGUI!” 。 4. 实验预习要求 (1) 仔细阅读<<ARM 嵌入式系统实验教程(二)>>第 1 章的内容,了解 SmartARM2200 开发板的硬件结构,注意 TFT 液晶接口电路和键盘电路。 (2) 阅读 MiniGUI 的文档 <<MiniGUI 用户手册 >> 和 <<MiniGUI 编程指南 >> ,了解 MiniGUI 的基本特点和应用配置选项,以及应用程序的编写。 5. 实验原理 (1) MiniGUI 简介 MiniGUI 项目的最初目标是为基于 Linux 的实时嵌入式操作系统提供一个轻量级的图形 用户界面支持系统,发展到今天,MiniGUI 已进入成熟和稳定阶段,并且所支持的操作系统 已不仅仅限于 Linux,它还可以在 uClinux、uC/OS-II、eCos、VxWorks 等系统上运行。 MiniGUI 为应用程序定义了一组轻量级的窗口和图形设备接口, 利用这些接口, 每个应 用程序可以建立多个主窗口,然后在这些主窗口中创建按钮、编辑框等控制。MiniGUI 还为 用户提供了丰富的图形功能,以显示各种格式的位图并在窗口中绘制复杂图形。 MiniGUI 和嵌入式操作系统的关系如图 1.1 所示,基于 MiniGUI 的应用程序一般通过 ANSI C 库以及 MiniGUI 自身提供的 API 来实现自己的功能。
4
广州周立功单片机发展有限公司 }
Tel: (020)38730976

uCGUI简单移植

uCGUI简单移植

嵌入式图形用户界面uc/gui在nios II上的移植uc/gui是一个优秀的嵌入式图形用户界面,这几天的工作就是将它移植到nios II系统上。

前人也做了一些工作,不过大部分都是针对其他硬核处理器,针对nios II软核处理器的移植资料那简直是凤毛麟角。

在阅读了相关文档后,我决定自己亲自动手实践,这下面的很多过程都是自己摸索出来的,并通过了实验的验证。

这只是一个初步的移植,也许在以后的更复杂的应用中,还需要对其进行调整。

但对目前我的应用而言,应该足够了。

写这篇文章的目的一是由于自己记性不好,所以需要给自己留个备忘,免得以后忘的一干二净;二是给有需要的朋友提供一些参考,也好相互交流,共同进步。

请大家多提宝贵意见。

一、源码和文档下载/上有很多不同版本的源码下载,目前能下到的最新版本是3.98,不过还有一些组件不是很完整,但作基础开发已经够用了。

ucgui3.98源码下载地址:uC-GUI-V3-98.zip。

ucgui最新版用户手册下载地址:uC-GUI-user.rar。

开发软件:quartus II 6.0, Nios II IDE 6.0。

二、移植过程先来看看解压后都有些什么东西:如图,核心的东西包括Config和GUI两个文件夹,这里面是ucgui的所有源码和配置文件。

ConvertColor包含彩色转换函数,ConvertMono包含灰度到彩色转换的函数,Core包含核心程序,Font是字体文件,LCDDriver包含多种控制器驱动,Widget是窗口控件库,WM是窗口库,提供复杂的功能。

其他文件夹包含一些应用范例以及一些有用的工具,留待慢慢探索。

1、config文件的移植:Config文件夹是ucgui的配置文件夹,里面有3个文件:GUIConf.h:gui的基本属性配置文件,有很多开关可以配置,具体可以参考ucgui的用户手册,这里只需配置几个必要的参数如下:#ifndef GUICONF_H#define GUICONF_H#define GUI_OS (1) /* 支持操作系统,nios系统自带了ucosII,所以我们选择此项,使gui支持该操作系统*/#define GUI_SUPPORT_TOUCH (0) /* 支持触摸屏,由于暂时没有用触摸屏,所以关掉这个开关*/#define GUI_SUPPORT_MOUSE (0) /* 支持鼠标,暂时关闭*/#define GUI_SUPPORT_UNICODE (1) /* Unicode字符串支持*/#define GUI_DEFAULT_FONT &GUI_Font6x8/* 默认字体*/#define GUI_ALLOC_SIZE 12500/* WM和memery device分配的内存*/ #define GUI_WINSUPPORT 1 /* Window manager available */#define GUI_SUPPORT_MEMDEV 0 /* Memory devices available,由于下载到的源代码中缺少memery device组件的源码,所以关闭此项*/#define GUI_SUPPORT_AA 1 /* Anti aliasing available */#endif /* Avoid multiple inclusion */LCDConf.h:LCD控制器的硬件配置文件,这个文件与硬件直接相关,一般是根据你所使用的LCD的类型和所用的LCD控制器的类型来配置。

uClinux上Microwindows的移植与中文化

uClinux上Microwindows的移植与中文化
维普资讯
Mi o o ue p l ain o. 2 N . ,0 6 c c mp t A pi t s 12 , o 7 2 0 r r c o V 文 章 编 号 :0 7 7 7 2 0 ) 6 o 6 4 1 o — 5 X(0 6 0 —0 4 一O
2 Mlr w d w c o io s系统 介 绍
Mi o n o c wid ws的最 新 版本 已经 更 新 到 0 9 。 们 采 用 了 r .1 我
Mi o n o 是 一 个 开 放 源码 的嵌 入 式 GUI 目 , c wid ws r 项 目的 在 于 把 现 代 图 形 视 窗 环 境 的 特 性 引 入 到 小 型 设 备 上 。 Mi .
co id ws起 源 于 Na o rW n o n GUl 目, 前 的 发 布 包 括 M i 项 目 r .
比较 稳 定 的发 布 版 0 9 . 0版 , 9 提 供 了放 多 新 增 功 能 , 0. O版 并 修止 08 . 9版 的一 些 B UG。增 强 和新 增 功 能 主要 包 括 : 新 的 对 N I XL B项 目的 支 持 , 置 触 摸 屏 校 准 与 一 些 新 的 基 于 AR 内 M 平 台 的硬 件 支 持 ; 善 x 1 屏 幕 驱动 与绘 图 速 度 : 体 的增 改 l的 字
对 Mio no c wid ws的 中 文 化 进 行 了 研 究 和 分 析 , 对 几 种 方 r 并 法 进 行 了 比较 。 于 本项 目对 多 国 语 言 的需 求 , 际 采 用 了基 基 实 于F e tp 2的 T u tp rey e r ey e中 文 字 库 , 国 际 化 与 本 地 化 嵌 入 图 将
应 用 程 序 接 口 ( Ps A I)

Microwindows

Microwindows

Microwindows 的图形引擎能够运行在任何支持 readpixel, writepixel,drawhorzline, drawvertline 和 setpalette 的系统之上。在底层函数的支持之下,上层实现 了位图,字体,光标以及颜色的支持。系统使用了优化的 绘制函数,这样当用户在移动窗口时可以提供更好的响应。 内存图形绘制和移动的实现使得屏幕画图显得很平滑,这 点特别在显示动画、多边形绘制、任意区域填充、剪切时 有用。Microwindows 支持新的Linux 内核帧缓存 (FrameBuffer)结构,目前提供每像素1、2、4、8、16、24 和32 位的支持,另外还支持彩色显示和灰度显示,其中彩 色显示包括真彩色(每像素15、16 和32 位)和调色板(每像素 1, 2, 4 和 8 位)两种模式。在彩色显示模式下,所有的颜 色用RGB 格式给出,系统再将它转换成与之最相似的可显 示颜色,而在单色模式下中则是转换成不同的灰度级. 。
画线
画线是一个简单的图形操作。Microwindows 提供 GdPoint 画点函数,GdLine 画线函数。画线时绘不绘最后 一个点都有人支持,谁是谁非这里不作讨论,为了解决这 个问题,Microwindows 采用了折中的方法:都支持。 GdLine 函数的最后一个参数指定最后一个点是否被绘制。 Microwindows API 不绘制最后一个点,而Nano-X API 绘 制。大部分的绘图函数,使用GdSetForeground 函数设置 当前前景颜色来绘图。另外,可以使用GdSetMode 函数来 指定当前绘图模式是MODE_SET 还是MODE_XOR。
键盘驱动
提供了两种键盘驱动。第一种是kbd_tty.c 用于linux 和 ELKS 系统,通过打开和读取文件描述符的方法来实现。第 二种是kbd_bios.c,用于MSDOS 系统,通过读取PC BIOS 的击键来实现。原来的键盘驱动只返回8 位键盘数据,没有 扩展功能键的区分能力。0.89pre7及其以上版本重新写了键 盘驱动,提供了扫描码、up/doindows 支持三种鼠标。Mou_gpm.c 提供了 linux 下鼠标的GPM 驱动,mou_ser.c 提供了linux 和ELKS 下串口鼠标的驱动,mou_dos.c 提供了MSDOS下鼠标的 int33驱动。鼠标驱动的最基本功能是转换鼠标数据,返回 鼠标的相对或绝对位置和按键。另外,Brad LaRonde 写了 一个触摸屏的驱动程序mou_tp.c,在某些场合可以代替鼠 标工作。它返回触摸笔在显示屏表面的x、y 坐标。在linux 下,Microwindows 在主循环执行select 函数,通常传递鼠 标和键盘的文件描述符给select 函数。如果系统不支持 select 函数或者在文件描述符中没有传递鼠标的数据,可以 使用Poll 函数获取鼠标的活动信息。

嵌入式开发的书

嵌入式开发的书

嵌入式开发的书
1. 《嵌入式系统开发之道:基于 ARM Cortex-M 内核微控制器》
- 作者:周立功等
- 推荐原因:本书以 ARM Cortex-M 内核微控制器为基础,系统介绍了嵌入式系统开发的各个方面,内容涵盖硬件设计、软件开发、系统调试等。

2. 《嵌入式 Linux 应用开发完全手册》
- 作者:宋宝华
- 推荐原因:本书全面介绍了嵌入式 Linux 应用开发的各个环节,包括系统构建、驱动开发、应用程序设计等,内容深入浅出,适合初学者和有一定经验的开发者阅读。

3. 《嵌入式系统:硬件、软件与接口》
- 作者:[美]Jean J. Labrosse 著,邵贝贝译
- 推荐原因:本书全面介绍了嵌入式系统的基本概念、设计方法和应用实例,涵盖了硬件平台、操作系统、软件开发等方面,是嵌入式系统开发的经典教材。

4. 《ARM 嵌入式系统开发:软件设计与优化》
- 作者:[美]Steve Furber 著,沈建华译
- 推荐原因:本书以 ARM 处理器为基础,详细介绍了嵌入式系统软件开发的方法和技巧,包括系统初始化、驱动程序设计、实时操作系统等。

5. 《嵌入式系统设计与实践》
- 作者:[美]Michael J. Pont 著,武卫东译
- 推荐原因:本书结合实例,系统介绍了嵌入式系统设计的各个方面,包括需求分析、硬件选择、软件开发、系统测试等,是一本实用性很强的嵌入式开发指南。

这些书籍都涵盖了嵌入式开发的不同方面,从入门到深入,希望能对你有所帮助。

当然,嵌入式开发是一个不断发展的领域,你还可以关注最新的技术动态和相关书籍,以保持学习的持续性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 引言
驱动层 、 中间 的图形引擎 层 、 向应用 程序的 A I 面 P
具 备体积 小 、 反应快 、 可靠性 、 高 可移 植性 好 以及 可 画点 、 画线 、 多边形 、 剪切 区 以及颜 色模 式 设置 等 功 裁 减等 特点 , 对于 实时 系统还 需要 有 时实 方 面 的要 能 。Mio idw 提供 了 E MAA I 和 N n —X c wno s r C PW ao 求 。 目前 , 行 的 嵌 人 式 G I系 统 有 Mio i— A I两 套 不 同标 准 的 A I分 别 兼 容 Wi3 和 x 流 U c wn r Ps P, n2 d w 、 nG I Q/ m e d d 等 。 基 中 Mi o i— Wi o , o s Mii U 、 tE b d e c wn r n w 其它系统上编写 的应用程序可 以很容 易 d dw 以其 开放 的源代 码 、 以裁 减 到 10 os 可 0 k的内核 、 移 到 Mi o id w 上运 行 。 c wn o s r 与 Wi 2 n 兼容 的 A I 3 P 以及高度的可移植性在嵌人
中图分 类号 1 1 .4 15
接 口层 。设 备驱动 部分 提供 了屏 幕 、 鼠标/ 摸屏 、 触 嵌 人式 G I 统是 嵌 入 式 系统 中实 现友 好 人 键盘以及其它 IO设备的实际操作 , U系 / 并向上提供统 机 界 面的关 键技术 , 用于嵌 人式 的 G I 应 U 系统 必须 接 口以实现 设 备无 关 图形 引 擎 。 中 间式系统上 的开源 G I ir n o s w U 软件 , 对嵌入式 Lnx操作系统具有 良好 的支持。介绍 了在 iu
ulu Ci x上移植 Mi o idw 的过 程 ; 出了三种解决 Mi o i o s中文 化的方法 : 接加载 中文字库 , n c wn o s r 提 c wn w r d 直 添加 Tut e re p 字体 y 驱 动模块 Fet e , re p2 修改图形引擎支持国际化与本地化 ; y 并对这几种方法进行 了分析和 比较 。 关键 词 u l u M co idw G I 中文化 Ci x ir n o s U n w 嵌入式系统
2 Mirw dw co io s系 统介 绍
3 2 硬 件抽象层 的 移植 .
Mio idw 的分 层体 系结 构 , 其在 不 同平 c wno s r 使 Mio idw 是一 个 开 放 源 码 的 嵌 人 式 G I 台上 的移 植变 得 相 当 容 易 。 由于 硬件 抽 象 层 为 图 c wno s r U 项 目, 目的在 于把现 代 图形 视 窗环 境 的特 性 引人 到 形 引擎 内核提供 了设 备无 关 的输人 输 出接 口 , 因此 小型设 备上 。MirWidw 起 源于 N nG I 目, co no s ao U 项
根 据 高 清 数 字 电视 U I产 品 开 发 需 要 , 在
文字 库 、 加 Tutp 体 驱 动 模 块 Fetp2 修 3 1 工作 平 台 添 re e字 y re e 、 y . 改 图形引擎 支持 国际化 与本 地化 等 方法 对 Mirw co — 我们开发的目标硬件平 台是基于 Bod o r C m公 a idw 的 中文 化进 行 了研 究 和分 析 , 对几 种 方法 nos 并 司的 B M 0 8高 清 数 字 电视 芯 片 , 核 是 基 于 C 72 内 进行 了 比较 。基 于本 项 目对多 国语 言 的需 求 , 际 MIS结构 的 R 00处理 器 。宿主 机采 用 R d a 实 P S0 ehO. 采用 了基 于 Fet e re p2的 Tut e中文 字 库 , 国 0 通 过 串 口进行 调 试 。在 移 植 Mio idw 之 前 , y re p y 将 , c wno s r 际化 与本地 化嵌 入 图形 引擎实 现 中文 化 , 该方 法 在 我们 已经 将 u l u Ci x移到 B M 0 8开 发板 上 , n C 72 通过 实 际应 用 中取得 了 良好 的效果 。 N S加 载 u l u F Ci x内核 到 目标 机上 。 n
维普资讯
计 算 机 与 数字 工 程
第3 5卷
基于 ulu Ci x的 Mi o idw n c wn o s的移 植 与 中文 化研 究 r
代 志华 肖 勇 ’ ’
( 同济大学 电子 与信息工程学 院” 上海 2 0 3 ) ( 汉数 字工 程研 究所 武汉 04 3 武 ’ 407 ) 30 4
式 系统 中得 到 了广泛 的应用 。
3 移植 Mi o i o s c wn w r d
Mi o idw c wn o s的 最 新 版 本 已 经 更 新 到 0 9 。 r . 1 ulu Ci x上 移 植 了 Mi o id w 。为 了实 现 中文 化 我们 采用 了比较稳 定 的发布 版 0 9 n c wn o s r .0版 , .0版提 09 支持 , 分别 从不 同层 次 、 同角 度 , 不 通过 直 接 加载 中 供 了放多 新增 功能 , 并修 正 0 8 的一些 B G。 .9版 U
将其移植到 目标平台上一般只需要根据实际情况
目前 的发 布包 括 Mrrwno s N n i oidw 和 ao—X两 部 分 提供相应的输人输出设备驱动就可以了。在硬件 c 代码 。 抽象层中, 将设备分为两大类 : 显示相关设备 和输 Mio idw 系统 采 用 分 层 的设 计 方 案 以 满 人相关设备。其实现位于 s / r e 下, 中以sr c wno s r r di r c vs 其 c 足不 同的实现 需要 。 总体 分 为 三层 : 下面 的设 备 最 开 头 的为显 示设 备驱动 程序 , m u 和 kd 开 头 以 o一 b 一
相关文档
最新文档