컥.. 이런이런.. 한참을 헤맨끝에 문득 떠오른 생각...

"음... 혹시 빌드 옵션에서 본 call 방식때문에 그런가.. ㅡ_ㅡ;;;"

빌드 옵션에 들어가보니 near call/near data인가??? 머 이걸로 되어있었다.
MP3코드가 좀 길다보니 near call은 안되는 것도 몇개 있겠다 싶어서 far call/data로
수정하고 링크했더니 링크가 되공.. ㅡ_ㅡ;;;
머 이제 보드에 MP3 데이터를 올려야 하니, 내가만든 C55용 툴을 개조해서 C67용으
로 수정하고 메모리에 올려서 테스트 하는데,
얼래... 계속 MP3 Frame이 잘못됬다는 에러가 나네.. ㅡ_ㅡ;;;
산넘어 산이라고, 것참 만만한게 아니구만 쩝쩝.

죽어라 삽질끝에, 디버깅하다가 데이터가 이상해지는 걸 발견... 함수에서 넘겨받은
파라메터의 값이 실행도중에 바뀌는 것이다. 역 어셈해봐도 딱히 이거다 짐작가는건
없고... 근데 웃기는건 그 함수에서 다른 함수로 파라메터를 넘겨주면 넘겨받은 함수
의 파라메터는 변하지 않은 정상적인 값으로 나옴.

음냥, 결국 C67의 디버그는 못믿겠다는 결론에 봉착하고 메모리를 살피던 도중, 올라
간 메모리가 먼가 이상함을 발견했다.
자세히 들여다 보니, 헉... C55는 데이터를 Word 단위로 받기때문에 C67도 그런줄
알고 Word 단위로 데이터를 만들어서 CCS로 로딩했더니, 이게 실은 Dword로 읽어
들여 상위를 모두 0x0000으로 체웠던것이다.
그러니 프레임 에러가 날 수 밖에.. ㅡ_ㅡ;;;

툴 수정후에 다시 로딩해서 실행하니, 프레임 에러는 없음.
으으... 토하겠다 ㅡㅠㅡ;;;;
머가 이렇노..

+ Recent posts