나는 베어 메탈 멀티 코어 예제를 작성했습니다.
코드, 회로도는 여기에 있습니다-https: //github.com/jeffreyantony/multipi/tree/master/Example_01
이 예에서는 3 개의 LED가 라즈베리 Pi의 GPIO 핀에 연결되어 있습니다. Raspberry Pi 2에는 총 4 개의 코어가 있습니다. 각 코어에는 해당 LED가 깜박이도록 지정되어 있습니다.
코어 1의 경우 0x4000009C 코어 2의 경우 0x400000AC 코어 3의 경우 0x400000BC 각 코어에서 실행할 코드의 주소를 다음 주소에 썼습니다.
코드를 컴파일 한 후 코어 1에 할당 된 LED 만 깜박입니다 (이 예에 따라 노란색 LED). 다른 사람들은 그렇지 않습니다.
이는 다른 LED가 깜박이지 않기 때문에 코어 2 및 3의 코드가 실행되고 있지 않음을 의미합니다. 또한 모든 코어를 시작한 후 코드가 실행되지 않는 것을 발견했습니다. 즉 core0_submain ()-이 함수는 Raspberry Pi의 ACT LED를 깜박 여야합니다.
누구든지 문제가 무엇인지 알려 주실 수 있습니까? 4 개의 코어가 모두 동일한 GPIO 레지스터에 쓰려고 시도하고 쓰기에서 코어 1 만 승리하기 때문입니까?
" attribute ((naked));"를 추가하려고했습니다 . core0_submain ()의 경우 사용되지 않았습니다.
https://launchpad.net/gcc-arm-embedded 에서 툴체인을 사용하고 있습니다
다시 한번 코드-https: //github.com/jeffreyantony/multipi/blob/master/Example_01/main.c
makefile- https : //github.com/jeffreyantony/multipi/blob/master/Example_01/Makefile
2015 년 10 월 20 일 업데이트 : JTAG에 대한 지원을 추가했습니다. 그러나 디버그 인터페이스를 성공적으로 가져 오지 못했습니다 .
2015 년 10 월 25 일 : 문제가 해결되었습니다. 답을보십시오.