我已通过此链接(https://lemariva.com/blog/2018/07/raspberry-pi-xenomai-patching-tutorial-for-kernel-4-14-y)在raspberry-pi上完成了xenomai的安装。 我很好奇它的工作原理。所以我尝试了xenomai api(https://xenomai.org/documentation/xenomai-3/html/xeno3prm/bufp-label_8c-example.html)的示例1 我在raspberry-pi上制作了makefile,并应用了此链接的示例。
XENO_CONFIG := /usr/xenomai/bin/xeno-config
CFLAGS := $(shell %(XENO_CONFIG) --posix --cflags)
LDFLAGS := $(shell %(XENO_CONFIG) --posix --ldflags)
CC := $(shell $(XENO_CONFIG) --cc)
EXECUTABLE := ex1
all: $(EXECUTABLE)
%: %.c
$(CC) -o $@ $< $(CFLAGS) $(LDFLAGS)
clean:
@rm -r $(EXECUTABLE)
但是树莓派上xeno-config的gcc地址表示笔记本电脑的gcc地址。 因此,我首先将其修改为“ gcc”,然后又将其修改为“我认为正确的地址”。 编译成功。执行不是。 两者都返回“加载共享库时出错:libcobalt.so.2:无法打开共享库文件:没有这样的文件或目录”。但是我们xeno-config的lib地址是正确的。所以我尝试了以下代码。
export LD_LIBRARY_PATH=/usr/xenomai/lib
当我尝试执行时,它返回“ low_init()中的错误:[main]绑定失败:不允许操作”
由于这个问题,即使我第三次重新安装。但是什么都没有改变。每当我重新安装Xeno-config时,它仍然指向笔记本电脑的地址。
我不知道该怎么办。只是我希望这个例子有用
P.S。我在这个领域不好。我无法理解xenomai-api上的示例代码。因此修改代码对我来说不合适。 无论如何,示例必须是可执行的,不是吗?