我想为一个配方设置一个任务(如果需要的话,也可以是一个独立的配方),它允许我运行openocd来连接到我的开发板。
我有一个openocd原生食谱。
我创建了一个添加到食谱中的任务,如下所示:
do_openocd[depends] += "openocd-native:do_populate_sysroot"
addtask openocd after do_image
do_openocd () {
echo "The thing is ${datadir_native}/openocd"
echo $(ls -la ${datadir_native}/openocd/scripts/interface)
echo $(openocd -v)
echo $(which openocd)
openocd -f ${datadir_native}/openocd/scripts/interface/altera-usb-blaster2.cfg
}这将在构建系统sysroot中运行openocd,正如我所期望的那样。但是,我无法让我的任务在我的构建系统sysroot中使用usr/share。它只是简单地将/usr/share/blablabla视为不存在构建系统sysroot。
usr/share/openocd/scripts/interface/中不存在altera-usb-blaster2.cfg,但./tmp/sysroots/x86_64-linux/usr/share/openocd/scripts/interface/中确实存在。(相对于我的build文件夹)
如何设置我的任务以运行openocd?
发布于 2018-08-14 22:45:30
我找到了一个解决方案。
我在我的openocd本地配方中创建了一个python任务。对于我的特定主板,我在scripts/target文件夹中创建了一个修改后的文件。
addtask openocd after do_install
python do_openocd () {
pathdir = d.getVar("datadir", True)
comand="openocd -f %s/openocd/scripts/interface/altera-usb-blaster2.cfg -f
%s/openocd/scripts/target/cyclone.cfg" % (pathdir, pathdir)
oe_terminal("${SHELL} -c \"%s; if [ \$? -ne 0 ]; then echo 'Command failed.';
printf 'Press any key to continue... '; read r; fi\"" % comand, 'Running openocd', d)
}https://stackoverflow.com/questions/51830795
复制相似问题