필자는 phyCORE-MPC5200- 소형 보드에 MPC5200 v2.2, Core v1.4를 가지고 있습니다. DRAM 64MB, 플래시 16MB. RTOS VxWorks 6.9.왜 U-Boot (DENX)가 부팅 루프에 있고 "프로그램 검사 예외"가 발생합니까?
임베디드 시스템을 부팅 할 때 문제가 발생하며 U-Boot/uboot (DENX)가 "Program Check Exception"이라는 이미지를로드하려고 시도 할 때 부팅 루프에 머물러 있습니다.
개발하는 동안 디버깅을 위해 TFTP 서버를 사용하여 RAM에 직접 vxWorks 바이너리를로드합니다 (U-Boot 명령 : 'tftpboot 0x100000 vxWorks.bin'). 이 경우 모든 것이 잘 작동합니다. 릴리즈를 위해 순수 * .bin VxWorks 파일 (8,07MB (8.462.808 바이트) 크기)이 압축되어 U-Boot 호환 이미지 파일 (부트 로더 특정 헤더 정보 포함)로 압축되고 결과 크기가 5, 25MB (5.509.763 바이트). 이미지 파일은 압축되지 않고 RAM에로드되는 플래시에 저장됩니다 (U-Boot 명령 : 'bootm 0xff800000'). 그 후 위에서 언급 한 예외가 발생하여 루프가 재부팅됩니다 (아래 스크린 샷 참조).
준비된 이미지의 크기가 5MB 미만인 경우 U-Boot가 오류없이로드한다는 것을 이미 조사했습니다. 어쩌면 압축되지 않은 파일 크기가 문제가 될 수도 있습니다. (8메가바이트에서?)
당신이 어떤 생각을 가지고 있습니까, 어떻게이 문제가 해결 될 수 있는가?
텍스트 이미지를 게시하지 마십시오! – Olaf
bootm 명령을 사용할 때 U-Boot에서 8MB의 한계로 인해 문제가 발생했습니다. 이 아이디어를 무시하려면 어떻게해야합니까? – Chris
나는 'bootm'의 압축 해제 단계라는 것을 조사했다. TFTP (및 'cp'명령)를 통해 비 압축 바이너리와 압축 된 이미지를 플래시에 복사했습니다. 그런 다음 bootm을 사용하여 압축 된 이미지를 다시 부팅 해 보았습니다. 예상 된 크래시 및 재설정 후 RAM의 비 압축 데이터 ('bootm'기준)와 플래시의 비 압축 바이너리 데이터 ('cmp'명령 사용)를 비교할 수있었습니다. 정확히 8MB 후 데이터가 더 이상 일치하지 않습니다! 두 번째 테스트에서 'bootm'이 문제없이 부팅 할 수있는 압축되지 않은 이미지를 만들었습니다. 어떤 아이디어? – Chris