#pragma pack(1)
typedef struct TEST_STRUCTURE {
/* Byte 0 */
UINT8 uiSEQ;
/* Byte 1 */
BIT1 biCharDir :1;
UINT32 uiReserved1 :7;
/* Byte 2 */
UINT8 uiPulseCount_Ch1;
/* Byte 3 */
UINT8 uiPulseCount_Ch2;
/* Byte 4~7 */
UINT32 uiPulseCount_Access;
/* Byte 8 */
UINT32 uiSwVer :6;
UINT32 uiStatus :2;
/* Byte 9~11 */
UINT16 uiSizeIndex;
UINT8 uiReserved2;
/* Byte 12~15 */
UINT32 uiC;
};
위와 같이 #pragma pack
지시문이 포함되어 있는 코드의 경우, Controller Tester에서의 구조체의 사이즈가 원본 프로그램과는 다르게 표시될 수 있습니다.
위 지시문은 구조체 메모리 정렬 옵션인데, 컴파일러 별로 pack 지원 여부 및 동작 방식이 다를 수 있기 때문입니다.
따라서, Controller Tester에서 변환 툴체인을 사용하는 경우 원본 프로그램 빌드할 때 사용한 컴파일러와 pack 동작 방식이 일치하는 visual studio 컴파일러 혹은 gcc 컴파일러를 선택하여 수행하면 위 문제를 해결할 수 있습니다.
Need more help with this?
Don’t hesitate to contact us here.