#define G_STR_TAG (*(volatile struct g_str_tag *) 0xAAAAA000UL) typedef unsigned int uint32_t; typedef volatile uint32_t vuint32_t; struct g_str_tag { union { vuint32_t Reset; struct { vuint32_t CLOSE:1; } AA; } TMP; }; void testMe (void) { while(0 == (G_STR_TAG.TMP.AA.CLOSE)) { ; } }
위 testMe() 함수에 대한 테스트를 진행하기 위해서는 아래의 가상 메모리 설정 추가와 while() 문에서 사용하신 조건
(*(volatile struct g_str_tag *) 0xAAAAA000UL).TMP.AA.CLOSE 에 대한 입력을 하시면 될 것 같습니다.
** 가상 메모리 설정 기능은, 실제 대상 PC에 설치된 Visual Studio 혹은 GCC 컴파일러를 사용하는 호스트용 툴체인에서는 적용되지 않으며,
호스트용 툴체인을 변환 툴체인으로 사용하는 타깃 툴체인에서만 적용됩니다.
1. 가상 메모리 설정 방법
창 - 환경설정 - 테스트 - 가상 메모리 주소 메뉴에서 [추가] 버튼을 이용해 사용하신 주소 범위를 입력한다.
가상 메모리 주소는 작은 단위로 등록하는게 좋습니다. Windows(OS) 메모리 상태에 따라 큰 범위의 메모리는 등록이 안될 수도 있습니다.
2. 프로젝트 특성 - 테스트 - 가상 메모리 주소 메뉴에서 위 입력한 가상 주소를 선택한다.
3. testMe_test 의 테스트 정보 탭에서 함수 호출 전 코드에 아래와 같이 해당 변수에 값을 받을 수 있는 CS_UINT_INPUT 매크로를
사용하여 값을 입력합니다.
(*(volatile struct g_str_tag *) 0xAAAAA000UL).TMP.AA.CLOSE = CS_UINT_INPUT(unsigned int,"G_STR_TAG.TMP.AA.CLOSE" );
4. 테스트 케이스에 추가한 입력 변수 G_STR_TAG.TMP.AA.CLOSE 에 0 과 1을 각각 입력 한다.
5. 실행 - [재빌드 후 유닛테스트 실행] 버튼을 클릭하여 다시 수행한다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.