关于作者

用户名:lisoleg
笔名:lisoleg
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



Linux研究网站

访问统计:
文章个数:103
评论个数:94
留言条数:1




Powered by BlogDriver 2.1

Linux代码研究

 

文章

2005龙芯技术方案应用研讨会

2005龙芯技术方案应用研讨会

(邀请函)



为了促进国产CPU的普及,满足广大"龙芯"爱好者对"龙芯"技术的需求,帮助广大开发者了解国产CPU的发展动态以及"龙芯"产品的开发现状。北京龙芯公司将于2005年4月24日在北京举办"2005年龙芯技术方案应用研讨会"。



研讨会将邀请中科院计算所龙芯芯片设计师胡伟武、郑伟民,龙芯公司总裁曾明,中国软件行业协会嵌入式系统分会秘书长郭淳学为大家介绍国产CPU的发展。届时龙芯产品负责人还将为大家阐述龙芯产品的应用解决方案。



敬请广大应用工程师及龙芯爱好者参加。

报名地址:http://www.akae.cn



主办单位:北京神州龙芯集成电路设计有限公司
承办单位:北京AKAE嵌入式研究中心
协办单位:中国软件行业协会嵌入式分会
支持媒体:北京航空航天大学出版社, 《单片机与嵌入式系统应用》杂志社

大会时间:2005年4月24日 9:00
大会地点:北京北四环西路33号中科院文献情报中心报告厅
(中科院图书馆新馆 西北门进入)




研讨会日程安排如下:



上 午

时间
演讲题目
主讲人

8:30-9:00
会议签到


9:00-9:30
《龙芯发展计划》致词
曾 明 龙芯公司总裁

9:30-10:00
《龙芯二号设计构想》
胡伟武 龙芯芯片总设计师

10:00-10:30

郭淳学 中国软件行业协会

嵌入式分会秘书长

10:30-11:00
《龙芯二号的应用》
郑伟民 龙芯芯片设计师
副研究员

11:00-11:30
《龙芯POS组成与结构》
陆庆成 矽科华星公司总裁

11:30-12:00
《龙芯监控解决方案》
王在方 龙芯软件部经理




下 午

时间
演讲题目
主讲人

13:30-14:00
《龙芯整体解决方案》
市场部

14:00-14:30
《基于龙芯一号GUI系统开发》
张云峰 金思捷软件公司

14:30-15:30
《龙芯IP解决方案》
樊 荣 龙芯IC部经理

15:30-16:00
《龙芯教学宣传》
王华勇 AKAE 嵌入式
研究中心


现场讨论/龙芯小组活动/抽奖

- 作者: lisoleg 2005年04月20日, 星期三 18:54  回复(1) |  引用(0) 加入博采

中国科大嵌入式系统2005开发者大会 2005.03.26-2005.03.27
 http://www2.ustc.edu.cn/~james/em2005/

中国科大嵌入式系统2005开发者大会 2005.03.26-2005.03.27

 

现场照片

讲座题目演讲者单位资料视频
中国科大嵌入式系统2005开发者大会 简短开幕词DJ科大92级校友
中科大翰海星云BBS嵌入式版主
华恒科技公司
0.pdf1.wmv
从入门到精通:嵌入式系统开发之路DJ科大92级校友
中科大翰海星云BBS嵌入式版主
华恒科技公司
1.pdf1.wmv
WinCE操作系统overview及其BSP开发Systemerror科大99级校友,Intel(上海)公司2.ppt2.wmv
嵌入式系统中的nandflash文件系统Bladesatan中科大翰海星云BBS InfoSe版主3.pdf3.wmv
Linux下的WLAN和移动IPv6Luster王辉科大6系博士生4.pdf4.wmv
Locking in Linux KernelGaloisxUSTC Linux User Group(LUG)5.pdf5.wmv
嵌入式DSP下MPEG4/H.264的视音频优化 何佳 科大93级校友
创世科技公司
6.rar 6.wmv
Idea to Product : IC designer's Role
想法到产品 :IC设计者的角色
谢小权 科大93级校友
飞思卡尔公司(原摩托罗拉半导体)苏州设计中心
IC设计高级工程师
xie.pps  
VxWorks软硬件设计及实例分析 TOF  7.ppt 7.wmv
嵌入式硬件设计 李凯 科大4系研究生
中科大翰海星云BBS电路设计版副
8.ppt 8.wmv
产业的演变:嵌入式处理器体系结构发展漫谈 DJ 科大92级校友
中科大翰海星云BBS嵌入式版主
华恒科技公司
9.pdf 9.wmv
Cypress PSoC 可配置混合信号片上系统简介 Keith (Luo Sai) 科大11系博士生 10.ppt  
对此页面的内容有任何疑问或意见,请联系 james@ustc.edu.cn 或致电 +86-551-3183504.


