AT91Sam9 ARM 컨트롤러 용 AT91Bootloader가 있습니다. 여분의 하드웨어 초기화를 추가해야하지만 .bin 파일 만 컴파일했습니다. 나는 메모리에 빈 파일을로드하고 전화를 시도 :암 (베어 메탈) : 이진 파일을 함수로 호출합니다.
((void (*)())0x00005000)();
그러나이 어떤 결과를하지 않았습니다. 가능한 한 어셈블러를 적게 사용하십시오. 전에 어셈블러에 소개 된 적이 있지만 ARM 어셈블러가 공존하기 때문에 ARM 어셈블러를 이해할 수 없습니다. 부트 로더 중간에서 전화를 걸고 bin 파일 (예를 들어 0x00005000 같은 메모리 섹터에 있음)을 실행 한 다음 부트 로더로 돌아가 자신의 코드를 계속 실행할 수 있습니까?
정보가 너무 작습니다.Btw, 당신이 호출하는 함수가 컴파일되지 않고 0x5000 주소에서 실행되도록 링크되어 있다면, 위의 코드는 작동하지 않을 것입니다. (나는 그 바이너리가 위치 독립적 인 코드만을 포함한다고 생각하지 않습니다.) –