【发布时间】:2016-11-08 12:08:42
【问题描述】:
我花了整整 12 个小时试图让 Beaglebone 上的 PRU 工作。到目前为止,我似乎完全停留在让设备覆盖工作以及启用 remoteproc 上。我试图将我在互联网上找到的所有信息拼凑起来,但它要么已经过时,要么非常分散。我似乎找不到当前的工作示例,或者在按照前面所说的进行操作时碰壁了。
设置/环境
我已经更新了 beaglebone 上的内核,随后进行了多次“更新”、“升级”和“dist-upgrades”。据我所知,我使用的是最新版本。
- 比格骨黑
- Debian 8.6
- 内核 4.4.30-ti-r64
- dtc 1.4.1
示例代码
设备覆盖文件 [PRU-GPIO-BLINK.dts]:
// Setup file for basic PRU GPIO Blinking LED
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "PRU-GPIO-BLINK";
version = "00A0";
// This overlay uses the following resources
exclusive-use = "P8.11";
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
gpio_pins: pinmux_gpio_pins {
pinctrl-single,pins = <
0x034 0x06
>;
};
};
};
fragment@1 {
target = <&pruss>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&gpio_pins>;
};
};
};
上面的代码编译使用:root@beaglebone:/lib/firmware# dtc -I dts -O dtb -o /lib/firmware/PRU-GPIO-BLINK-00A0.dtbo /lib/firmware/PRU-GPIO-BLINK.dts
当我使用以下命令将其添加到 bone_capemgr 时:
root@beaglebone:/lib/firmware# echo "PRU-GPIO-BLINK" > /sys/devices/platform/bone_capemgr/slots
我最终得到File or directory cannot be found 错误或File Exists 错误。我已经像很多人推荐的那样在 uEnvt.txt 中禁用了 HDMI,但仍然没有运气。
除此之外,我还尝试了以下练习:http://elinux.org/EBC_Exercise_30_PRU_via_remoteproc_and_RPMsg
我完成了大部分练习,直到我启用了 remoteproc 部分。当我转到“取消注释”#include "am33xx-pruss-rproc.dtsi" 时,我似乎在文件中的任何地方都找不到它。当我简单地将该行添加到文件并尝试调用make 时,编译器会抱怨它找不到文件并导致构建失败。
如果有人好奇,这里是我运行cat /sys/devices/platform/bone_capemgr/slots时的输出
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,univ-emmc
问题
对于为什么我的设备覆盖无法正常工作并且我无法在 elinux 上进行练习,是否有人有任何建议?我几乎被困在这一点上,大多数在线示例都参考了过时的路径或方法。有没有我丢失的包裹?根据我的阅读,似乎所有的编译器和加载器现在都内置在新的 beaglebone 发行版中。如果有人需要澄清或我忘记提及某些内容,我将很乐意提供。
更新(2016 年 11 月 11 日):
就像一个快速更新。我在另一个论坛上收到了关于我无法遵循上面提到的 elinux 示例的回复。结果我所要做的就是用git pull 更新我的repo,然后我正在寻找的行出现了。这解决了我关于 remote_proc 的问题,但它仍然不能解决我无法启用设备覆盖树的主要问题。
更新(2017 年 3 月 22 日)
我没有忘记这个问题。我最终在另一个论坛的帮助下以不同的方式自己解决了这个问题。当我有时间时,我会写下我的详细解决方案,以便任何有相同问题的人都可以解决它。
【问题讨论】:
-
您好,我很想了解您是如何解决问题的。我目前正在尝试在 PRU 上运行一些代码,但遇到了各种问题,例如无法禁用 HDMI、无法写入插槽文件等。
-
很遗憾您没有跟进此事。我相信很多人会使用你的解决方案。
-
我真的很抱歉我完全忘记了这一点,当时我为一堂课解决了这个问题。我现在正在挖掘我的旧笔记,试图弄清楚我几年前做了什么。我正在添加一个链接作为指向我的代码仓库的答案,该代码仓库应该设置 PRU 以驱动 ESC。我不记得它处于什么状态,但我会尝试清理它。再次向任何发现此问题并希望得到答案的人表示歉意。
标签: c linux debian real-time beagleboneblack