嵌入式c语言编程实验实验报告,嵌入式Linux实验报告 - 图文

嵌 入 式 程 序 设 计

实 验 报 告

成评 语: 绩 教 师: 年 月 日

班 级: 学 号: 姓 名: 地 点: EII-506 时 间: 2013年6月

实验一开发环境的搭建与配置

一、 【实验目的】

1) 熟悉嵌入式Linux开发平台。

2) 掌握嵌入式Linux开发平台的开发环境搭建与配置。 3) 了解minicom配置串口通信参数的过程。 4) 了解嵌入式Linux的启动过程。

5) 掌握程序交叉编译运行及调试的一般方法。 6) 掌握网络文件系统NFS的配置方法。

7) 掌握嵌入式系统内核的编译、文件系统的打包及镜像的下载方法。

二、 【实验内容】

1) 连接实验开发板与宿主机。

2) 在虚拟机中的CentOS(宿主机)搭建开发环境。 3) 在宿主机中配置minicom。 4) 分析嵌入式Linux的启动过程。

5) 在宿主机上编写简单的C语言程序并用交叉编译工具进行编译,然后传

输到目标机上运行。

6) 在宿主机上编写简单的C语言程序并用交叉编译工具进行编译,用

gdbserver进行远程调试。

7) 配置NFS并用NFS进行文件拷贝。 8) 嵌入式系统内核编译与文件系统的打包。

9) 内核文件镜像与文件系统镜像的下载(从宿主机下载到目标机)。

三、 【实验步骤】

1. 连接实验开发板,对虚拟机进行设置 2. 工具链的配置 3. tftp的安装

4. 进入minicom软件,配置串口通信参数 有关串口通信选项的含义:

\:选择需要传输的文件和路径 \:选择传输文件的通信协议 \:设置串口通信参数

\:将设置好的各项参数保存为dfl

\:将设置好的各项参数保存为自定义的文件名 \:退出返回到minicom设置好后的终端

\:从minicom命令中退出返回Linux终端

将光标移到\,按回车键会弹出串口通信参数的配置菜单。 5. 实验开发板的启动

6. 嵌入式Linux系统的启动过程分析 1) 启动Bootloader

Bootloader是嵌入式系统的引导加载程序,它是系统上电后运行的第一段程序,其作用类似于PC机上的BIOS。在本系统中这段程序的起始地址为0x00000000。Bootloader在完成初始化RAM、初始化串口、检测处理器类型、设置Linux启动参数后,开始调用Linux内核。本系统Linux内核镜像zImage放在Flash中,Bootloader首先把它拷贝到RAM中,然后跳转到RAM中对zImage进行解压缩。解压缩后启动内核。

2) 加载内核

内核启动后先进行一系列与内核相关的初始化,然后调用第一个用户进程——init进程并等待用户进程的执行。具体的过程如下:

进行与体系结构相关的第一个初始化工作,首先通过检测出来的处理器类型进行处理器内核的初始化,然后进行内存结构的初始化,最后开启MMU,创建内核页表,映射所有的物理内存和IO空间;

创建异常向量表和初始化中断处理函数;

初始化系统核心进程调度器和时钟中断处理机制;

初始化串口控制台,在minicom中看到的系统启动过程中的信息都是通过串口输出的;

创建和初始化系统cache,为各种内存调用机制提供缓存,包括动态内存分配、虚拟文件系统及页缓存;

初始化内存管理,检测内存大小及被内核占用的内存情况; 初始化系统的进程间通信机制(IPC); 创建init进程,结束内核的启动。 3) 执行init进程。

内核被加载后,第一个运行的程序便是/sbin/init,init进程是所有进程的发起者和控制者,它的进程号是1。init进程首先读取/etc/inittab文件,并依据此文件来进行初始化工作(首先进行一系列的硬件初始化,然后通过命令行传递过来的参数挂载根文件系统。最后执行一些其它的进程)。

init配置文件每行的基本格式为“id:runlevel_ignored:action:process”,其中某些部分可以为空。各部分的具体内容如下:

id:指定启动进程的控制终端,如果所启动的进程并不是可以交互的shell,应该会有个控制终端(在PC机上该字段表示配置行的惟一标识)。

runlevel_ignored:该字段是忽略掉的,配置inittab时空着它就行了(在PC机上该字段用来配置所启动进程适用的系统运行级别)。

4) 执行/bin/login程序。

你可能感兴趣的:(嵌入式c语言编程实验实验报告)