BBB에서 장치 트리 오버레이를로드하는 데 문제가 있습니다. Debian Linux 8 (jessie), Kernel 4.4.17-bone13을 실행하고 있습니다.
OS는 케이프 관리자가 설치된 상태로 제공되지 않았기 때문에 여기에서 가져 왔습니다 ... 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_open () 호출을하기 전에 prussdrv 라이브러리를 다시 호출해야합니다. 이 문제의 원인이 뭔지 알려주세요.
나를위한 해결책은 이전 버전으로 돌아가는 것이었고 4.1을 시도했지만 여전히 문제가있었습니다. 그래서 OS에 모든 것이 사전 설치된 3.8로 돌아갔습니다. 이제 모든 것이 작동합니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다