《嵌入式操作系统》实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《嵌入式操作系统》实验报告
班级计算机
学号
姓名
指导教师庄旭菲
工业大学信息工程学院计算机系
2018年6月
实验一 Linux核移植与编译实验
1. 实验目的
✧了解Linux 核相关知识与核结构
✧了解Linux 核在ARM 设备上移植的基本步骤和方法
✧掌握Linux 核裁剪与定制的基本方法
2. 实验容
✧分析Linux 核的基本结构,了解Linux 核在ARM 设备上移植的一些基本步骤及常识。
✧学习Linux 核裁剪定制的基本配置方法,利用UP-Magic210 型设备配套Linux 核进行
自定义功能(如helloworld 显示)的添加,并重新编译核源码,生成核压缩文件zImage,下载到UP-Magic210 型设备中测试。
3. 实验步骤
实验目录:/UP-Magic210/SRC/kernel/linux-2.6.35.7/
编译核:在宿主机端为UP-Magic210 设备的Linux 2.6.35.7 核编写简单的测试驱动(核)程序helloworld.c 并修改核目录中相关文件,添加对测试驱动程序的支持。
(1)、使用vim 编辑器手动编写实验代码helloworld.c
helloworld.c 如如下:
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
//驱动程序入口函数
static int hello_init(void)
{
printk(KERN_ALERT "##############Hello, world############\n");
return 0;
}
//驱动程序出口函数
static void hello_exit(void)
{
printk(KERN_ALERT "###############Goodbye, world#########\n");
}
module_init(hello_init);
module_exit(hello_exit);
有关驱动程序的编写规,请参考课程教材,本实验只在编写简单的驱动(核)程序并加入到Linux核目录树中,使用户熟悉编译核的过程。该驱动程序是向终端输出相关程序信息。编写好helloworld.c 后将其拷贝到核源码树的drivers/char/目录下。
[rootlocalhost /]# cp helloworld.c /UP-Magic210/SRC/kernel/linux-2.6.35.7/drivers/char/ (2)、进入实验核源码目录修改driver/char/目录下的Kconfig 文件,按照Kconfig 语法添加helloworld 程序的菜单支持
[rootlocalhost /]# cd UP-Magic210/SRC/kernel/linux-2.6.35.7/
[rootlocalhost linux-2.6.35.7]# vi drivers/char/Kconfig
例如:在Kconfig 文件中的source“driver/char/hw_random/Kconfig”下面添加如下:source“driver/char/hw_random/Kconfig”
config HELLO_MODULE
bool "Hello World Test"
depends on CPU_S5PV210
help
This is a demo to test kernel experiment On UP-Magic210.
(3)、进入实验核源码目录修改driver/char/目录下的Makefile 文件,按照核中Makefile 语法添加helloworld程序的编译支持
[rootlocalhost linux-2.6.35.7]# vi drivers/char/Makefile
在Makefile 中(大约在91 行)添加如下一行
obj-$(CONFIG_TOSHIBA) += toshiba.o
obj-$(CONFIG_I8K) += i8k.o
obj-$(CONFIG_DS1620) += ds1620.o
obj-$(CONFIG_HW_RANDOM) += hw_random/
obj-$(CONFIG_HELLO_MODULE) += helloworld.o
obj-$(CONFIG_PPDEV) += ppdev.o
(4)、运行make menuconfig 配置核对helloworld 程序的支持:
[rootlocalhost linux-2.6.35.7]# make distclean
[rootlocalhost linux-2.6.35.7]# make menuconfig
先加载核配置单,如图:
然后进入到Device Drivers --->菜单中如图:
进入到Character devices--->如图:
进入该菜单会发现[ ] Hello World Test 选项,按下空格将其静态编译进核
退出保存核配置
(5)、重新编译核
在核源码的顶层目录下编译核
[rootlocalhost linux-2.6.35.7]# make
scripts/kconfig/conf -s arch/arm/Kconfig
CHK include/linux/version.h
CHK include/generated/utsrelease.h