C-RUN - 검사되지 않은 코드 (경계검사)
기술노트 93670
아키텍처:
ARM
컴포넌트:
debugger
업데이트:
2021-05-06 오후 3:17
소개
종종 전체 응용프로그램에 대한 경계 검사를 실시할 수 없습니다, 예를 들어 응용프로그램의 일부 기능이 빌드 된 외부 라이브러리 이거나, 어셈블러에 의해 작성된 경우입니다. 이러한 경우 C-RUN에서 에러를 발생시킵니다.
Action
#pragma default_no_bounds"는 전체 함수에 대해 #pragma no_bounds를 적용하는데 사용할 수 있습니다. 검사되지 않은 코드를 위해 헤더파일에 다음과 같이 인터페이스를 정의할 수 있습니다:
#pragma default_no_bounds=on
#include "XXXX_RTOS.h" /* no pointer bounds are passed to functions declared for the XXXX_RTOS */
#pragma default_no_bounds=off
CMSIS를 위한 대체 해결책
계측된(instrumented) 코드와 계측되지 않은(non-instrumented)코드 계층 사이에 소스 코드를 작성할 수 있습니다. IAR Embedded Workbench for ARM 설치에 파일이 포함됩니다.
arm\src\lib\crun\cmsis_dsplib.as.c
이 파일은 CMSIS 프로젝트에 포함되어야 합니다. 위 파일은 --runtime_checking bounds와 함께 컴파일 되어야하며, "Instrumentation > Track pointer bounds > Check accesses"가 선택되어야 합니다. (최소한 cmsis_dsplib.as.c파일을 위해)
모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.