- 作者: lisoleg 2005年04月18日, 星期一 16:01  回复(0) |  引用(0) 加入博采

实时系统及基于Linux的实时系统研究现状
http://www.akae.cn/starfire/050410/register_RTLinux.htm
北京 AKAE 嵌入式研究中心沙龙通知

    为进一步推动国内嵌入式技术的发展,北京 AKAE 嵌入式研究中心将邀请国内外嵌入式领域内的专家及本中心一线研发工程师陆续推出系列讲座,内容含盖嵌入式领域的软硬件技术的基础介绍及最新动态。欢迎广大嵌入式爱好者积极参与。

报名人数有限,请尽快报名参加。


主题:实时系统及基于Linux的实时系统研究现状

时  间:2005年4月10日 14:00
地  点:北京航空航天出版社104会议室       网上地图
主讲人:赵惠斌

内容概述:
   1:什么是实时
   2:传统硬实时
   3:软实时
   4:实时面临的问题
   5:调度算法
   6:优先级反转问题
   7:Linux实时方案
   8:RTLinux
   9:KURT/Timesys/MontaVista/qlinux....
  10:交流

主办单位:北京 AKAE 嵌入式研究中心
协办单位:中国软件行业协会嵌入式系统分会

支持媒体:北京航空航天大学出版社 《单片机与嵌入式系统应用》杂志社
          ChinaUnix.net 技术社区

 

赵惠斌简介

中科院软件所博士,红旗linux嵌入式事业部项目经理,研究方向基于Linux实时操作系统研究和开发。


- 作者: lisoleg 2005年04月7日, 星期四 23:05  回复(0) |  引用(0) 加入博采

[分享]Oreilly.linux.device.drivers.3rd.edition

http://bbs.itebook.net/viewthread.php?tid=102693

此观看下载名单 ]
 文件名: Oreilly.linux.device.drivers.3rd.edition.feb.2005.ebook-ddu.chm 文件类型: 文本
 文件大小: 1.32 M 人气指数: 76
论坛最新公告:论坛支持上传的附件大小已经由2M升级为5M

请使用IE直接下载!除IE外的任何下载方式均有可能造成会员BOSS不正常减少或者变为负值.由此造成的损失论坛不予补回!

新手指南FTP教程P2P寻书版手册P2P共享版手册论坛维护规则VIP/VPP会员说明论坛后备域名BOSS/积分说明

[立即下载] -1 点BOSS可以下载 5M 附件

- 作者: lisoleg 2005年03月10日, 星期四 20:10  回复(3) |  引用(0) 加入博采

Linux运行时内核分析 第二版发布

http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=linuxK&Number=526408&page=0&view=collapsed&sb=5&o=all&fpart=

 

