完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在过去,我在Debian Jessie的Beaglebone Black上运行了一些PRU代码。
最近升级到Debian Stretch(版本9.4),现有PRU代码现在生成分段错误。 我已经更新了uBoot以使用旧的dbto文件(在Jessie中工作)并且uBoot似乎没问题。 (我已经包含了version.sh的输出) root @ engraver:〜#/ opt / scripts / tools version.sh GIT中:/选择/脚本/:[ea6ea9fca05f36f5044398884375b0231348d6e2] EEPROM:[A335BNLT000C1826BBBG0816] 模型:[ti_AM335x_BeagleBone_Black] dogtag:[BeagleBoard.org Debian Image 2018-01-28] bootloader:[eMMC-(默认)]:[/ dev / mmcblk1]:[U-Boot 2018.01-00002-g9aa111a004] 内核:[78年9月4日-TI-R94] 的NodeJS:[v6.12.3] uboot_overlay_options:[enable_uboot_overlays = 1] uboot_overlay_options:[uboot_overlay_pru = / LIB /固件/ AM335X-PRU-RPROC-4-4-TI-00A0.dtbo] uboot_overlay_options:[enable_uboot_cape_universal = 1] PKG:[BB-斗篷叠加]:[4.4.20180126.0-0rcnee0〜拉伸+ 20180126] PKG:[BB-wl18xx固件]:[1.20170829-0rcnee2〜拉伸+ 20180104] PKG:[固件-TI-连通]:[20170823-1rcnee0〜拉伸+ 20170830] 团体:[debian:debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai] dmesg | grep pinctrl-single [1.385819] pinctrl-single 44e10800.pinmux:142针脚,f9e10800尺寸568 结束 我还尝试在/ am335x_pru_package / pru_sw / example_apps / PRU_memAccess_DDR_PRUsharedRAM中构建示例PRU文件,但仍然会出现分段错误。 以上来自于谷歌翻译 以下为原文 In the past I had some PRU code running on Beaglebone Black with Debian Jessie. Recently upgraded to Debian Stretch (ver 9.4) and existing PRU code now generates a segmentation fault. I’ve updated uBoot to use the old dbto file (that worked in Jessie) and uBoot seems OK. (I’ve included the output of version.sh) root@engraver:~# /opt/scripts/tools/version.sh git:/opt/scripts/:[ea6ea9fca05f36f5044398884375b0231348d6e2] eeprom:[A335BNLT000C1826BBBG0816] model:[TI_AM335x_BeagleBone_Black] dogtag:[BeagleBoard.org Debian Image 2018-01-28] bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2018.01-00002-g9aa111a004] kernel:[4.9.78-ti-r94] nodejs:[v6.12.3] uboot_overlay_options:[enable_uboot_overlays=1] uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo] uboot_overlay_options:[enable_uboot_cape_universal=1] pkg:[bb-cape-overlays]:[4.4.20180126.0-0rcnee0~stretch+20180126] pkg:[bb-wl18xx-firmware]:[1.20170829-0rcnee2~stretch+20180104] pkg:[firmware-ti-connectivity]:[20170823-1rcnee0~stretch+20170830] groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai] dmesg | grep pinctrl-single [ 1.385819] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568 END I’ve also tried building the example PRU files in /am335x_pru_package/pru_sw/example_apps/PRU_memAccess_DDR_PRUsharedRAM and still get a segmentation fault. |
|
相关推荐
5个回答
|
|
@texasEE,你的u-boot叠加层与内核版本不匹配:
内核:[78年9月4日-TI-R94] uboot_overlay_options:[uboot_overlay_pru = / LIB /固件/ AM335X-PRU-RPROC-4-4-TI-00A0.dtbo] PKG:[BB-斗篷叠加]:[4.4.20180126.0-0rcnee0〜拉伸+ 20180126] 改为使用(在/boot/uEnv.txt中): uboot_overlay_pru = / LIB /固件/ AM335X-PRU-RPROC-4-9-TI-00A0.dtbo 更新u-boot,内核和bb-cape-overlays也是明智之举 debian @ test-bbb-2:〜$ cd / opt / scripts / tools / debian @ test-bbb-2:/ opt / scripts / tools $ git pull 已经是最新的。 debian @ test-bbb-2:/ opt / scripts / tools $ sudo ./update_kernel.sh debian @ test-bbb-2:/ opt / scripts / tools $ sudo ./developers/update_bootloader.sh debian @ test-bbb-2:/ opt / scripts / tools $ sudo apt install --only-upgrade bb-cape-overlays 问候, 以上来自于谷歌翻译 以下为原文 @texasEE, your u-boot overlay doesn’t match the kernel version: kernel:[4.9.78-ti-r94]uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo]pkg:[bb-cape-overlays]:[4.4.20180126.0-0rcnee0~stretch+20180126]Use instead (in /boot/uEnv.txt): uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-9-TI-00A0.dtboAlso it’s wise to update u-boot, kernel, and bb-cape-overlays debian@test-bbb-2:~$ cd /opt/scripts/tools/debian@test-bbb-2:/opt/scripts/tools$ git pullAlready up-to-date.debian@test-bbb-2:/opt/scripts/tools$ sudo ./update_kernel.sh debian@test-bbb-2:/opt/scripts/tools$ sudo ./developers/update_bootloader.sh debian@test-bbb-2:/opt/scripts/tools$ sudo apt install --only-upgrade bb-cape-overlaysRegards, |
|
|
|
更新了u-boot,内核和bb-cape-overlays。
仍有分割错误。 / boot / uEnv中的两个PRUSS选项有什么区别? 你何时使用一个与另一个相比,现在/ lib / firmware中还有几个AM335X-PRU-RPROC- *文件。 应该使用哪一个以及何时使用哪些信息? 谢谢, 以上来自于谷歌翻译 以下为原文 Updated u-boot, kernel and bb-cape-overlays. Still have segmentation error. What is difference between the two PRUSS Options in /boot/uEnv? WHen do you use one vs the other and also there are now several AM335X-PRU-RPROC-* files in /lib/firmware. Any information on which one should be used and when? Thanks, |
|
|
|
糟糕,至少内核和叠加现在匹配。
因此,在Beagle的整个生命周期中,目前有4种与pru通信的主要方法: UIO :(几乎每个内核):AM335X-PRU-UIO-00A0.dtbo ti-remoteproc:4.4.x内核:AM335X-PRU-RPROC-4-4-TI-00A0.dtbo ti-remoteproc:4.9.x内核:AM335X-PRU-RPROC-4-9-TI-00A0.dtbo ti-remoteproc:4.14.x内核:AM335X-PRU-RPROC-4-14-TI-00A0.dtbo uio是第一个,最初支持基于3.8.x的内核,我们一直在修补驱动程序,因为一直到v4.18.x(v4.19.x带来了对uio驱动程序的重大更改,所以我需要 修复...)几乎所有的例子都使用这个驱动程序(机器人等)...... TI决定uio驱动程序不适合am335x pru,因此他们一直在开发自己的驱动程序,每个驱动程序彼此不兼容: 4.4.x-ti remoteproc:最大用户是libroboticape(BeagleBone Blue),最高为v0.3.4 4.9.x-ti remoteproc:最大的用户是BeagleLogic 4.14.x-ti remoteproc:libroboticape从0.4.0 - > 1.0.x 对于4.14.x-ti remoteproc,还有一本新书正在开发中: https://markayoder.github.io/PRUCookbook/ 问候, 以上来自于谷歌翻译 以下为原文 Bummer, at least the kernel and overlay match now. So over the lifetime of the Beagle there’s been currently 4 major methods to communicate with the pru: UIO: (almost every kernel): AM335X-PRU-UIO-00A0.dtboti-remoteproc: 4.4.x kernel: AM335X-PRU-RPROC-4-4-TI-00A0.dtboti-remoteproc: 4.9.x kernel: AM335X-PRU-RPROC-4-9-TI-00A0.dtboti-remoteproc: 4.14.x kernel: AM335X-PRU-RPROC-4-14-TI-00A0.dtbouio came first, initially supported in 3.8.x based kernels, we’ve been patching the driver since all the way up to v4.18.x (v4.19.x brought in major changes to the uio driver, so i need to fix that)… Almost all examples use this driver (machinekit,etc)… TI decided the uio driver was not “proper” for the am335x pru’s so they’ve been developing their own driver, each incompatible with each other: 4.4.x-ti remoteproc: biggest user was libroboticape (BeagleBone Blue) up to v0.3.4 4.9.x-ti remoteproc: biggest user was BeagleLogic 4.14.x-ti remoteproc: libroboticape from 0.4.0 -> 1.0.x also for 4.14.x-ti remoteproc, there’s a new book in development: https://markayoder.github.io/PRUCookbook/ Regards, |
|
|
|
问题通过在/ boot / uEnv文件中包含以下行解决了问题。
### PRUSS OPTIONS uboot_overlay_pru = /lib/firmware/AM335X-PRU-PROC-4-14-TI-00A0.dtbo uboot_overlay_pru = /lib/firmware/AM335X-PRU-UIO-00A0.dtbo 还要确保/ boot / uEnv文件中列出的其他dtbo文件都不包含PRUSS的IO映射。 在Derek Molloy关于PRU映射的书中包含清单13-1中的示例是错误的。 在该dts文件中,您不能包含以下行: fragment @ 1 {//启用PRUSS target =; overlay { status =“好的”; pinctrl-names =“默认”; pinctrl-0 =; }; }; 它们将导致PRUSS映射不正确并导致分段错误。 以上来自于谷歌翻译 以下为原文 Problem Resolved by including the following lines in the /boot/uEnv file. ###PRUSS OPTIONS uboot_overlay_pru = /lib/firmware/AM335X-PRU-PROC-4-14-TI-00A0.dtbo uboot_overlay_pru = /lib/firmware/AM335X-PRU-UIO-00A0.dtbo Also make sure that none of the other dtbo files listed in the /boot/uEnv file contain the IO mapping for the PRUSS. It is an error to include the example from Listing 13-1 in Derek Molloy’s book on PRU mapping. In that dts file you must not include the following lines: fragment@1 { // Enable the PRUSS target = <&pruss>; overlay { status = “okay”; pinctrl-names = “default”; pinctrl-0 = <&pru_pru_pins>; }; }; They will cause the PRUSS mapping to be incorrect and result in a segmentation error. |
|
|
|
可悲的是,Derek目前的书与旧的3.8.x内核非常相关。
希望他现在有机会更新它,因为我们的U-Boot叠加层工作得很好。 问候, 以上来自于谷歌翻译 以下为原文 Sadly Derek’s current book is very much tied to the old 3.8.x kernel. Hopefully he will have a chance to update it now that we have things working great with U-Boot overlays. Regards, |
|
|
|
只有小组成员才能发言,加入小组>>
3481 浏览 3 评论
523浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 09:16 , Processed in 0.774153 second(s), Total 104, Slave 88 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号