잊어먹을까봐 저장하는 놈들/programming
byte packing vs. memory aligning at embed system
muninn
2009. 4. 29. 00:29
bitmap file을 write하기 위하여 file header를 정의해야 하는데 information size는 10byte. 물론 그냥 structure를 선언하여 사용하면 자동으로 4byte algine 되어서 10byte를 맞추지 못한다. 이런 경우를 위하여 byte packing을 써서, header를 write하기 쉽게 하는 방법을 사용한다. 그라나, byte packing이 embed에서는 문제를 야기시민다.
Embed system(M*)에서 4byte로 align 되지 않으므녀 memory mis align으로 인한 bus error가 발생한다.
이를 위하여 header를 변경하여 4byte algin이 되도록 변경 후, 실제 header를 write하는 과정에서 살짝 mod 하여 문제를 회피하였다.
TODO:: structure를 사용하여 위와 같은 문제가 발생하였고, union을 쓴다면 쉽게 처리 가능했을가?
TODO:: 제약을 받는 시스템의 종류는?
Embed system(M*)에서 4byte로 align 되지 않으므녀 memory mis align으로 인한 bus error가 발생한다.
이를 위하여 header를 변경하여 4byte algin이 되도록 변경 후, 실제 header를 write하는 과정에서 살짝 mod 하여 문제를 회피하였다.
TODO:: structure를 사용하여 위와 같은 문제가 발생하였고, union을 쓴다면 쉽게 처리 가능했을가?
TODO:: 제약을 받는 시스템의 종류는?