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파일을 위해)

모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.