- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Linux实验的报告
嵌 入 式 程 序 设 计
实 验 报 告
评 语: 成绩
教 师:
年 月 日
班 级:
学 号:
姓 名:
地 点: EII-506
时 间: 2013年6月
实验一开发环境的搭建与配置
【实验目的】
熟悉嵌入式Linux开发平台。
掌握嵌入式Linux开发平台的开发环境搭建与配置。
了解minicom配置串口通信参数的过程。
了解嵌入式Linux的启动过程。
掌握程序交叉编译运行及调试的一般方法。
掌握网络文件系统NFS的配置方法。
掌握嵌入式系统内核的编译、文件系统的打包及镜像的下载方法。
【实验内容】
连接实验开发板与宿主机。
在虚拟机中的CentOS(宿主机)搭建开发环境。
在宿主机中配置minicom。
分析嵌入式Linux的启动过程。
在宿主机上编写简单的C语言程序并用交叉编译工具进行编译,然后传输到目标机上运行。
在宿主机上编写简单的C语言程序并用交叉编译工具进行编译,用gdbserver进行远程调试。
配置NFS并用NFS进行文件拷贝。
嵌入式系统内核编译与文件系统的打包。
内核文件镜像与文件系统镜像的下载(从宿主机下载到目标机)。
【实验步骤】
连接实验开发板,对虚拟机进行设置
工具链的配置
tftp的安装
进入minicom软件,配置串口通信参数
有关串口通信选项的含义:
Filenames and paths:选择需要传输的文件和路径
File transfer protocols:选择传输文件的通信协议
Serial port setup:设置串口通信参数
Save setup as dfl:将设置好的各项参数保存为dfl
Save setup as:将设置好的各项参数保存为自定义的文件名
Exit:退出返回到minicom设置好后的终端
Exit from Minicom:从minicom命令中退出返回Linux终端
将光标移到Serial port setup,按回车键会弹出串口通信参数的配置菜单。
实验开发板的启动
嵌入式Linux系统的启动过程分析
启动Bootloader
Bootloader是嵌入式系统的引导加载程序,它是系统上电后运行的第一段程序,其作用类似于PC机上的BIOS。在本系统中这段程序的起始地址为0Bootloader在完成初始化RAM、初始化串口、检测处理器类型、设置Linux启动参数后,开始调用Linux内核。本系统Linux内核镜像zImage放在Flash中,Bootloader首先把它拷贝到RAM中,然后跳转到RAM中对zImage进行解压缩。解压缩后启动内核。
加载内核
内核启动后先进行一系列与内核相关的初始化,然后调用第一个用户进程——init进程并等待用户进程的执行。具体的过程如下:
进行与体系结构相关的第一个初始化工作,首先通过检测出来的处理器类型进行处理器内核的初始化,然后进行内存结构的初始化,最后开启MMU,创建内核页表,映射所有的物理内存和IO空间;
创建异常向量表和初始化中断处理函数;
初始化系统核心进程调度器和时钟中断处理机制;
初始化串口控制台,在minicom中看到的系统启动过程中的信息都是通过串口输出的;
创建和初始化系统cache,为各种内存调用机制提供缓存,包括动态内存分配、虚拟文件系统及页缓存;
初始化内存管理,检测内存大小及被内核占用的内存情况;
初始化系统的进程间通信机制(IPC);
创建init进程,结束内核的启动。
执行init进程。
内核被加载后,第一个运行的程序便是/sbin/init,init进程是所有进程的发起者和控制者,它的进程号是1。init进程首先读取/etc/inittab文件,并依据此文件来进行初始化工作(首先进行一系列的硬件初始化,然后通过命令行传递过来的参数挂载根文件系统。最后执行一些其它的进程)。
init配置文件每行的基本格式为“id:runlevel_ignored:action:process”,其中某些部分可以为空。各部分的具体内容如下:
id:指定启动进程的控制终端,如果所启动的进程并不是可以交互的shell,应该会有个控制终端(在PC机上该字段表示配置行的惟一标识)。
runlevel_ignored:该字段是忽略掉的,配置inittab时空着它就行了(在PC机上该字段用来配置所启动进程适用的系统运行级别)。
执行/bin/login程序。
有些嵌入式系统在init进程执行完后会执行/bin/login。login程序会提示使用者输入账号及密码,
文档评论(0)