seL4的编译和运行,seL4编译运行


seL4指定了可以运行的平台,按照下面的匹配来编译它。

ARCH PLAT ARMV CPU
arm imx31 armv6 arm1136jf-s
arm omap3 armv7-a cortex-a8
arm am335x armv7-a cortex-a8
ia32 pc99

从github上clone到工程后,执行如下:
这里写图片描述

如果遇到cc1: all warnings being treated as errors,在Makefile中找到CFLAGS,加上-Wno-unused-but-set-variable:
这里写图片描述

如果编译成功,应该是下面的结果:
这里写图片描述

看看都生成了哪些文件:

这里写图片描述
Fig 1 make之前目录结构

这里写图片描述
Fig 2 make之后目录结构

Fig 1是没有make的目录,Fig 2是make之后的目录。多出了:

  • 目录api
  • 目录arch
  • 目录plat
  • kernel_all.c
  • kernel_all.c_pp
  • kernel.elf
  • kernel.elf.strip
  • kernel_final.c
  • kernel_final.s
  • kernel.o

    其中kernel.elf包含所有seL4内核的调试信息,我们要用QEMU来执行这个elf格式的镜像。下面是qemu支持的平台:
    这里写图片描述

我们需要为镜像选择正确的qemu运行的平台,运行命令:
这里写图片描述

这里没有适合seL4运行的平台,似乎seL4没有在QEMU中启动和运行。

另外在seL4官方文档中,指出下列平台也可以运行seL4:

  • Intel platforms

  • ARM platforms

但对Odroid-XU Exynos 5进行编译:

TOOLPREFIX=arm-none-eabi- ARCH=arm PLAT=exynos5 ARMV=armv7-a CPU=cortex-a15 make

未能成功。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关内容

    暂无相关文章