日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux系统运行程序设计,seL4的编译和运行

發(fā)布時(shí)間:2023/12/16 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux系统运行程序设计,seL4的编译和运行 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

seL4指定了可以運(yùn)行的平臺(tái),按照下面的匹配來(lái)編譯它。

ARCHPLATARMVCPU

arm

imx31

armv6

arm1136jf-s

arm

omap3

armv7-a

cortex-a8

arm

am335x

armv7-a

cortex-a8

ia32

pc99

從github上clone到工程后,執(zhí)行如下:

如果遇到cc1: all warnings being treated as errors,在Makefile中找到CFLAGS,加上-Wno-unused-but-set-variable:

如果編譯成功,應(yīng)該是下面的結(jié)果:

看看都生成了哪些文件:

Fig 1 make之前目錄結(jié)構(gòu)

Fig 2 make之后目錄結(jié)構(gòu)

Fig 1是沒(méi)有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內(nèi)核的調(diào)試信息,我們要用QEMU來(lái)執(zhí)行這個(gè)elf格式的鏡像。下面是qemu支持的平臺(tái):

我們需要為鏡像選擇正確的qemu運(yùn)行的平臺(tái),運(yùn)行命令:

這里沒(méi)有適合seL4運(yùn)行的平臺(tái),似乎seL4沒(méi)有在QEMU中啟動(dòng)和運(yùn)行。

另外在seL4官方文檔中,指出下列平臺(tái)也可以運(yùn)行seL4:

Intel platforms

a PC99-style Intel Architecture 32-bit x86 (ia32)

There is also experimental support for the 64-bit Intel x86_64 architecture.

ARM platforms

The Arndale dual core A15 ARM development board

The Beagleboard, Omap 3530

The Inforce IFC6410 development board, running a Qualcomm Krait processor that is like an A15.

The KZM-ARM11-01. The kernel for this board is the one that is formally verified.

The Odroid-X Exynos4412 board

The Odroid-XU Exynos 5 board

The Sabre Lite i.mx6 board.

The Beaglebone Black is a community-supported port.

但對(duì)Odroid-XU Exynos 5進(jìn)行編譯:

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

未能成功。

選擇imx6平臺(tái):

TOOLPREFIX=arm-linux-gnueabi- ARCH=arm PLAT=imx6 ARMV=armv7-a CPU=cortex-a9 make

對(duì)arch/arm/machine/l2c_310.c的284行處做如下修改:

編譯通過(guò),生成kernel.elf鏡像。

選擇exynos4平臺(tái):

TOOLPREFIX=arm-linux-gnueabi- ARCH=arm PLAT=exynos4 ARMV=armv7-a

CPU=cortex-a9 make

通過(guò)修改src/plat/exynos4/../exynos_common/mct.c中的initTimer函數(shù):

編譯通過(guò),生成鏡像。

然后qemu選擇相應(yīng)的平臺(tái)nuri或smdkc210,但都不能正常啟動(dòng)內(nèi)核鏡像。

總結(jié)

以上是生活随笔為你收集整理的linux系统运行程序设计,seL4的编译和运行的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。