[STemWin教程入门篇] 第一期:emWin介绍

转自:http://bbs.armfly.com/read.php?tid=1544

SEGGER公司介绍

了解emWin之前,先了解一下SEGGER这家公司,了解生产商才能对emWin有更加全面的认识。

SEGGER公司成立于1997年,到现在的2013年,有差不多16年的历史了,这家公司主要有两个

office,一个是在德国的Hilden,另个在美国的 Massachusetts。官网还有一个他们工作地方的照片,看着很不错,我这里也把这个照片贴上。

这家公司的产品主要有三个大的方向,下面分别的说一下:

RTOS和中间件

embOS  (Real Time Operating System)

embOS/IP  (TCP/IP Stack)

emWin (Graphic Software & GUI)  

emFile (File System)

emUSB Device (USB Device Stack)

emUSB Host (USB Host Stack)

J-Link Debug Probes

J - Link PRO

J - Link ULTRA+

J - Link PLUS

J - Link

J - Trace Cortex-M3

J - Trace ARM

Production Programmers

Flasher  ARM

Flasher  RX

Flasher  STM8

Flasher  ST7

Flasher  5

Flasher  5 PRO

官网上面也有一个论坛,不过论坛的打开速度比较的慢,而且是英文的,问个问题也不太方便

http://forum.segger.com/  有兴趣的可以去看看。

想了解价格和授权的可以看看这里http://www.segger.com/pricing.html,现在了解的NXP, ST,Energy Micro获得了SEGGER的授权,可以免费的使用,想了解其他信息的可以去官网查看,这里有几个官网张贴的,客户设计界面,设计的的确很好看。

其实话说回来,要想设计比较好的界面还是得手工设计,用控件很难做出这种效果,除非有这种效果的控件。

emWin5.xx的简介

1.  目标系统(硬件)

目标系统必须具有:

• 一个CPU(8/16/32/64位)

• 一个具有最小内存的RAM和ROM

• 一个完整图形显示器 (任何类型和任何分辨率)

存储器要求取决于使用的是软件的哪部分以及目标编译器的效率。因此不可能指定精确的值,但是以

下值适用于典型的系统。

小系统 (无窗口管理器)

•RAM:100字节

• 堆栈:600字节

•ROM:10-25 kb(取决于所使用的功能)

大系统 (包含窗口管理器和小工具)

•RAM:2-6 kb(取决于所需的窗口数)

• 堆栈:1200-1800字节 (取决于所使用的功能)

•ROM:30-60 kb(取决于所使用的功能)

请注意,如果应用程序使用了很多字体,则对ROM的要求会提高。上述所有值都是粗略估算值,不保证能正常使用。

2.  特性

emWin设计用于提供高效且独立于处理器和显示控制器的图形用户界面,用于任何使用图形显示进行操作的应用。它与单任务和多任务环境、专用操作系统或具有任何商业RTOS兼容,emWin的发货形式为C语言源代码。它可适用于任何尺寸的、具有任何显示控制器和CPU的物理和虚拟显示器。其特性包括:

一般特性

• 支持使用任何控制器的任何 (单色、灰度或彩色)显示器 (如果有正确的驱动)。

• 在较小显示器上无显示控制器也可运行。

• 使用配置宏可支持任何接口。

• 显示尺寸可配置。

• 可在显示器上的任何点 (而不仅仅是在偶数位字节地址)上写入字符和位图。

• 已针对尺寸和速度优化了各种例程。

• 利用编译时间切换可进行不同优化。

• 对于较慢的显示控制器,可在存储器中缓存显示,将存取操作减到最少,从而获得非常高的速度。

• 结构清晰。

• 支持虚拟显示;虚拟显示可大于实际显示。

图形库

• 支持不同色深的位图。

• 可使用位图转换器。

• 绝对无浮点使用。

• 快速线/点绘制 (不使用浮点)。

• 圆形/多边形绘制非常快速。

• 不同的绘图模式。

字体

• 基本软件配备多种不同的字体:4*6、6*8、6*9、8*8、8*9、8*16、8*17、8*18、24*32

 以及像素高度为8、10、13、16的比例字体。有关详细信息,请参阅字体一章。

• 可以定义新的字体并只需简单链接。

• 只有应用程序使用的字体才实际链接到生成的可执行程序,从而使ROM使用最小。

• 字体可分别在X和Y方向完全缩放。

• 可使用字体转换器;主机系统 (即Microsoft Windows)上有的任何字体都可以转换。

   字符串/值输出例程

• 例程可以十进制、二进制、十六进制、任何字体形式显示值。

• 例程可以十进制、二进制、十六进制、任何字体形式编辑值。

  窗口管理器(WM)

• 完整的窗口管理操作,包括裁剪。窗口的客户区以外的区域不可能被覆盖。

• 窗口可以移动和调整大小。

• 支持回调例程 (可选择是否使用)。

• WM使用最小的RAM(每个窗口大约50字节)。

PC界面外观的可选小工具• 提供各种小工具 (窗口对象,也称为控件)。它们通常自动操作并且简单易用。

支持触摸屏和鼠标• 对于按钮小工具等窗口对象,emWin提供触摸屏和鼠标支持。

PC工具

• 模拟脉冲查看器。

• 位图转换器。

• 字体转换器。

3.  RTOS对emWin的支持     

官方的GUI_X文件里面有各种RTOS对emWin多任务的支持,没有的话,移植一个也非常的方便,里面没有UCOS - III和FreeRTOS的移植,后面现成的添加进去就可以的。

emWin的简单介绍先说这么多,后面开始讲详细的入门。

4.  基本的内存需求

  Example Hello world Window application
ROM GUI core 5.9 kB 43 kB
  Fonts 1.8 kB 12.5 kB
  Application 38 B 2.7 kB
  Startup code 300 B 300 B
  Library 0.1 kB 1.5 kB
  Total 8.1 kB 60 kB
RAM GUI core 62 B 5.2 kB
  Application - 40 B
  Stack 272 B 1.4 kB
  Total 334 B 6.6 kB

 

5.  控件预览

Name Screenshot (classic) Screenshot (skinned) Description
button button which can be pressed. text or bitmaps may be displayed on a button.
checkbox check box which may be checked or unchecked.
dropdown dropdown listbox, opens a listbox when pressed.
edit single-line edit field which prompts the user to type a number or text.
framewin frame window. creates the typical gui look.
graph   graph widget, used to show curves or measured values.
header   header control, used to manage columns.
iconview   icon view widget. useful for icon based plat- forms as found in common hand held devices.
image   image widget. displays several image formats automatically.
listbox   listbox which highlights items as they are selected by the user.
listview   listview widgets are used to creates tables.
listwheel   listwheel widget. the data can be moved and accelerated via pointer input device.
menu   menu widgets are used to create horizontal and vertical menus.
multiedit   multiedit widgets are used to edit multiple lines of text.
multipage   multipage widgets are used to create dialogs with multiple pages.
progbar progress bar used for visualization.
radio radio button which may be selected. only one button may be selected at a time.
scrollbar scrollbar which may be horizontal or vertical.
slider slider bar used for changing values.
spinbox spinning box to display and adjust a specific value.
text [img]http://micrium.com/wp-content/uploads/2012/07/text_classic.png[/img]   static text controls typically used in dialogs.
treeview [img]http://micrium.com/wp-content/uploads/2012/07/treeview_classic.png[/img]   treeview widget for managing hierarchical lists.
posted @ 2014-03-14 20:48  小丁^_^  阅读(3680)  评论(0编辑  收藏  举报