openamp 实现项目的功能需求
Posted 为了维护世界和平_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openamp 实现项目的功能需求相关的知识,希望对你有一定的参考价值。
用户空间,
交叉编译移植openamp文件
使用petalinux工具自动生成的文件,可以执行
自己根据源码移植的可执行程序,
Libmetal
Openamp
生成的文件不能执行,提示打开失败。在这个过程中遇到了很多问题
还没有解决方法
如何将openamp嵌入到自己的程序中,
方法一:试着将echo_test文件单独编译,提示头文件<linux/rpmsg.h>文件不存在,这个文件在内核中
方法二:echo_test文件提取不出来,那就把要添加的程序融入到petalinux工具生成的源码中
源码路径
<工程文件夹下>/components/yocto/layers/meta-openamp/recipes-openamp/rpmsg-examples/rpmsg-echo-test
wy@ubuntu:/opt/pkg/petalinux/2020.2/ZYNQ/components/yocto/layers/meta-openamp/recipes-openamp/rpmsg-examples/rpmsg-echo-test$ ls
fd_poll.c ipc_sem.c ipc_shm.c ipc_usocket.c ipc_usock_msg.c LICENSE Makefile rpmsg.c
fd_poll.h ipc_sem.h ipc_shm.h ipc_usocket.h ipc_usock_msg.h main.c Makefile_WY rpmsg.h
Makefile
APP=rpmsg_process #可执行文件名
APP_OBJS = main.o ipc_usocket.o ipc_shm.o ipc_sem.o ipc_usock_msg.o rpmsg.o fd_poll.o
# Add any other object files to this list below
all: $(APP)
$(APP): $(APP_OBJS)
$(CC) $(LDFLAGS) -o $@ $(APP_OBJS) $(LDLIBS)
clean:
rm -rf $(APP) *.o
%.o: %.c
$(CC) -c $(CFLAGS) -o $@ $<
在rpmsg-echo-test_1.0.bb 文件中添加文件
SUMMARY = "RPMsg examples: echo test demo"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b30cbe0b980e98bfd9759b1e6ba3d107"
SRC_URI = "\\
file://LICENSE \\
file://Makefile \\
file://main.c \\
file://ipc_usocket.h \\
file://ipc_usocket.c \\
file://fd_poll.c \\
file://fd_poll.h \\
file://ipc_sem.c \\
file://ipc_sem.h \\
file://ipc_shm.c \\
file://ipc_shm.h \\
file://ipc_usock_msg.c \\
file://ipc_usock_msg.h \\
file://rpmsg.c \\
file://rpmsg.h \\
"
S = "${WORKDIR}"
RRECOMMENDS_${PN} = "kernel-module-rpmsg-char"
FILES_${PN} = "\\
/usr/bin/rpmsg_process\\
"
do_install () {
install -d ${D}/usr/bin
install -m 0755 rpmsg_process ${D}/usr/bin/rpmsg_process
}
在echo_test.c源码文件中,接受和发送使用的read,write。添加许多文件,主要实现poll,socket,shm等功能,与其他进程实现通信
以上是关于openamp 实现项目的功能需求的主要内容,如果未能解决你的问题,请参考以下文章