bitbake任务运行openocd

时间:2018-08-13 21:25:50

标签: yocto bitbake openocd

我想为配方设置任务(如果需要,也可以设置独立配方),以允许我运行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.cfgusr/share/openocd/scripts/interface/中不存在,但在./tmp/sysroots/x86_64-linux/usr/share/openocd/scripts/interface/中存在。 (相对于我的构建文件夹)

如何设置任务以运行openocd?

1 个答案:

答案 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)
}