Linux 运行时内核分析(二版)
我们基于RH9 内核从两部分来分析Linux系统动态运行过程
一:系统初始化开始,Linux进入保护模式,初始内存系统、中断系统、文件系
统等,直到创建第一个用户进程。
二:用户进程通过系统调用主动进入内核,CPU 接受中断请求被动执行各种中
断服务。
第一部分 系统初始化
进入保护模式 Arch/i386/boot/Setup.s
gdt:
.fill GDT_ENTRY_KERNEL_CS,8,0 #空12×(8个字节=2个双字),用0 填充。
.word 0xFFFF # 4Gb - (0x100000*0x1000 = 4Gb)
.word 0 # base address = 0
.word 0x9A00 # code read/exec
.word 0x00CF # granularity = 4096, 386
# (+5th nibble of limit)
.word 0xFFFF # 4Gb - (0x100000*0x1000 = 4Gb)
.word 0 # base address = 0
.word 0x9200 # data read/write
.word 0x00CF # granularity = 4096, 386
gdt_48:
.word 0x8000 # gdt limit=2048,
# 256 GDT entries
我们进入保护模式之后选择子首先应该是0x60 = 1100000b, 右移3 位为1100 =
0xC = 12 ,这就是code在GDT里的位置。当然这只是第一次进入保护模式,以
后还会调整。
进入分页模式 arch/i386/kernel/head.S
.org 0x1000
ENTRY(swapper_pg_dir)
.long 0x00102007 #基地址为0x00102000,就是下面pg0,0x00100000是内核
加载的地方,1M的位置
.long 0x00103007
.fill BOOT_USER_PGD_PTRS-2,4,0 #768-2 (long) 0
/* default: 766 entries */
.long 0x00102007
.long 0x00103007
/* default: 254 entries */
.fill BOOT_KERNEL_PGD_PTRS-2,4,0 #256-2(long) 0
# 这个说明了内核是1G,用户就3G。
.org 0x2000
ENTRY(pg0)
.org 0x3000
ENTRY(pg1)
说明映射了两个页面,一个页面代表4M, 每个pg0 里的一项代表4K。具体pg0
数据是用程序填充的 参考L82。L101 通过短跳转进入分页(但eip 还不是),L104
通过绝对地址完全进入分页。比如L105的地址是0xC0100058 =1100 0000 0001
0000 0000 0000 0101 1000B,高10 位为1100 0000 00 = 0x300 = 768。从
swapper_pg_dir里找768项就是0x00102007,检查之后基地址为0x00102000;就是
pg0,再看0xC0100058 中间10位01 0000 0000B = 0x100 = 256,再找pg0 的256项
应该为00100***,那么最后的物理地址为0x00100058,所以内核里的虚拟地址换
物理地址很简单,就是0xC0100058 - 0xC0000000 = 0x00100058 就是物理地址。
现在系统只是映射了8M的内存空间,之后还会调整。
内存管理
物理内存管理
第一次探测 Arch/i386/boot/setup.S L281
在这里使用了三种方法,通过调用0x15 中断:
E820H 得到memory map。
E801H 得到大小。
88H 0-64M.
第二次探测
start_kernel() -> setup_arch()
这里主要是对物理内存的初始化,建立zone区。并且初始化page。
start_kernel() -> setup_arch() -> setup_memory_region()
把bios 里的memory map 拷贝到 e820 这个全局变量里。
会在屏幕上显示
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009FC00 (usable)
BIOS-e820: 0000000000100000-0000000002000000 (usable)
BIOS-e820 说的是通过e820 来读取成功的数据,第一个代表起始地址,后面接
着的是大小。usable 说明内存可用。还有 reserved, ACPI data, ACPI NVS 等。
第二条说明起始地址为0x100000 = 1M,大小是0x2000000 = 32M 内存。
start_kernel() -> setup_arch() -> setup_memory ()
start_kernel() -> setup_arch() -> setup_memory ()->find_max_pfn()
通过e820计算出最大可用页面。
e820.map[1].addr = 0x100000 e820.map[1].size = 0x1f00000,那么start =
PFN_UP(0x100000) = (0x100000+0x1000(4096 = 1>>12)-1)>>12 =
0x100FFF>>12=0x100, end = PFN_DOWN(0x2000000) = 0x2000000 >> 12 =
0x2000 = 8192,那么max_pfn = 0x2000 就是最大的页面
start_kernel() -> setup_arch() -> setup_memory ()->find_max_low_pfn()
主要是高端内存的限制。
max_low_pfn = max_pfn 不能大于896M, PFN_DOWN((-0xC0000000 -
0x8000000(128<<20)) = (0x38000000 = 896M限制)) = 0x38000
start_kernel() -> setup_arch() -> setup_memory ()-> init_bootmem()
引导内存分配只使用在引导过程中,为内核提供保留分配页,并且建立内存的
位图。
比如_end 为0xc02e5f18,start_pfn = PFN_UP(__pa(&end)) = 0x2e6,所以
....................

..................

.........

struct inet_protocol *inet_protocol_base = IPPROTO_PREVIOUS; L100
所以它指向的是 icmp_protocol,但是我们再在protocol.c 里向上看,在定义
icmp_protocol 时, IPPROTO_PREVIOUS 指向的是udp_protocol , 所以
icmp_protocol里的next = udp_protocol,同理,向上推,实际上这是在编译时就
完成了一个链表。最后IPPROTO_PREVIOU 指的就是一个头。现在明白之后就
知道循环是怎么回事了。
通过inet_add_protocol把协议添加到inet_protos表中
接着各种注册信息。
整体来说,网络的初始化比较简单。我们会在第二部分从用户角度上来分析网络
具体的流程。
待续...
后记
杨玲
QQ 50111473
Email: yang__ling2000@163.com


