嵌入式操作系统实验报告
- 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/编译内核:在宿主机端为UP-Magic210 设备的Linux 内核编写简单的测试驱动(内核)程序并修改内核目录中相关文件,添加对测试驱动程序的支持。
(1)、使用 vim 编辑器手动编写实验代码
内如如下:
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
(3)、进入实验内核源码目录修改 driver/char/目录下的 Makefile 文件,按照内核中Makefile 语法添加 helloworld程序的编译支持
[root@localhost vi drivers/char/Makefile
在 Makefile 中(大约在 91 行)添加如下一行
obj-$(CONFIG_TOSHIBA) +=
obj-$(CONFIG_I8K) +=
obj-$(CONFIG_DS1620) +=
obj-$(CONFIG_HW_RANDOM) += hw_random/
obj-$(CONFIG_HELLO_MODULE) +=
obj-$(CONFIG_PPDEV) +=
(4)、运行 make menuconfig 配置内核对 helloworld 程序的支持:
[root@localhost make distclean
[root@localhost make menuconfig
先加载内核配置单,如图:
然后进入到 Device Drivers --->菜单中如图:
进入到 Character devices--->如图:
进入该菜单会发现[ ] Hello World Test 选项,按下空格将其静态编译进内核退出保存内核配置
(5)、重新编译内核
在内核源码的顶层目录下编译内核
[root@localhost make
scripts/kconfig/conf -s arch/arm/Kconfig
CHK include/linux/
CHK include/generated/
make[1]:“include/generated/”是最新的。
CALL scripts/
CHK include/generated/
CC drivers/char/
LD drivers/char/
LD drivers/
LD
MODPOST
初次编译内核源码,由内核代码庞大,所需较长时间(大约几分钟至 10 几分钟不等)。编译成功后会在内核源码目录的 arch/arm/boot/目录下生成内核压缩文件 zImage。
[root@localhost ls arch/arm/boot/zImage
arch/arm/boot/zImage
[root@localhost 、将新生成的内核镜像文件 zImage 烧写到 UP-Magic210 型设备中,这里不在赘述(烧写步骤可以参考文档“UP-Magic210出厂程序烧写手册(LINUX)第23页)。新内核烧写成功后启动 UP-Magic210 型系统,可以在串口终端中查看到 Linux 内核在启动过程中打印出来的如下信息:
S3C_LCD clock got enabled :: Mhz
Window[0]- FB1 : map_video_memory: clear ff600000:00096000
FB1 : map_video_memory: dma= cpu=ff600000 size=00096000
Console: switching to colour frame buffer device 80x30
fb-52: frame buffer device
lp: driver loaded but no devices found
###################Hello, world###################
ppdev: user-space parallel port driver
: ttySAC0 at MMIO 0x7f005000 (irq = 37) is a S3C
: ttySAC1 at MMIO 0x7f005400 (irq = 38) is a S3C
: ttySAC2 at MMIO 0x7f005800 (irq = 39) is a S3C
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
nbd: registered device at major 43