嵌入式linux实验体会,嵌入式linux从实验报告.doc

嵌 入 式 程 序 设 计

实 验 报 告

评 语:成绩

教 师:

年 月 日

班 级:

学 号:

姓 名:

地 点: 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验名称:Linux嵌入式数据库实验 实验目的:了解嵌入式数据库的基本原理和应用,掌握在Linux系统上使用嵌入式数据库的方法和技巧。 实验步骤: 1. 安装数据库软件:本次实验选用SQLite数据库,使用以下命令进行安装: ``` sudo apt-get install sqlite3 ``` 2. 创建数据库:使用以下命令创建一个名为“test.db”的数据库文件: ``` sqlite3 test.db ``` 3. 创建数据表:在数据库中创建一个名为“students”的数据表,包含“id”、“name”和“age”三个字段: ``` CREATE TABLE students( id INT PRIMARY KEY NOT NULL, name TEXT NOT NULL, age INT NOT NULL); ``` 4. 插入数据:向“students”表中插入三条数据: ``` INSERT INTO students (id, name, age) VALUES (1, 'Tom', 20); INSERT INTO students (id, name, age) VALUES (2, 'Jack', 22); INSERT INTO students (id, name, age) VALUES (3, 'Amy', 21); ``` 5. 查询数据:查询“students”表中的所有数据: ``` SELECT * FROM students; ``` 6. 更新数据:将“id”为1的记录的“age”字段更新为25: ``` UPDATE students SET age = 25 WHERE id = 1; ``` 7. 删除数据:将“id”为3的记录从“students”表中删除: ``` DELETE FROM students WHERE id = 3; ``` 实验现象:通过以上步骤,成功创建了一个SQLite数据库文件“test.db”,在其中创建了一个名为“students”的数据表,并向其中插入了三条数据。随后对数据进行了查询、更新和删除操作。这些操作均能成功执行,并且结果符合预期。 实验数据:本次实验并未涉及大量数据处理,因此实验数据较少。通过查询操作,我们得到了以下数据: ``` id name age 1 Tom 25 2 Jack 22 ``` 实验心得:本次实验让我初步了解了嵌入式数据库的基本原理和应用,以及在Linux系统上使用嵌入式数据库的方法和技巧。通过实验,我掌握了SQLite数据库的基本命令和操作方式,也对数据库的结构和逻辑有了更深入的理解。在今后的学习和实践中,我将继续探索嵌入式数据库的应用领域,不断提升自己的能力和水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值