- 作者: lisoleg 2005年02月21日, 星期一 11:23  回复(0) |  引用(0) 加入博采

OSDL Issues First Release of Desktop Linux Capabilities Docu

BEAVERTON, Ore. - February 14, 2005 - The Open Source Development Labs (OSDL), a global consortium dedicated to accelerating the adoption of Linux®, today announced the availability of Desktop Linux Capabilities, version 1.0, a document created with the participation of key industry vendors, large end user customers and leaders in the development community that defines a target for what will make Linux desktops successful in the enterprise.

''OSDL is committed to accelerating use of Linux on desktop computers in the enterprise,'' said Tim Witham, CTO of OSDL. ''We're fostering an open forum where IT vendors, IT managers, and the Linux development community can discuss and define the capabilities required in future Linux desktops. We invite the Linux community and the rest of the industry to participate.''

The OSDL Desktop Linux Capabilities document was developed by current OSDL member companies after reviewing the requirements of enterprise desktop users. The document defines capabilities that address the needs of four types of desktop Linux users:

  • Basic office
  • Transaction worker
  • Technical workstation, and
  • Fixed function

''The OSDL Desktop Linux Working Group found that Linux operating system adoption in the enterprise is directly tied to the number of ISV applications available for Linux'' said J. Craig Manning, senior manager, IT for Cisco and chair of the Desktop Linux Working Group Steering. ''We are releasing the first version of the capabilities document to support an open process to solicit feedback on capabilities which we will incorporate into our future work.''

Desktop Linux capabilities are grouped into eight application layers: hardware support, operating system services, application services, system security, network services, browser, installer, and accessibility.

''In keeping with our customer-centric approach, AMD supports the Desktop Linux Capabilities document and encourages our enterprise Linux customers and ISV partners to review the document and provide feedback,'' said Joe Menard, corporate vice president, Software Strategy and Alliances, AMD. ''We will continue support of OSDL and the open source community in their efforts to develop software solutions that meet the needs of the enterprise.''

The Desktop Linux Capabilities document is necessarily forward looking and describes capabilities which may or may not be present, or may not be fully developed on any current system. For this reason the capabilities document should not be regarded as any form of desktop specification which can be used to evaluate a current desktop implementation, rather it captures the needs of the enterprise.

''Novell's support for the OSDL Desktop Linux working group effort further demonstrates our focus on the needs of enterprise customers who are increasingly looking at Linux as a viable desktop choice,'' said Alan Nugent, chief technology officer of Novell. ''We will continue to work closely with the Linux community as the Linux desktop matures.''

''We are seeing widespread worldwide demand for Linux based desktop and client systems,'' said Michael Evans, VP of Partner Development at Red Hat, ''We believe efforts like OSDL DTL that can help gather end user and market input for capabilities in future Desktop Linux versions can be very helpful to the overall market.''

The OSDL Desktop Linux Capabilities document is freely available online from OSDL at OSDL Desktop Linux Capabilities document .


- 作者: lisoleg 2005年02月18日, 星期五 17:27  回复(0) |  引用(0) 加入博采

Linux 2.6.8.1 CPU Scheduler Paper

http://josh.trancesoftware.com/linux/

Linux 2.6.8.1 CPU Scheduler Paper

This paper is intended to be an introduction to the Linux 2.6.8.1 CPU scheduler implementation. Please send questions/comments to josh@trancesoftware.com.

Click here to download as a PDF

Click here to download the LyX file

Click here for a patch against the Linux 2.6.8.1 sched.c that adds more comments (note: this has not received as much attention to detail as the paper, but it should be quite accurate - feel free to email corrections to me)

By Josh Aas
©2005 Silicon Graphics, Inc. (SGI)
Distributed under the GNU FDL


- 作者: lisoleg 2005年02月18日, 星期五 16:27  回复(0) |  引用(0) 加入博采

Ldd3 is out

http://www.oreilly.com/catalog/linuxdrive3/desc.html

Linux Device Drivers, 3rd Edition

Full Description

Device drivers literally drive everything you're interested in--disks, monitors, keyboards, modems--everything outside the computer chip and memory. And writing device drivers is one of the few areas of programming for the Linux operating system that calls for unique, Linux-specific knowledge. For years now, programmers have relied on the classic Linux Device Drivers from O'Reilly to master this critical subject. Now in its third edition, this bestselling guide provides all the information you'll need to write drivers for a wide range of devices.

