转自: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.

[STemWin教程入门篇] 第一期:emWin介绍的更多相关文章

  1. [STemWin教程入门篇]第二期:emWin5.xx的详细移植步骤

    转自:http://bbs.armfly.com/read.php?tid=1545 重要说明:(0)由于这个移植教程是去年过年的时候做的,用的是5.16,这就不再做个5.20的移植了,方法是一样的. ...

  2. OpenCV学习教程入门篇<一、介绍>

    OpenCV,是Inter公司开发的免费开源专门因为图像处理和机器视觉的C/C++库,英文全称是Open Source Computer Vision. 1. 可视化语言Matlab与OpenCV都能 ...

  3. CE修改器使用教程 [入门篇]

    Cheat Engine 一般简称CE,是一个开放源代码的作弊软件,其功能包括:内存扫描.十六进制编辑器.调试工具,Cheat Engine 自身附带了外挂制作工具,可以用它直接生成外挂工具,CE可以 ...

  4. JqueryEasyUI教程入门篇

    什么是jQueryEasyUI? JqueryUI是一组基于jQuery的UI插件集合 学习jQueryEasyUI的条件? 必须掌握Jquery的基本语法知识 jQueryEasyUI的特点? 1. ...

  5. Thymeleaf教程入门到深入1:基础介绍

    1 介绍 1.1 简介 Thymeleaf是一个用于Web和独立Java环境的模板引擎,能够处理HTML.XML.JavaScript.CSS甚至纯文本.能轻易的与Spring MVC等Web框架进行 ...

  6. Google C++测试框架系列入门篇:第一章 介绍:为什么使用GTest?

    原始链接:Introduction: Why Google C++ Testing Framework? 词汇表 版本号:v_0.1 介绍:为什么使用GTest? GTest帮助你写更好的C++测试代 ...

  7. [转]JqueryEasyUI教程入门篇

    什么是jQueryEasyUI? JqueryUI是一组基于jQuery的UI插件集合 学习jQueryEasyUI的条件? 必须掌握Jquery的基本语法知识 jQueryEasyUI的特点? 1. ...

  8. shell教程<入门篇>

    由于我平时的工作环境是linux,所以无可避免的经常使用命令行模式和shell脚本,而且有些命令行每天都要输好多遍,比如ssh登录之类的,所以干脆把平时常用的命令都写成脚本文件,所以特意开了一个she ...

  9. 转:jQuery LigerUI 使用教程表格篇(3) 复选框、多表头、分组、汇总和明细

    阅读目录 复选框 多表头 分组 汇总 明细 复选框 grid可以设置复选框模式进行多选,只需要简单的配置 checked:true 获取选中行 如果要获取选中的行,可以用getSelecteds方法: ...

随机推荐

  1. 【前端技术】一篇文章搞掂:微信小程序

    实战: 1.[openId]获取openId 有如下几种方法: 通过wx.login()获取临时登录凭证 code,然后通过code2session获取openId wx.login():https: ...

  2. mysql经典面试题之学生成绩表

    需要数据库表1.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 2.课程表 Course(CID, ...

  3. php面试专题---6、正则表达式考点

    php面试专题---6.正则表达式考点 一.总结 一句话总结: 正则匹配步骤:1.先写出一个要匹配的字符串:2.自左向右的顺序使用正则表达式的原子和元字符进行拼接:3.最终加入模式修正符: 1.写出一 ...

  4. Understanding identities in IIS

    Understanding identities in IIS https://support.microsoft.com/en-my/help/4466942/understanding-ident ...

  5. 用 Flask 来写个轻博客 (34) — 使用 Flask-RESTful 来构建 RESTful API 之三

    目录 目录 前文列表 应用请求中的参数实现 API 分页 测试 前文列表 用 Flask 来写个轻博客 (1) - 创建项目 用 Flask 来写个轻博客 (2) - Hello World! 用 F ...

  6. QTP中类的使用(转)

    Call Test Class Tester Dim mvarTesterName,mvarAge,mvarGender                        Sub Class_Initia ...

  7. C# 笔记 获取程序当前目录

    在C#中,我们有以下几种方式获取程序当前目录: Console.WriteLine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssem ...

  8. 【UR #5】怎样跑得更快

    题目 给定\(n,c,d\)和序列\(\{b_i\}\),求一个序列\(\{x_i\}\)满足 \[\sum_{j=1}^n\gcd(i,j)^c\times \rm{lcm(i,j)^d}\time ...

  9. BUUCTF weirdlist 一路到底

    Weird list 这题恶心的一批 给了一堆列表 这...这是人做的题吗... 放飞自我,打开脑洞 把‘1’空出来,其他数字换为‘*’画出来 然后看到了flag,但是 这...这是什么flag,ag ...

  10. vue实现全选反选--简单使用

    最近需要用到vue的反选全选功能,于是就在网上找了一些代码实现,发现都不能够完美的实现.于是乎决定自己写出一套.经过一翻努力,完美了进行了实现.bug也已经修复完毕,希望能够帮助到大家!   < ...