开发板一键启动的过程

开发板一键启动的过程,第1张

用户程序insmod核心模块加载。

具体如下:核心模块编译完成后,基本上是个未经符号定位的目标文件(object)(当然,如果这个object又是一些子object经过ld-r生成的话,则子object之间的符号定位是已经完成的),object是一种可重定位的代码,它可以加载到不同位置的内存执行。而真正加载唤搜进核心,并成为核心的一部分,则是用户程序insmod和核心几个系统调用共同完成的。在此过程中,insmod主要完成或通过系统调用完成以下的工作:

1)由参数找到模块文件,如insmodfoo.o,和物历模块文件就是foo.o,根据模块文件计算出模块文件所需的内存大小。

2)调用系统调用create_module,为该模块分配核心空间内存。

3)调用系统调用query_module,得到核心提供的符号表,与系统蚂搏调用create_module的返回值(核心模块首地址)加在一起对模块进行重定位。

4)在用户空间为核心模块分配内存,并往该段内存复制一个经过定位的object映象。

5)调用系统调用init_module,将用户内存中的模块映象copy到相应的核心空间(首地址为create_module的返回值)。

6)释放用户内存,中止insmod运行。如果一切顺利,没有出现未定位的符号,则核心模块object就融入系统,成为系统的一部分了。

嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader), Linux 内核,文件系统,应用程序。

当系统首次引导时昌蚂旦,或系统被重置时,处理器会执行一个位于Flash/ROM中的已知位置处的代码,Bootloader就是这第一段代码。它主要用来初始化处理器及外设,然后调用 Linux 内核。Linux 内核在完成系统的初始化之后需要挂载某个文件系统作为根文件系统(Root Filesystem),然后加载必要的内核模块,启动应用程序。这就是嵌入式Linux系统启动过程 Linux 引导的整个过程。

Bootloader 的启动方式:

网络启动方式。这种方式的开发板不需要较大的存储介质,跟无盘工作站有点类似,但是使用这种启动方式之前,需要把Bootloader安装到板上的EPROM或者Flash中。Bootloader通过以太网接口远程下载Linux内核映像或者文件系统。Bootloader下载文件一般都使用TFTP网络协议,还可以通过DHCP的耐扰方式动态配置IP地址。

硬盘启动方式

传统的Linux系统运行在台式机或者服务器上,这些计算机一般都使用BIOS引导,并使用磁盘作为存储介质。Linux传统上是LILO (Linux Loader) 引导,后来又出现了GUN的软件 (Grand Unified Bootloader) 。 这两种Bootloader广泛应用在X86的Linux系统上。

Flash启动方式。大多数嵌入式系统上都使用Flash存储介质。Flash有很多类型,包括NOR Flash、NAND Flash和其它半导体盘。它们之间的不同在于: NOR Flash 支持芯片内执行(XIP, eXecute In Place),这样代码可以在Flash上直接执行而不必拷贝到RAM中去执行。而NAND Flash并不支持XIP,所以要想执行 NAND Flash 上的代码,必物仔须先将其拷贝到 RAM中去,然后跳到 RAM 中去执行。NOR Flash 使用最为普遍。Bootloader一般放在Flash的底端或者顶端,这需要根据处理器的复位向量来进行设置。可以配置成MTD设备来访问Flash分区。

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

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

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

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

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

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


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

原文地址:https://www.54852.com/yw/12477817.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存