Over the years the book has helped countless programmers learn:

  • how to support computer peripherals under the Linux operating system
  • how to develop and write software for new hardware under Linux
  • the basics of Linux operation even if they are not expecting to write a driver


The new edition of Linux Device Drivers is better than ever. The book covers all the significant changes to Version 2.6 of the Linux kernel, which simplifies many activities, and contains subtle new features that can make a driver both more efficient and more flexible. Readers will find new chapters on important types of drivers not covered previously, such as consoles, USB drivers, and more.

Best of all, you don't have to be a kernel hacker to understand and enjoy this book. All you need is an understanding of the C programming language and some background in Unix system calls. And for maximum ease-of-use, the book uses full-featured examples that you can compile and run without special hardware.

Today Linux holds fast as the most rapidly growing segment of the computer market and continues to win over enthusiastic adherents in many application areas. With this increasing support, Linux is now absolutely mainstream, and viewed as a solid platform for embedded systems. If you're writing device drivers, you'll want this book. In fact, you'll wonder how drivers are ever written without it.

 


- 作者: lisoleg 2005年02月18日, 星期五 16:25  回复(0) |  引用(0) 加入博采

Cell Architecture Explained
 http://www.blachford.info/computer/Cells/Cell0.html

Cell Architecture Explained

The first Cell based desktop computer will be the fastest desktop computer in the industry by a very large margin. Even high end multi-core x86s will not get close. Companies who produce microprocessors or DSPs are going to have a very hard time fighting the power a Cell will deliver. We have never seen a leap in performance like this before and I don't expect we'll ever see one again, It'll send shock-waves through the entire industry and we'll see big changes as a result.

The sheer power and low cost of the Cell means it will present a challenge to the venerable PC. The PC has always been able to beat competition by virtue of it's huge software base, but this base is not as strong as it once was. A lot of software now runs on Linux and this is not dependant on x86 processors or Microsoft. Most PCs now provide more power than is necessary and this fact combined with fast JIT emulators means that if necessary the Cell can provide PC compatibility without the PC.

It will not just attack the PC industry but expect it to be widely used in embedded applications where high performance is required. This means it will be made in numbers potentially many times that of x86 CPUs and this will reduce prices further. This will also hurt PC based vendors desires to enter the home entertainment space as PC based solutions [Entertainment] will be more complex and cost more than Cell based systems.

This is going to prove difficult for the PC as CPU and GPU suppliers will have essentially nothing to fight back with. All they can hope to do is match a Cell's performance but even that is going to be incredibly difficult given the Cell's aggressive Cray-esq design strategy.

Cell is going to turn the industry upside down, nobody has ever produced such a leap in performance in one go and certainly not at a low price. The CPU producers will be forced to fight back and irrespective of how well the Cell actually does in the market you can be sure that in a few short years all CPUs will be providing vastly more processing resources than they do today. Even if the Cell was to fail we shall all gain from it's legacy.

Not all companies will react correctly or in time, this will provide opportunities for newer, smaller and smarter companies. Big changes are coming, they may take years but the Cell means a decade from now the technology world is going to look very different.

Introduction

Designed for the PlayStation 3, Sony, Toshiba and IBM's new "Cell processor" promises seemingly obscene computing capabilities for what will rapidly become a very low price. In these articles I look at what the Cell architecture is, then I go on to look at the profound implications this new chip has, not for the games market, but for the entire computer industry. Has the PC finally met it's match?

To date the details disclosed by the STI group (Sony, Toshiba, IBM) have been very vague to say the least. Except that is for the patent application which describes the system in minute detail. Unfortunately this is very difficult to read so the details haven't made it out into general circulation even in the technical community.

I have managed to decipher the patent and in parts 1 and 2 I describe the details of the Cell architecture, from the cell processor to the "software cells" it operates on.

Cell is a vector processing architecture and this in some way limits it's uses, that said there are a huge number of tasks which can benefit from vector processing and in part 3 I look at them.

The first machine on the market with a Cell processor will steal the performance crown from the PC, probably permanently, but PCs have seen much bigger and better competition in the past and have pushed it aside every time. In part 4 I explain why the PC has always won and why the Cell may have the capacity to finally defeat it.

In part 5 I wrap it up with a conclusion and list of references. If you don't want to read all the details in parts 1 and 2 I give a short overview of the Cell architecture.

 

