yocto - 运行 openocd 的 bitbake 任务
问题描述
我想为允许我运行 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?
解决方案
我找到了解决方案。
我在我的 openocd-native 配方中创建了一个 python 任务。对于我的特定板,我在脚本/目标文件夹中创建了一个修改过的文件。
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)
}
推荐阅读
- php - 如何将sql查询写入laravel
- ios - FaceIDRecoginition 功能未实现,但要求在 info.plist 中添加 NSFaceIDUsageDescription 键
- cassandra - 如何在 cassandra 数据库中使用 like 运算符?
- perl - 在 Perl 中使用单个命令将元素添加到多个数组
- java - 检索 iASP RDB 名称以在 jdbc url 中指定它
- r - 如何在ggplot2中获得水平颜色渐变?
- c# - 使用 iText 以 pdf 形式展平字段后的矩形而不是字母
- ios - 从 json 提取时遇到问题
- android - Google 助理自定义命令 | 嘿 Google,打开我的应用页面
- c# - 版本控制 WebAPI C# - 通过模型类对 v1 和 v2 的不同响应