arm开发板smart210怎么设置程序开机自启动

arm开发板smart210怎么设置程序开机自启动,第1张

以WIN7系统为例(毕竟是现在的主流 *** 作系统嘛)

1:通过开始按钮,打开附件,找到启动文件夹。找到后右击启动文件夹,选择打开命令。

2:点击打开后,系统会将启动文件夹打开。

3:找到指定程序的快捷方式,例如印象笔记,如果桌面上没有你想要的快捷方式,可以通过我的另一个

4:找到指定的快捷方式后,将快捷方式复制或拖到刚刚打开的启动文件夹下面。

5:重启系统,开机后,刚刚设置的程序就会自动打开了。

Windows CE60启动过程分析

在Windows CE 60中,内核(Kenerl)和OEM代码被分成oalexe、kerneldll和kitldll三个部分,其中启动代码(startup)和 OAL层的实现部分不再与内核链接生成NKexe,取而代之的是启动代码(startup)和硬件相关且独立于内核的OAL层的实现部分编译成 oalexe,而与内核相关且独立于硬件的OAL层代码包含在kerneldll中;内核无关传输层(KITL)的支持代码从OAL层分离出来编译成 kitldll。

从表面上看,好像只是代码重新组合了一下,从帮助 文档中BSP的移植过程看好像也是这么一回事,实际上,整个Windows CE 60内核布局发生了很大的改变。Windows CE 60的启动过程也是如此,如果你想按照Windows CE 50的启动顺序去分析Windows CE 60的启动顺序,可能会走到一个死胡同。主要是因为Windows CE 60在启动过程中调用了kerneldll和kitldll两个动态链接库的原因,而且Windows CE60不再编译生成KernKitlProfexe内核文件。

从Windows CE 60的帮助文档可以看出,WinCE60的启动只与oalexe和kerneldll有关,至于kitldll,只有将 *** 作系统编译成具有 KITL功能时才用到。分析Windows CE 60的启动过程实际上找到编译oalexe和kerneldll的源码位置。

首先看一下将WinCE60编译成诸如 WinCE50所说的基本内核情况,即kernexe。对于oalexe源码位置比较容易找到,因为oalexe是启动代码与硬件相关的OAL层 实现文件编译而成,所以只需在BSP的OAL目录中便能找到。而对于kerneldll,在BSP目录结构中,基本上无法找到kerneldll的编 译文件,所以必须从其他方面着手。

下面为WinCE 60的编译日志输出文件:makeimgout在文件复制过程的一部分:

Copying E:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\oalexe to E:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\nkexe for debugger Copying E:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\kerndll to E:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\kerneldll for debugger

从日志输出文件可以看出,在文件复制过程 中,WinCE60编译器将oalexe更名为nkexe,而将kerndll文件更名为kerneldll,也就是说,kerndll文件 的实现部分就是kerneldll的实现体。根据前面的分析,oalexe是与硬件相关独立于内核的OAL层的实现部分,而kerneldll为内 核相关独立于硬件的OAL层的实现部分。同样可以从最后整合后的二进制配置文件cebib文件中看出端倪。

; @CESYSGEN IF CE_MODULES_NK

nkexe E:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\oalexe NK SHZ

kitldll E:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\kitldll NK SHZ

kerneldll E:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\kerndll NK SHZ

; @CESYSGEN ENDIF

而kerndll动态库在整个Windows CE60中没有显式编译过程,即没有一个sources文件有kerndll的编译过程,所以只能从 *** 作系统的编译文件Makefile中寻找其编译 过程。下面看一下$(_PUBLICROOT)\common\CESYSGEN\makefile中的部分内容:

nk::$(NK_COMPONENTS) $(NK_REPLACE_COMPONENTS)

@copy $(SG_INPUT_LIB)\oemstubpdb $(SG_OUTPUT_OAKLIB)

@copy $(SG_INPUT_LIB)\oemstublib $(SG_OUTPUT_OAKLIB)

set TARGETTYPE=DYNLINK

set TARGETNAME=kern

set RELEASETYPE=OAK

set DLLENTRY=NKStartup

set DEFFILE=NO_DEF_FILE

set TARGETLIBS=

set SOURCELIBS=%%NKLIBS%% $(SG_INPUT_LIB)\nkmainlib $(SG_INPUT_LIB)\fulllibclib

$(MAKECMD) /NOLOGO NOLIBC=1 kerndll

从上述代码中可以发现,原来kerndll动态库是从oemstublib编译而来,而且与nkmainlib有关。

在理顺了上述文件的相互之间的关系之后,再来分析Windows CE 60的启动过程可能就比较容易啦。

在理清了上述文件的关系之后,便可以分析任意一款基于ARM微处理器的Windows CE 60的启动过程,现在以深圳亿道电子技术有限公司开发的基于PXA270 ARM开发平台为例,分析Windows CE 60 *** 作系统启动过程。

1、Startup函数:

从Windows CE 60的帮助文档可以看出,WinCE60的启动只与oalexe和kerneldll有关,至于kitldll,只有将 *** 作系统编译成具有 KITL功能时才用到。分析Windows CE 60的启动过程实际上找到编译oalexe和kerneldll的源码位置。

oalexe的通过Startup函数完成硬件 的初始化。Startups代码与该硬件平台的Bootloader启动代码共用,其中PreInit函数主要完成将ARM处理器工作模式切换到管理员 模式、同时关闭MMU,并检测系统启动原因,如果是热启动、即在该函数调用之前已经启动了Bootloader程序,相当基本硬件初始化已经完成,则直接 跳转到OALStartUp函数中;否则需要进行硬件中断屏蔽、内存、系统时钟频率、电源管理等硬件的基本初始化过程。(具体过程见代码的分析)

服务就是服务。程序就是程序。不是一个概念。服务是可以随系统一起启动的。而程序必须是系统启动完成才可以用的。服务可以用窗口,也可以没窗口。例如有些杀毒软件在系统启动时就开始查毒。而不是系统启动完成才运行。

$curl = curl_init();

curl_setopt($curl,CURLOPT_URL,$_GET['url']);

curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

curl_setopt($curl,CURLOPT_USERAGENT,"Mozilla/40

(compatible; MSIE 60; Windows NT 51; SV1; NET CLR 114322; NET CLR 2050727)");

$output = curl_exec($curl);

curl_close($curl);

print_r($output);

以上就是关于arm开发板smart210怎么设置程序开机自启动全部的内容,包括:arm开发板smart210怎么设置程序开机自启动、wince6.0启动异砦新手求助、如何写个wince服务程序,后台运行,不需要窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10131989.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存