Skip to content

Implementation of AUTOSAR based on SEL4 microkernel Camkes .

License

Notifications You must be signed in to change notification settings

thatway1989/my-camkes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

my-camkes

Implementation of AUTOSAR based on SEL4 microkernel Camkes .

一、准备工作

此git库建立在熟悉sel4,并且练习完https://docs.sel4.systems/Tutorials/的基础上。

代码下载编译,参考资料:https://docs.sel4.systems/projects/camkes-arm-vm/

repo init -u https://github.com/seL4/camkes-vm-examples-manifest

repo sync

mkdir build

cd build

../init-build.sh -DCAMKES_VM_APP=vm_minimal -DPLATFORM=qemu-arm-virt

ninja

./simulate

运行起来后,会进入虚拟机的linux,说明代码没有问题,在此基础上进行二次开发。

二、下载此git库到代码目录

此git库可以实现linux虚拟机和组件之间通信。

cd projects

git clone https://github.com/thatway1989/my-camkes.git

查看init-build.sh代码,发现会在根目录找CMakeLists.txt文件,找不到就按easy-settings.cmake去执行了。

查看easy-settings.cmake文件链接到了vm-examples。修改链接到projects/my-camkes/easy-settings.cmake。

cd ..

rm easy-settings.cmake

ln -s projects/my-camkes/easy-settings.cmake easy-settings.cmake

ln -s projects/my-camkes/myOS/ myOS

这样myOS在代码根目录,里面是camkes构架的。已有组件可以实现linux虚拟机和组件之间通信。

三、linux命令行触发sel4组件执行

linux已经集成了读写发送程序,参考:projects/my-camkes/myOS/overlay_files/init_scripts/cross_vm_test

dataport_read /dev/uio0 4096 #读共享内存

echo -ne "XXXX\n\0" | dataport_write /dev/uio0 4096 #写入共享内存

emits_event_emit /dev/uio0 #发送激活事件

发送激活事件后,projects/my-camkes/myOS/components/CrossvmInit/src/crossvm_init.c

里面的run函数启动后会一直ready_wait()等待,直到linux终端执行了emits_event_emit命令,就继续往下执行。

linux写入的共享内存可以在(char *)dest这个变量里面读取到。

About

Implementation of AUTOSAR based on SEL4 microkernel Camkes .

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages