raw 파일을 bmp로 만들어주는 함수를 만들어 페도라8 에서 컴파일 한 후 결과값을 받어 보니까 올바르게 변환이 되어서 크로스 컴파일 해서 arm-linux에서 실행해 보니까 bmp 파일은 출력이 되는데 결과값이 나타나지 않습니다. (파일만 생성이 되고 볼수 없는 타입이라고 나타나더군요)
왜 그런지 이유를 고민해봐도 잘 찾을 수 없네요..
고수님들의 조언 부탁 드립니다.
BMP 파일 형식은 프로세서의 엔디안에 종속되며, x86은 리틀 엔디안이지만 ARM은 빅과 리틀 엔디안을 선택할 수 있습니다. 리틀 엔디안 모드인지 확인해 보십시오.
http://www.cs.umass.edu/~verts/cs32/endian.html
---- 절취선 ----http://blog.peremen.name
크로스 컴파일 할 때 빅 엔디안을 리틀 엔디안으로 변환하는 옵션이 있나요?
컴파일을 big/little endian으로 하는게 문제가 아니라, 해당 system에 어떤것을 지원하는지 확인해 보셔야 합니다. compiler설정은 system상태에 따라 선택해야 하는 거고요.
상황은 잘 모르겠습니다만, ARM cpu는 입력 pin중 하나를 Vcc나 Gnd로 설정해서 부팅시의 엔디안을 결정할 겁니다. 컴파일러는 해당 보드에 맞춰서 옵션을 주었기 때문에 프로그램이 동작을 하고 있겠지요..
그렇다면 문제는 BMP를 만들어내는 코드에 있을텐데.. 짐작컨데 컴파일러 문제가 아니라 big endian시스템에서 little endian용 BMP생성 코드를 가져오셨다든지, 그 반대던지, 뭐 그런 경우가 아닐까 생각됩니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
BMP 파일 형식은
BMP 파일 형식은 프로세서의 엔디안에 종속되며, x86은 리틀 엔디안이지만 ARM은 빅과 리틀 엔디안을 선택할 수 있습니다. 리틀 엔디안 모드인지 확인해 보십시오.
http://www.cs.umass.edu/~verts/cs32/endian.html
---- 절취선 ----
http://blog.peremen.name
소스를 수정해 봤는데 뭐가 문젠지 결과값이 옳지 못합니다.
크로스 컴파일 할 때 빅 엔디안을 리틀 엔디안으로 변환하는 옵션이 있나요?
고수님들의 조언 부탁 드립니다.
시스템
컴파일을 big/little endian으로 하는게 문제가 아니라,
해당 system에 어떤것을 지원하는지 확인해 보셔야 합니다.
compiler설정은 system상태에 따라 선택해야 하는 거고요.
상황은 잘
상황은 잘 모르겠습니다만,
ARM cpu는 입력 pin중 하나를 Vcc나 Gnd로 설정해서 부팅시의 엔디안을 결정할 겁니다.
컴파일러는 해당 보드에 맞춰서 옵션을 주었기 때문에 프로그램이 동작을 하고 있겠지요..
그렇다면 문제는 BMP를 만들어내는 코드에 있을텐데.. 짐작컨데 컴파일러 문제가 아니라
big endian시스템에서 little endian용 BMP생성 코드를 가져오셨다든지, 그 반대던지, 뭐 그런 경우가 아닐까 생각됩니다.
댓글 달기