繁体   English   中英

加载Beaglebone Black Kernel 4.4.17的设备树覆盖并加载PRU .bin

[英]Load device tree overlay for Beaglebone Black Kernel 4.4.17 and load PRU .bin

我无法在BBB上加载设备树覆盖。 我正在运行Debian Linux 8(jessie),内核4.4.17-bone13

该操作系统未安装Cape Manager,因此我从这里获得了它…… https://github.com/beagleboard/bb.org-overlays

我按照说明进行了设置,一切似乎都正常。 现在,我尝试加载设备树覆盖图...

root@beaglebone:~# cd /lib/firmware
root@beaglebone:/lib/firmware# dtc -O dtb -I dts -o /lib/firmware/PRU-GPIO-EXAMP                                                                                                                                                             LE-00A0.dtbo -b 0 -@ PRU-GPIO-EXAMPLE-00A0.dts
root@beaglebone:/lib/firmware# cat /sys/devices/platform/bone_capemgr/slots
 0: PF----  -1
 1: PF----  -1
 2: PF----  -1
 3: PF----  -1
root@beaglebone:/lib/firmware# sudo sh -c "echo 'PRU-GPIO-EXAMPLE-00A0' > /sys/devices/platform/bone_capemgr/slots"
root@beaglebone:/lib/firmware# 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,PRU-GPIO-EXAMPLE

到目前为止看起来不错,现在我尝试加载我的PRU程序...

root@beaglebone:/usr# cd /usr/local/test
root@beaglebone:/usr/local/test# ls
Makefile  libprussdrv.a  pasm  pruss_intc_mapping.h  prussdrv.h  testPRU  testPRU.c  testPRU_Off.bin  testPRU_Off.p  testPRU_On.bin  testPRU_On.p
root@beaglebone:/usr/local/test# ./testPRU testPRU_On.bin
prussdrv_open() failed

我几乎可以正常工作,但是却遇到了prussdrv_open()失败错误,却不知道为什么。 一切的代码都在这里... http://credentiality2.blogspot.com/2015/09/beaglebone-pru-gpio-example.html

 // If this segfaults, make sure you're executing as root.  
  prussdrv_init();  
  if (prussdrv_open(PRU_EVTOUT_0) == -1) {  
   printf("prussdrv_open() failed\n");  
   return 1;  
  }  

如果我不得不猜测我一直遵循的示例已经过时,并且有些更改。 我已经知道加载树叠加层的方式已经改变。 也许.dts文件格式已更改,或者我现在必须先调用prussdrv libarary,然后再调用prussdrv_open()。 让我知道您认为可能导致此问题的原因。

对我来说,解决方案是返回到旧版本,我尝试过4.1仍然有问题。 因此,我回到3.8,将所有内容预装在OS上。 现在一切正常!

对于登陆此处的用户:如果使用的内核> = 4.1,请不要尝试使用插槽文件动态加载设备树。 一种或另一种方式,一定会导致您的悲伤。 您应该使用u-boot覆盖,即在引导时加载覆盖。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM