2016-08-20 3 views
2

BBB에 장치 트리 오버레이를로드하는 데 문제가 있습니다. 나는 https://github.com/beagleboard/bb.org-overlaysBeaglebone Black Kernel 4.4.17의 장치 트리 오버레이를로드하고 PRU를로드합니다.

난에 지시에 따라 ... 데비안 리눅스 8 (제시), 커널 4.4.17-bone13이

OS가 그래서 나는 여기에서 그것을 가지고 설치 케이프 매니저와 함께 제공되지 않은 실행 해요 설치를하면 모든 것이 잘된 것처럼 보입니다. 지금은 내가 거의 모든 작업있어

[email protected]:/usr# cd /usr/local/test 
[email protected]:/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 
[email protected]:/usr/local/test# ./testPRU testPRU_On.bin 
prussdrv_open() failed 

... 지금까지이 좋은 지금은 내 PRU 프로그램을로드하려고 보이는

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

... 내 장치 트리 오버레이를로드하려고해야하지만 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 libarary를 다시 호출해야합니다. 당신이 생각할 수있는 일이 무엇인지 알려주세요.

답변

0

나를위한 해결책은 이전 버전으로 돌아가는 것이 었습니다. 4.1에는 여전히 문제가있었습니다. 그래서 3.8로 돌아가서 모든 것이 OS에 미리 설치되었습니다. 모든 것이 지금 작동 중입니다!