嵌入式ARM linux系统如何设置开机启动应用程序?

嵌入式ARM linux系统如何设置开机启动应用程序?,第1张

其实楼主的问题很专业,之前我在周立功那边也了解过不少。\x0d\x0a 当用户需要EasyARM-iMX283在开机启动后就运行指定的应用程序或指令时,可以通过vi命令编辑/etc/rc.d/init.d/start_userapp,将要执行的指令添加到里面。若用户有一个hellow的程序放在/home/目录中,那么设置hellow程序开机启动的方法如程序清单 1.1红色部分所示。\x0d\x0a程序清单1.1 用户启动文件\x0d\x0a#!/bin/sh \x0d\x0a#you can add your app start_command three \x0d\x0a/home/hellow \x0d\x0a#start qt command,you can delete it 下面是启动QT界面的指令,若用户不需要启动QT,可以直接删除\x0d\x0aexport TSLIB_PLUGINDIR=/usrb/ts/ \x0d\x0aexport TSLIB_CONFFILE=/etc/ts.conf \x0d\x0aexport TSLIB_TSDEVICE=/dev/input/ts0 \x0d\x0aexport TSLIB_CALIBFILE=/etc/pointercal \x0d\x0aexport QT_QWS_FONTDIR=/usrb/fonts\x0d\x0aexport QWS_MOUSE_PROTO=Tslib:/dev/input/ts0 \x0d\x0a/usr/zhiyuan/zylauncher/start_zylauncher &\x0d\x0a\x0d\x0a如果程序是一个阻塞程序(程序被运行后不会退出或返回),则可能会导致位于其后的指令或程序无法得到执行,并且始终占用串口终端,造成其他程序(比如Shell)无法通过串口终端与用户交互。对于此类应用程序,可以在其后面添加“ &”(注意:是“空格”+“&”符号)让其在后台运行,如下所示:\x0d\x0a/home/hellow &

片内的ram用来存储启动代码,在2440初始化sdram之前,代码就在片内ram中运行。片内ram装载的是norflash中的内容,即u-boot。

uboot放在norflash里,nandflash就存放的 *** 作系统。所以norflash相当于电脑的bios,nanflash才是硬盘。sdram就是内存了

uboot是一级启动代码,即bootloader,用来加载 *** 作系统(nandflash)到sdram并且执行,当然uboot还能格式化nandflash和安装新系统的功能。

bootloader 在嵌入式产品里面起着至关重要的作用。

处理器架构通常会决定当处理器上电时从什么地址开始取指执行。

通常来说,设计的时候硬件工程师会将一块物理的ROM映射到这个

地址所在的地方,同时bootloader(至少是一部分)会被烧在这个

ROM里面。这样当上电的时候,程序就在ROM里面执行了,所执行

到的程序需要负责将bootloader的剩余部分搬到 RAM中去执行。

在ROM里面直接执行程序的能力,我们通常称之为XIP的能力,也就

是 Execute In Place。

现在具有XIP能力的不仅是ROM了,还有NOR Flash, 它也可以像 ROM

那样被映射到固定的地址去。现在有很多芯片,也支持 NAND 启动,

这时候就不是直接将 NAND 映射到特定地址中去了,因为 NAND的工作

方式和 NOR不一样,它不能直接挂在总线上,而是需要通过一个NAND

控制器才能正常工作。这时候处理器厂家会想办法在上电的时候,通过

某种办法自动的将保存在NAND里面的少部分程序拷贝到内部的SRAM中

去。SRAM也是具有XIP能力的,它在这种NAND启动方式中会被映射到

处理器上电时所需要寻址的特定地址处。所拷贝的那小块程序需要负责

将bootloader的其他部分拷贝到RAM中去执行。

虽然,ROM/NOR/SRAM 等都是有XIP能力的,但是相对于在RAM中执行

程序,速度都是比较慢的,这就是为什么总是需要拷贝 bootloader 的剩

余部分到 RAM 中去执行的原因。

顺便说下,Bootloader 和 BIOS在所扮演的角色上类似,但是他们两个有

一个关键的地方不一样:BIOS在OS启动后还会驻留在内存中,负责基本

的输入输出功能,但是Bootloader 却不一样,在将控制传递给 *** 作系统

之后,bootloader 即告消亡,不会再留在内存中。

/////////////////////////////////////////////////////////////////////////////////////////////////////////

杭州巨立安(JulianTec)是杭州市场上

唯一由资深研发工程师所创办的机构。所以:

就专业程度和实在程度而言,杭州巨立安(JulianTec)

是您在arm架构下学习嵌入式Linux研发的上佳指导!

巨立安这边的好处在于小班手把手的指导,

如此能更好的把握学习效果。


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

原文地址: http://outofmemory.cn/yw/12056519.html

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

发表评论

登录后才能评论

评论列表(0条)

保存