Part 1: Inside The Cell

In Parts 1 and 2 I look at what the Cell Architecture is. Part 1 covers the computing hardware in the Cell processor.

  • Background
  • So what is Cell Architecture?
  • The Processor Unit (PU)
  • Attached Processor Units (APUs)
  • APU Local Memory

Part 2: Again Inside The Cell

Part 2 continues the look at the insides of the Cell, I look at the setup for stream processing then move on to the other parts of the Cell hardware and software architecture.

  • Stream Processing
  • Hard Real Time Processing
  • The DMAC
  • Memory
  • Software Cells
  • Multi-Cell'd Animals
  • DRM In The Hardware
  • Other Options And The Future

Part 3: Cellular Computing

Cells are not like normal CPUs and their main performance gains will come from the vector processing APUs, in this section I look at the type of applications which will benefit from the Cells power.

  • Cell Applications
  • Games
  • 3D Graphics
  • Video
  • Audio
  • DSP (Digital Signal Processing)
  • SETI
  • Scientific
  • Super Computing
  • Servers
  • Stream Processing Applications
  • Non Accelerated Applications

Part 4: Cell Vs the PC

x86 PCs own almost the entire computer market despite the fact there have been many other platforms which were superior in many ways. In this section I look at how the PC has come to dominate and why the Cell may be able to knock the king from his throne.

  • The Sincerest Form of Flattery is Theft
  • Cell V's x86
  • Cell V's Software
  • Attack
  • Cell V's Apple
  • Cell V's GPU
  • The Cray Factor
  • The Result

Part 5: Conclusion and References

  • Short Overview
  • Conclusion
  • References And Further Reading

 

© Nicholas Blachford 2005.

1

- 作者: lisoleg 2005年01月21日, 星期五 13:15  回复(0) |  引用(0) 加入博采

From http://blogs.msdn.com/mikehall/archive/2005/01/13/35247

Linux in Embedded Systems - The Windows side of the story.

A few days ago I posted an article from Cots Journal Online which discussed some of the shortcomings of Linux use in embedded systems. Based on some of the comments posted back to the blog it would appear that Linux is used because of the community which surrounds it rather than for the technical merits of the operating system and tools - for someone that's lived in the embedded space before working at Microsoft I find this somewhat surprising - I based my choice of processor, components, and (if needed) operating system on the technical merits of the operating system and tools.

Let me ask this question... If you are starting an embedded system development project next month and you've been asked by your manager to select the appropriate processor, reference board, and operating system - do you choose Linux because it's considered to be hip/trendy or do you make the decision based on the technical merits of the processor, silicon vendor, system integrators, reference hardware, and operating system technologies and tools ? - do you consider using non-Linux operating systems in any of your embedded designs, and if so, why (and why not).

ok, so let's examine the COTS Journal Online article and walk through each of the items and see how Windows Embedded operating systems stack up... - I mentioned in a comment to the original post that I don't want this to turn into a "Linx is better than Windows is better than Linux" discussion, no throwing of mud or Fud - let's try to stick to the facts and consider both operating systems for their technical merits, after all, that's what really matters, right ?

Interrupt Latency

<snip>By definition, a real-time system is one in which an event (for example, an interrupt from an important peri-pheral device) must be handled within a bounded (and typically short) amount of time; failure to respond causes a failure in the embedded system. Many embedded systems have real-time requirements; desktop systems do not. Along with context switch time, interrupt latency is the most often analyzed and benchmarked measurement for embedded real-time systems. Operating system architecture is the most significant factor for determining interrupt latency and thread response times in an embedded system. </snip>

Microsoft has two embedded operating systems (three if you also count SPOT), Windows CE and Windows XP Embedded.

Windows XP Embedded is not a real-time operating system, this is a desktop operating system which has been componentized (approx 12,000 components, 9,000 of which are drivers, 3,000 are operating system components), although Windows XP Embedded is not a real-time operating system it's possible to add real-time response from 3rd party real-time extensions from companies such as Venturcom and Tenasys - check out the Interrupt Latency technical paper on the Tenasys web site (needs registration), Interrupt latencies were consistently measured as being < 20uS on a Pentium 133MHz with 32MB Ram.


