![Linux 커널 make 명령에서 LOADADDR=0x20008000은 무엇을 의미합니까?](https://linux55.com/image/197366/Linux%20%EC%BB%A4%EB%84%90%20make%20%EB%AA%85%EB%A0%B9%EC%97%90%EC%84%9C%20LOADADDR%3D0x20008000%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9D%84%20%EC%9D%98%EB%AF%B8%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
나는 u-boot를 배우고 있습니다. qemu 모델을 사용하면 (qemu를 사용하여) 원하는 메모리 위치에 이미지를 로드하고 booti addr
명령을 사용하여 커널 부팅을 실행할 수 있습니다. 아시다시피 arm64에는 uImage가 없습니다.
그렇다면 arm(32비트)용 Linux 커널을 빌드할 때 이는 무엇을 의미합니까 make LOADADDR=0x20008000 uImage
? 어쨌든, u-boot 쉘을 사용하여 SD 카드나 네트워크에서 uImage를 원하는 곳 어디든 로드할 수 있습니다. 그렇다면 이는 명령을 실행할 때 bootm
u-boot 프로그램이 uImage의 커널 이미지를 0x20008000으로 재배치한다는 의미입니까? 이 정보를 찾기가 어렵습니다.
답변1
이 LOADADDR
매개변수는 uImage 페이로드 자체가 메모리에 배치되는 위치입니다. 그 안에 싸인 zImage는 (보통) 필요에 따라 스스로 위치를 변경합니다.