《嵌入式操作系统》实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档