中断响应
本论文中,Intervupt Latency 词组主要指的是较件中断,处理响应,也即是从处部中断到达处理器到中断开始处理间的时间。
Windows CE 中断响应时间是针对锁存在内存上的线程 (当内存响应不存在时)。这使得计算最差事件响应成为可能——中断服务程序(ISR) 开始和中断服务线程(IST)开始D的总时间,直到中断处理的总时间能够通ISR 和 IST 中所需时间计算决定。
ISR 响应通用公式定义如下:
ISR开始时间 = value1 + dISR_Current + sum(dISR_Higher)
value1=由内核处理过程获得响应值
dISR_Current=中断到达时程序中 ISR 持续时间。这个值范围由0到系统中最长的 ISR 持续时间
sum(dISR_Higher)=所有在 ISR 开始前的较高级ISRS 持续时间总和,即在时间 vahe1+dISR-cumeneu间到达的中断
例如,考虑一个拥有关键优先权 ISR 的嵌入式系统,因为 ISR 被设成最高级,这有样 ISRS dISR-Higher 值为0。当没有其它 ISRS 最低响应,在程序中,即为value1 最低响应即为value1加系统中最长 ISR 周期,当中断到达时,正是系统中最长的 ISR 开始执行。
IST 响应周期定义如下:
IST开始时间 = value2 + sum(dIST) + sum(dISR)
value2=由内核处理的响应值
sum(dIST)=所有的出现在 ISR 和 IST ,开始的优先级 ISTS 和线程上下文转换时间总和。
sum(dISR)=在中断(?) ISR 和它的 IST 之间运行的其它 ISRS 持续时间总和。
最简单的例子——具有一个关键级 ISR 和一个关键级线程(无其它0优先级的线程)的嵌入式系统——没有其它的 ISTS 能够在ISR 和 IST 之间中断,然而在关键级的 ISR 和它相关的 IST 开始间其它的 ISRS 能被处理。
因为 ISRS 一旦能够获得,即可被处理,很容易想象成病态情况,涉及产生一个持续的 ISRS 流,从而产生不确定的推迟。 IST 的开始不可能出现,因为 OEM对系统中的中断完成控制。因为 OEM (原始设备制造商)为特定操作系统设计传统 Windows CE 版本。 OCM 利用目标操作环境限制使系统设计最佳化。
为减少响应时间,OEM 控制 ISR 和IST 处理时间中断优先级线程优先级。公式中的 value1 和 walue2 代表,Windows CE 内核中处理时间,这是 OEM 不能控制的目前的在分时,研究工作涉及这些确认值。
确保Windows CE的实时操作
两种不同途径被用来确保Windows CE操作:
* 由Windows CE开发组进行内部的检查或分析内核代码,
* OEM和ISV(独立软件销售商)利用一些将在未来的Windows CE版本嵌入式工具包(for VCFT)提供工具来确保特定配置。
Windows CE关于VC++的嵌入工具包包括以下工具:
* (一个对于分时研究的内核的工具版本和Intrtinrt.ext应用软件来观察,中断过程的最大、最小、平均时间。
* 微软也能开发其它的针对顾客需要的分时工具。
Windows CE开发组,已经检查了内核代码以证实它能由最差的情况时间表征,它是独立于系统对象数目的。
为了利用这个检查,内核被表征成一套KCALLS或系统调用,在内核关闭优先权是它们是内核程序,并且不允许其它的线程运行,最差事件时间,此时,实时进程、标止运行,它能在内核中表征成最差事件KCALL时间(注意:这些时间不影响ISRS,只影响线程,例如ISTS)。
开发组通过检查发现这没有非持久的循环在KCALLS,这意味着:并所有的KCALLS能够表示成单向分支,代码路径,并确保通过KCALL并独立于输入参数发现最差事件时间成为可能。
查找实际的最差事件时间包括使用In strum ented kemal,这仅是一个内核版本,它在设定应用环境后编辑使用,KCALL_PROFICE=1,以保证额外的分时功能,这个instrumented kemel 与debug kemel不同,Instrument ted是为一个零售的内核使用,它用来获得分时值,这常对于装运产品常常讳之莫深,在retail kernal和instrumented kernel唯一区别是它的装备。
Instrumentted kernel记录所有的KCALL时间,这些值,包括最小、最大和平均时间,并能够通过调用专用的API函数Dum Pk call profile打印到调试接口,Instrumented kernel通常运行在强状态下,然后调用Dumpkcall prefile来获得时间。
中断测试应用软件Intrtime.exe,在Windows CE标准版本收集中断分时延迟信息,应用软件在测试中控制系统时间。因此,当系统需要时间控制器时,是不合适使用的。例如,此应用程序不能与内核 instrumented版本一起使用,因为它也需要时间控制。
在Windows CE 2版(Beta版)测试响应,
Intertime应用软件在odoSH3参考平台上运行1000次中断测试,内部运行58.98Mhz,外部为14.745Mhz外部频率,这个测试在一个标准的H/PC配置,它包括Windows CE所有模式和组合。仅有主操作系统进程进行(NK.exe, Filesys.exe, Gwes.exe, Device. EXE, Shell.EXE和Explover.EXE),在测试中无用户初始中断(触摸屏、键盘或其它应用),应用软件可报告下面的ISR和IST开始、最小和最大时间:
响应 最大、最小值(1000次测试)
ISR开始 1.3-7.5微秒
IST开始 93-275微秒
大多数测试结果,分布在最小值数值附近,当测试ISR开始时间时,最小值1.3和1.6微秒,出现了293和549次,共占测试的84%,类似的超过90%的(1000次中923)start-of-IST测试出最大响应为102微秒或少一些。
Intertime应用软件也使用一个用户指定数目的系统对象来测试ISR和IST开始时间。虽然工作十分初级,但它验证了ISR开始时间与系统对象数目无关,测试设为1000次(除了特别更改)并且线程优先权为5或7。
ISR开始最大值 后台线程、数目(每个线程一个事件) 优先级
8.4 0 7
8.6 5(注:仅100次) 7
9.0 10(注:仅100次) 5
14.8 10 5
19.2 10 5
17.0 10 7
12.8 20 5
11.0 20(注:仅100次) 7
10.0 50 7
15.0 100 5
15.6 100 7
这数值不是系统对象数目的函数,不同的值可能由于中断出现时内核状态,开发组目前正在研究以鉴定ISR开始最差时间值。
由这些结果向回推,假定ISR开始最小值代表最好情况。此时,dISR_Current和Sum(dISR_Htgbor)为0,最小的value 1=ISR开始值=1.3微秒,类似的设定最好情况时,Sum(dIST)和Sum(dISR)为0,Value最小值=.IST开始值=93微秒,单从测验结果看,它是不能确定,valume 1或value 2最大值。
wince操作系统
Windows CE作业系统是Windows家族中最新的成员,专门设计给掌上型电脑(HPCs)所使用的电脑环境。这样的作业系统可使完整的可携式技术与现有的Windows桌面技术整合工作。
Windows CE的主要特色包括:
增进工作的产能和效率通讯录,日历行程,工作管理,时钟,计算机,Windows档案总管可携式应用软体--Microsoft Pocket Excel与Microsoft Pocket Word控制台--管理控制Windows CE与办公室PC的连结--在您的桌上型与可携式的办公室间转移资料与他人通讯--可透过电子邮件及红外线无线电通讯,与其他手携式设备交换资料利用可携式Internet Explorer遨游网络想要并使你的HPC达到最大的功用。
Windows CE的使用从随时随地的使用电脑及口袋中藏著PC,到智慧型家电用品及丰富的多媒体家庭剧院,Microsoft Windows CE为工作、家庭及其间的任何一点开启了动态的、崭新的开发远景。这个模组化、可自订的作业系统将Windows平台延伸到桌面之外,到达更小、更机动性、更特别的装置之上,然而它的Windows血统则确保了它的相容性,并且支援了更广泛的开发基础。「MICROSOFT WINDOWS CE」揭露了革命性的系统架构,可以让身为开发者或科技领导者的您,扩展消费者及工业电子上的新市场,其中包括了:
手握式PC手掌式PC车用电脑网络电视网络电话DVD及多媒体装置未公开及未发现的秘密!您也将会发现观念性的架构来帮助您来了解您的设计选择,并看到真实世界的范例,为您展现此一卓越作业系统的弹性及潜力。
在WinCE中创建自己的快捷方式
快捷方式或称(.lnk)文件是可以提供到其他文件链接的很小的文件,你可以使用.lnk文件指向位于Windows文件夹中的文件。
如果你不使用.lnk文件,你只能通过文件系统文件(.dat)在ROM之外制作Windows文件夹下的文件的完全复本。
以下步骤列出了如何创建一个桌面快捷方式。当你创建了这个文件以后,你需要把它加入到运行时的image里,在大多数情况下,你需要把这个文件复制到Windows系统以外的地方。
创建一个桌面快捷方式的方法如下:
1、从Platform Builder中的File菜单选择New Project or File
2、在New Project or File对话框中选择Files标签
3、选择Text File类型
4、在File name文本框中,输入<File Name>.lnk,其中<File Name>可根据需要输入,下同。这样,一个新文件就被创建并打开了
5、在<File Name>.lnk中,输入链接命令
.lnk文件是一个包含了命令行和被链接目标的文本文件,它有一个命令行长度部分和一个命令行。你也可以通过参数传递给被链接的目标,这是可选的。然而,如果快捷方式模块在Coredll中被替换了,那么这个行为也可能会被改变。
作为默认的,一个.lnk文件使用如下的格式。
[后面命令行和参数的ASCII字符串的长度]#[命令行[参数]]
举个例子,要能过两个参数运行你的MyApp.exe程序,一个MyApp.lnk文件内可包含这个语句:
40#\Windows\MyApp.exe parameter1 parameter2
6、从File菜单中选择Save As
7、把这个文件保存在BSP的OAK部分以便于编译进操作系统image中。使用Save As对话框导航到%_WINCEROOT%\public\<Platform Name>\<Windows CE Version>\<BSP Name>\OAK\Files并且选择Save
你已经创建了快捷方式文件,你现在可以通过编辑Project.bib把它加入到OS中,或者添加到你的平台组件树中。如果是前者,只需打开Project.bib文件并且在FILES段中加入如下一行代码:
MyApp.LNK $(_FLATRELEASEDIR)\MyApp.LNK NK S
在这个例子中,MyApp.LNK被放入NK的内存块中,可选的参数S把它定义成系统文件属性。
|