我想为配方设置任务(如果需要,也可以设置独立配方),以允许我运行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不存在。
altera-usb-blaster2.cfg
在usr/share/openocd/scripts/interface/
中不存在,但在./tmp/sysroots/x86_64-linux/usr/share/openocd/scripts/interface/
中存在。 (相对于我的构建文件夹)
如何设置任务以运行openocd?
答案 0 :(得分:0)
我找到了解决方法。
我在我的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)
}