国产化实时操作系统研究之旅7.2-编译内核并运行在自制QEMU虚拟机
发布日期:2021-06-28 15:53:49 浏览次数:3 分类:技术文章

本文共 1411 字,大约阅读时间需要 4 分钟。

研究内核原理前需要提前对内核有个感性的认识,本文介绍笔者自己动手编译SylixOS内核并运行在自己编译的虚拟机平台上。

简介:编译SylixOS内核与Linux还有有点区别。Linux运行由Kernel与根文件系统两部分组成,SylixOS内核中集成了根文件系统,因此只需要编译出一个内核镜像即完成了操作系统最小系统运行环境。文件系统中的软件、库等都可以动态部署。

创建内核镜像步骤很简单只需要三步:

  1. 创建Base工程
  2. 创建Bsp工程,Bsp工程生成内核BIN文件
  3. 用flashimg工具将uboot和内核镜像BIN文件打包成虚拟nand flash存储文件,启动QEMU虚拟机运行即可

创建 SylixOS Base 工程

创建BASE工程这个步骤前文有介绍,工程名Mini2440Base。

创建 SylixOS BSP 工程

IDE工程向导中创建Mini2440Bsp工程,并指定Mini2440Base所在的工程目录。

国产化实时操作系统研究之旅7.2-编译内核并运行在自制QEMU虚拟机

创建BSP工程

内核镜像是由BSP工程生成的。梳理下关系,BASE工程实际上是核心源码,这部分源码具有平台移植性,具体硬件平台的适配代码在BSP工程中。

国产化实时操作系统研究之旅7.2-编译内核并运行在自制QEMU虚拟机

BASE工程与BSP工程的目录结构

从源码目录可以看出SylixOS源码组织的思路,BASE工程中包含平台无关代码和体系结构代码;BSP工程中主要是板级适配代码。例如:我要运行开发板是MINI2440, CPU S3C2440, CPU的体系结构是ARM920T, 那么ARM920T的相关代码在BASE中,S3C2440外设驱动在BSP中。通过以上结论如果要SylixOS运行在自己的板子上,那么一般情况下只需要修改BSP工程中的文件即可。

编译 SylixOS BSP 工程

配置工程,里面主要是内存分布的配置,这个内存分布以后再研究。

国产化实时操作系统研究之旅7.2-编译内核并运行在自制QEMU虚拟机

 

配置好后直接编译,工程DEBUG目录下生成了Mini2440Bsp.bin文件,这个就是内核镜像文件。

国产化实时操作系统研究之旅7.2-编译内核并运行在自制QEMU虚拟机

 

打包nand.bin

将Mini2440Bsp.bin拷贝到我自己制作的flashimg工具下打包

./flashimg -s 128M -t nand -f nand.bin -p uboot.part -w boot,u-boot.bin -w kernel,Mini2440Bsp.bin -z 2048

nand.bin 生成的nand镜像

uboot.part flash分区表

uboot.bin uboot二进制文件

Mini2440Bsp.bin 内核镜像

启动虚拟机运行测试

sudo tunctl -u $USER -t tap0 #给QEMU设置的虚拟网卡

sudo ifconfig tap0 192.168.42.1

qemu-system-arm -M mini2440 -serial stdio -mtdblock nand.bin -usbdevice mouse -kernel uImage -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no,downscript=no

 

 

启动QEMU后会进入uboot.bin, uboot中将内核加载进内存,具体如下:

#nand read 30000000 60000 6000000 将内核加载到内存物理地址

#go 30000000 启动内核

国产化实时操作系统研究之旅7.2-编译内核并运行在自制QEMU虚拟机

 

成功启动系统。

转载地址:https://blog.csdn.net/xian_gw/article/details/117399461 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:国产化实时操作系统研究之旅7.3-操作系统启动初探
下一篇:国产化实时操作系统研究之旅7.1-自己动手用 qemu制作虚拟机

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月28日 05时00分44秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章