|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
16 楼』:
windows 3.1 的剪裁可能比 windows 3.0 有很大的改进, 如果能研究一下也许不错, 不过只能反汇编? 那还不如不看?找找看 Windows CE 的 source(Windows CE 3.0 的部分 source 网上有). 另外,不知道 Windows CE 的开发工具中可否得到相关的资料. 还有 DDK 可看?
那看看 minigui 如何, 不过可能它借鉴了 wxWindows(后来的 wxWidgets吧),有个国内的什么微逻辑公司好像也有类似的东西,不同的是好像支持多任务(多线程?我记得不清楚了).但是他们的 DC 应该都和 MS 的不同. 另外, 我其实不是很喜欢 GDI, 即使参照, 也应该看看 MS 的 vista 在这方面的发展趋势, 我认为. java 的和 BGI 差不多, 用起来方便一些. 但是如果全体从矢量角度考虑的话,完全可以不管是否与以前有否兼容,否则可能绊脚自己.
[ Last edited by jawbin on 2006-5-26 at 15:13 ]
|
|
2006-5-26 15:09 |
|
|
asbai
高级用户
积分 653
发帖 252
注册 2006-4-16
状态 离线
|
『第
17 楼』:
窃以为 zyl 兄所言甚是(前半部分,呵呵)。国际化和本地化确实是大势所趋,unicode核心已经是所有现代OS必备的特征了。语言和文字的处理也确实是非常复杂的工作。现在隆重推荐几款重量级开源跨平台语言文字处理工具:
1. ICU(http://www-306.ibm.com/software/globalization/icu/index.jsp),IBM出品,应该不算太次。支持编码转换,文字阅读方向处理(RTL-LTR),按本地习惯输出和排序等等很多功能。支持 C/C++/Java等接口
2. GNU libiconv,GNU出品,大半能算做精品。posix/sus 兼容iconv字符集转换接口,支持几乎所有存在的字符集编码转换。跨平台,C接口。
3. FreeType,字体引擎,支持:TureType,OpenType,adobe,pcf,bdf,以及各种点阵字体等等很多格式的字体,呈示效果不输WindowsXP,GNOME(GTK+)和很多著名桌面环境的底层。跨平台,C接口。
另外,关于RAD工具的问题,不知道 zyl 接不接受使用GUI框架的思想,很多RAD工具都是直接生成可编辑的 C/C++ 框架代码,与手写质量基本没有区别。何况修改和调整RAD生成的代码比完全自己写还是要快很多的。RAD应该算是生产力工具了吧,呵呵。
而且RAD一般只用在画界面,这里就有2个问题:
1. GUI本身是一种低速IO,并且,图形算法固有的时空开销就比较大,就算RAD产生的代码稍微低效,这通常也不是问题。除非兄台在为大型游戏编写实时3D引擎中~
2. 除了刚在所说的游戏等特别情况,大部分应用对GUI的效率都是不敏感的。真正对效率敏感的应用如:数据库引擎、网络服务、编译器、密集型分布计算等等应用,不是完全不使用GUI(因此也就没什么机会用RAD,比如SQL Server、DB2......)就是其绝大部分效率因素并不由GUI部分决定(比如用了超低效 .net 代码来开发界面的 VC2002/2003/2005)。
|
|
2006-5-26 15:11 |
|
|
asbai
高级用户
积分 653
发帖 252
注册 2006-4-16
状态 离线
|
『第
18 楼』:
Quote: | Originally posted by jawbin at 2006-5-26 15:09:
windows 3.1 的剪裁可能比 windows 3.0 有很大的改进, 如果能研究一下也许不错, 不过只能反汇编? 那还不如不看?
那看看 minigui 如何, 不过可能它借鉴了 wxWi ... |
|
裁减部分可以看 wxWidgets中的 wxUniversal 源码 SciTech 写出来的很难不高效,呵呵~
|
|
2006-5-26 15:13 |
|
|
asbai
高级用户
积分 653
发帖 252
注册 2006-4-16
状态 离线
|
『第
19 楼』:
个人感觉仅限于 8086 这个条件严苛到没有实际意义了。即使是嵌入是应用,现在起码也是 ARM7 打底了(你去买个智能电饭煲里现在都装这个啦),新型手机等大部分设备里起码是 ARM9 双芯片了,作为参考, ARM7 的计算能力可以与 486 比较,ARM9 则对应 Pentium,浮点运算能力甚至超过这两者(和搭配的DSP有关)。
这一方面是因为用户需求越来越高,另一方面,现在半导体成本急剧下降。生产像8086这样的处理器已经没有实际意义了(也许它只比ARM7便宜几美分)。
|
|
2006-5-26 15:21 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
20 楼』:
对了,说到输入,我坦白了吧,我目前是在为嵌入式考虑,没有鼠标不消说,键盘不是标准的,从 GPIO 口采,而且复用,要自己去抖,处理连击...还有些功能要求某个键持续按下一段时间才起作用....目前还没和标准键盘映射起来..
|
|
2006-5-26 15:21 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
21 楼』:
Quote: | Originally posted by asbai at 2006-5-26 03:21 PM:
个人感觉仅限于 8086 这个条件严苛到没有实际意义了。即使是嵌入是应用,现在起码也是 ARM7 打底了(你去买个智能电饭煲里现在都装这个啦),新垠... |
|
一则目前这个板子(www.baby-pc.com 的 PCM3486, 这是他们现在发行的最好的板子,使用的 80186 级的 CPU, 价格在 1000 以下, 可能是 800 左右)是我选的(虽然现在我暂时不搞这个了). 另一方面, 我对 ARM 还不熟悉, 虽然知道目前它运用的领域好像非常广. 不知道它和摩托罗拉的 CPU 是否有什么保护模式? 我只知道摩托罗拉的端口和内存的访问指令是相同的(可能是统一编址的),另外也知道它的 CPU 和 intel 的字节顺序是不同的.
[ Last edited by jawbin on 2006-5-26 at 15:40 ]
|
|
2006-5-26 15:27 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
22 楼』:
这么多内容我得慢慢消化
在软件方面,我一向看重 IBM, 它为开源作了不少贡献! 它的网站上有很多非常好的东西, 知识无涯啊!
[ Last edited by jawbin on 2006-5-26 at 15:32 ]
|
|
2006-5-26 15:29 |
|
|
asbai
高级用户
积分 653
发帖 252
注册 2006-4-16
状态 离线
|
『第
23 楼』:
====================================
关于多线程多任务的实现,记得GNU PTH(GNU出品的通用 User Mode pthread线程库)中有一篇非常好的文档,详细说明了运行栈切换的技术原理,并且比较了各种切换技术的可移植性及性能。大体流程是:保存当前线程上下文;切换到新的上下文空间(sus:swapcontext,在DOS下可以直接改SS等寄存器);最后重定向指令流(执行长跳转)。
运行栈切换(线程切换)是多线程实现中的一个非常关键的问题,建议仔细阅读。
====================================
时间片计时,x86结构大体有2种计时方式:
1. 系统定时器:它的计时粒度可以在 每秒18.2次(55 毫秒),到 每秒 1193180次 (0.84纳秒)(当然8086上到不了这么高的)。
2. Pentium系列及以上还支持 Performance Counter,这是一个 64 位宽的寄存器,它的值在每CPU基本时钟加一。读取它的汇编指令是:RDTSC。
基本上,实现线程第一种最方便。
====================================
最后,实现多任务还必须实现一系列互斥、同步和通信算法。比如信号量、互斥量、条件变量、管道、共享内存等等。
以上3块就是基本多任务环境的完整组成啦,打的累死了,手酸,下了,呵呵~
|
|
2006-5-26 15:37 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
24 楼』:
zyl910 兄说到的图像数据量大的确是一个问题,不过如果我每次都仅仅是一个简单的操作的话,也许问题还不是很大,例如画一个 button, 也就是画几条线, 填充一下矩形. 当然, 面对稍微复杂的情况, 还是比较麻烦的.而且,有些设备假如不提供显存来操作的话(可能有点极端了),也是个问题.
|
|
2006-5-26 15:38 |
|
|
asbai
高级用户
积分 653
发帖 252
注册 2006-4-16
状态 离线
|
『第
25 楼』:
Quote: | Originally posted by jawbin at 2006-5-26 15:21:
对了,说到输入,我坦白了吧,我目前是在为嵌入式考虑,没有鼠标不消说,键盘不是标准的,从 GPIO 口采,而且复用,要自己去抖,处理连击...还有些功能要求某 ... |
|
除了手机PDA外,大部分嵌入式开发不需要考虑GUI设计~
|
|
2006-5-26 15:39 |
|
|
asbai
高级用户
积分 653
发帖 252
注册 2006-4-16
状态 离线
|
『第
26 楼』:
Quote: | Originally posted by jawbin at 2006-5-26 15:27:
一则目前这个板子(www.baby-pc.com 的 PCM3486, 这是他们现在发行的最好的板子,使用的 80186 级的 CPU, 价格在 1000 以下, 可能是 800 左右)是我选的(虠... |
|
x86兼容的嵌入式CPU也有很多啊,比如:VIA的、SiS的、NS Geode、Transmeta、AMD DX、STPC等等。这些CPU都是低功耗、免风扇的。而且完整系统板的价格比你报的低多啦~
|
|
2006-5-26 15:44 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
27 楼』:
Quote: | Originally posted by asbai at 2006-5-26 03:39 PM:
除了手机PDA外,大部分嵌入式开发不需要考虑GUI设计~ |
|
非常感激 asba 热情相助! 我们这个恰恰需要 GUI, 而且要求某些部分显示得必须非常醒目(例如字体要很大,对比度要很强,因为强日光下液晶显示器会看不清楚普通的图形,当然挑选屏幕的时候还得挑宽视角的,不过那就不是我的事情了,呵呵])而且我正在考虑遥控(为了突破现场的输入局限,但是这目前仅仅是个念头).
|
|
2006-5-26 15:45 |
|
|
asbai
高级用户
积分 653
发帖 252
注册 2006-4-16
状态 离线
|
|
2006-5-26 15:46 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
29 楼』:
asbai 兄, PCM3486 就是个完整的 PC/104 板,其实我为了简单,一直在觊觎 linux,可是软硬件目前还都没有什么眉目,了解得太少了.
|
|
2006-5-26 15:47 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
30 楼』:
呵呵,下吧,来日方长嘛!再次感谢 asbai 兄的热情!
|
|
2006-5-26 15:49 |
|