Why would someone consider using Windows XP Embedded with a real-time extension ? - surely it makes sense to choose a real-time operating system from the get-go, right? - Windows XP Embedded runs on the x86 processor and contains all the same operating system technologies as the Windows XP Professional operating system, this means that you can quickly configure and build an operating system that supports a wide range of hardware components, ranging from USB2.0/1394 external hard drives, USB WebCam's, high-end video cards, TV recording cards - and also has embedded enabling features for booting from the network, from flash, CD-Rom, headless, and other interesting features - there's a ton of existing programs and drivers that work with Windows 2000 or Windows XP, these can be used without any changes on Windows XP Embedded - so you get the best of both worlds, broad hardware support, quick and easy operating system configuration, and support for Hard-Real-Time extensions.

ok, so what about Windows CE ? - Windows CE is a hard-real-time operating system out of the box (originally the operating system was considered to be soft-real-time, but we made changes to the kernel for the Windows CE 3.0 release which made the operating system hard-real-time - let me know if you would like a discussion about the changes and I will follow up in another blog post). What do we mean by "hard-real-time", take a look at the definition of Hard-Real-Time from Nat Framptons realtimeonline site, let's examine some of the 3rd party tests of Windows CE.

The following Windows CE tutorial may also be of interest to better understand the operating system and interrupt architectures.

Microsoft Windows CE Operating System and Memory Architecture
Watch this video to get an in-depth look at the internal workings of the Windows CE operating system. This tutorial covers operating system architecture and memory management of Windows CE. (51:03 minutes)
100K Version | 300K Version 
  

There are also some resources that may assist with your understanding of Windows CE real-time behavior.

Scheduling

<Snip>Linux has no such provision for prioritizing threads relative to interrupts; however, the actual situation is worse. Real-time operating systems provide priority-based scheduling because it must be possible to guarantee that the most critical threads in the system can run immediately in response to an event. It is forbidden to use heuristics or any other constructs in the kernel that might make this response nondeterministic.</Snip>

