文档详情

嵌入式Linux实验汇报.doc

发布:2017-03-11约1.56万字共26页下载文档
文本预览下载声明
嵌 入 式 程 序 设 计 实 验 报 告 评 语: 成绩 教 师: 年 月 日 班 级: 学 号: 姓 名: 地 点: 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程序会提示使用者输入账号及密码,
显示全部
相似文档