도와주세요!!
글 수 15,339
2009.04.19 14:17:23 (*.130.115.19)
6711
현재 EZ-S2410을 참고하여 새로 제작한 1차 보드의 SDRAM을 16bit bus 로 설정을 바꾼것이 문제가 있을것이라고
판단하고 접근했습니다.
하지만 램 클럭설정을 강제로 주고 동작시켜 스코프로 찍어 보았더니 클럭이 잘 나타나더군요.
동작이 되고 있었다는 말이 되었습니다.
이것만 일주일정도 걸렸네요. ㅠㅜ
그래서 FAlinux 에서 디버깅용 LED를 사용하여 각 상태를 나타내는 코드를 수정하여
현재 수정된 1차보드에서 찍을 수 있는 PORT-F 의 4번,5번 핀을 각각
Port-F 4번(어셈 소스상에 led0 번) 을 ledout 출력 전용으로 사용하였고
Port-F 5번(어셈 소스상에 led1 번) 을 error_loop 출력 전용으로 사용하였습니다.
그리고 error_loop 를 사용하는 EZ-boot 상에 모든 코드를 검색하여 하나하나 주석처리 해가면서
상태를 스코프로 찍어보았습니다.
(모두 주석처리하고 한개씩만 주석을 풀고 테스트하였습니다)
그 결과 start.S 파일에서 error_loop 로 빠지는 부분들이 나왔습니다.
아래는 start.S 코드의 마지막 부분입니다.
에러 루프로 빠지는 부분들은 (에러루프상태빠짐) 라고 표시하겠습니다.
부트코드에서는 주석의 설명은 읽었지만 이 부분들에서 에러로 빠질 시 어떻게 처리해야 할 지
모르겟습니다. 조언을 부탁드립니다.
***** 소스파일 view ***** (start.S 코드의 마지막 부분)
// 이곳으로는 진행되지 않는다.
ldr r5, ='E'
b error_loop
//------------------------------------------------------------------------------------------------
//
// Reset 이외의 인터럽트 처리
//------------------------------------------------------------------------------------------------
data_abort:
ldr r5, ='D'
b error_loop
undefined_instruction:
ldr r5, ='I'
b error_loop //(에러루프상태빠짐)
software_interrupt:
ldr r5, ='S'
b error_loop //(에러루프상태빠짐)
prefetch_abort:
ldr r5, ='P'
b error_loop //(에러루프상태빠짐)
not_used:
ldr r5, ='U'
b error_loop //(에러루프상태빠짐)
IRQ:
ldr r5, ='I'
b error_loop //(에러루프상태빠짐)
FIQ:
ldr r5, ='F'
b error_loop //(에러루프상태빠짐)