Windows CE supports 256 levels of thread priority, all threads in the system are created by default at thread priority 251, this can be adjusted in two ways, first through a call to CESetThreadPriority (which changes the thread priority), and CESetThreadQuantum (which changes the amount of time a thread gets when it's scheduled by the kernel). we can clearly see from the real-time discussion above that Windows CE 5.0 response times for hardware interrupts are within the bounds required by real-time systems.

Device Drivers

<Snip>Device driver code adds less risk to the system if it runs in its own protected address space. An operating system architecture designed to facilitate virtual device drivers is preferred over the traditional method of requiring device drivers to run in physical memory along with the kernel.</Snip>

Windows CE device drivers run in the context of the device driver manager (Device.exe), interrupt handling is divided into two sections, the ISR (Interrupt Service Routine) which runs in the kernel space, and the IST (Interrupt Service Thread) which runs in the context of the device driver manager (or as a thread within a process), the ISR has limited functionality, this has access to physical hardware and memory but doesn't have the ability to make operating system calls - the ISR passes off to the Kernel, which in turn wakes up the appropriate IST thread (through a call to SetEvent on a registered event handle) - the IST is special cased in that it can only make a call to WaitForSingleObject - a call to WaitForMultipleObjects would of course break the determinism of the operating system - at the IST level (since this is running in user mode) the IST has full access to operating system API's (for example a Touch Screen Driver could call mouse_event to synthesize mouse motion and button clicks).

Perceived to be Free

<Snip>The hidden "royalty" due to Linux's large footprint is just one example of the misconception that Linux is "free". MontaVista, purveyors of the "Hard Hat" flavor of Linux, charges $15,000 per developer per year to support its version of Linux.</.Snip>

Windows CE and Windows XP Embedded evaluation tools are free to download from the WindowsEmbeddedKit website - the evaluation tools run for 120 days, after which you will need to use the full version of the operating system development tools which costs $995 - Licensing of the operating system doesn't kick in until you ship a final version of your device, this means that you can configure, build, debug, and ship embedded operating system images to your customers to evaluate and test without needing to license the operating system - it's only when you ship your final product that you need to license the operating system - for hobbyists or home tinkerers this is not an issue, you can build and deploy operating systems for your own use without needing to license the operating system (of course if you're planning on selling the devices then you do need to license the O/S) - How much is a license ? - Check out the "How to Buy" page on MSDN/Embedded.

As far as support is concerned there are various levels of support ranging from free support (newsgroups, online chats, free incidents with the development tools), partner support - there are over 2,500 partners registered on the Windows Embedded Partners site which can assist with hardware development, software application development, BSP (Board Support Package) development, training, real-time on Windows XP Embedded, and so on... - There's also paid support through Microsoft Product Support - for a complete listing of support options, go here.

Long Term Support

<Snip>Most embedded products have a shelf life of several years. An aircraft avionics system may be in development for as long as a decade before it is fielded, and then it might remain in service for much longer than that. Even the life of a handheld PDA may span multiple years from the start of development until obsolescence.

Embedded systems developers put a high value on a vendor that has a stable, successful, proven business model, because they must rely on that vendor to support their electronic products for such an extended period of time and to be around for the next generation of product development as well.</Snip>

Microsoft Embedded operating systems are supported for 7 years after the release date of the operating system - It's generally realized that Embedded Products and Desktop Products are not the same thing, in the desktop world consumers are (perhaps) expected to update to the latest and greatest version of product "x", some embedded devices are shipping and running for 15+ years without having an operating system update - of course this varies depending on the type of device you're building, in the consumer electronics space device updates occur on a far more regular basis than deeply embedded, real-time, robotics and/or telecoms test kit. For a listing of Microsoft's support program for embedded systems take a look at the Embedded Operating Systems Lifecycle page.

The GPL

<Snip>Linux is licensed under the GNU Public License (GPL), which governs how companies may incorporate the licensed software into the products that they sell to their customers. Much has been written about the pitfalls of incorporating GPL software into a product. An often overlooked consideration, however, are the costs of having to even worry about these licensing issues. The obvious concern is whether a proprietary product will be subject to the GPL because of its use of a GPL product. </Snip>

I don't think there's any need to talk to this point, suffice to say that Windows CE is not licensed under the GPL, we do ship 2.5 Million lines of "Shared Source" with the Windows CE 5.0 product, this is available for OEM's to use to get a better understanding of the operating system, assist with debugging and bringing up the operating system on new hardware - any IP that you add to a Windows CE platform continues to be your IP, there's no nead for you to share this with anyone.

 

The original article from Cots Journal Online made a number of statements about Linux in embedded systems, I've tried to list out how Windows CE compares against each of these items - I would be interested in your view on the Linux article, are the statements correct about the real-time behavior of Linux, Driver model, support, perceived cost etc...

- Mike

posted on Thursday, January 13, 2005 1:45 PM

Feedback

# re: Linux in Embedded Systems - The Windows side of the story. 1/13/2005 2:57 PM Alex Moskalyuk

Well, couple of things regarding the choice of OS:

1) Sometimes, for embedded systems that use off-the-shelf underlying platforms, the system already comes with Linux and busybox, so not much choice there.

2) It's easy to introduce bash and common scripting languages for simple test scripts, saves time on test development.

3) If we're careful to build our apps on top of GPLed code and not violate the terms, we own the complete platform by the time the design goes into production.

4) There's little to nothing as far as tools for writing Windows Embedded apps on Linux desktops (or am I missing something)?

5) The same goes for testing tools, although I suppose LabView would compensate for lack of testing suites for Linux.

6) The components available for Windows seem to target PDA makers. DirectX, .NET Framework, Windows Media. What if I am building a point-of-sale gun for reading UPC & RFID tags?

I am sure I am wrong on several of the issues above or simple lack proper information regarding embedded OSs from Microsoft, but nevertheless that's the usual list.

# re: Linux in Embedded Systems - The Windows side of the story. 1/13/2005 2:57 PM Alex Moskalyuk

Well, couple of things regarding the choice of OS:

1) Sometimes, for embedded systems that use off-the-shelf underlying platforms, the system already comes with Linux and busybox, so not much choice there.

2) It's easy to introduce bash and common scripting languages for simple test scripts, saves time on test development.

3) If we're careful to build our apps on top of GPLed code and not violate the terms, we own the complete platform by the time the design goes into production.

4) There's little to nothing as far as tools for writing Windows Embedded apps on Linux desktops (or am I missing something)?

5) The same goes for testing tools, although I suppose LabView would compensate for lack of testing suites for Linux.

6) The components available for Windows seem to target PDA makers. DirectX, .NET Framework, Windows Media. What if I am building a point-of-sale gun for reading UPC & RFID tags?

I am sure I am wrong on several of the issues above or simple lack proper information regarding embedded OSs from Microsoft, but nevertheless that's the usual list.

- 作者: lisoleg 2005年01月17日, 星期一 09:33  回复(1) |  引用(0) 加入博采