ROM 컨텐츠 크기를 변수에 저장하기

기술노트 52791

아키텍처:

ARM

컴포넌트:

linker

업데이트:

2021-06-25 오전 10:35

소개

시작할 프로그램 소프트웨어의 CRC를 계산하는 부트로더가 있습니다. 내 부트로더는 프로그램의 시작 주소를 알고 있지만 프로그램의 크기(CRC 알고리즘에 사용)도 필요합니다.

체크섬-시작과 체크섬-끝 마커를 사용하는 기술 노트 62709 (IELFTOOL Checksum - Placing the checksum)의 "대안 방법"을 적용했습니다.

플래시의 ROM 컨텐츠에 대한 크기를 ROM_length_used 섹션에 저장하고 싶습니다...

define block ROM_CONTENT with fixed order
{
 readonly section checksum,
 readonly section ROM_length_used,
 readonly section checksum_start_mark,
 readonly,
 readonly section checksum_end_mark
};

place in ROM_region { block ROM_CONTENT };

C를 사용하여 해결

#pragma section = "ROM_CONTENT"
const size_t ROM_CONTENT_size @ "ROM_length_used" = __section_size("ROM_CONTENT");

어셈블러를 사용하여 해결

SECTION ROM_length_used:CODE:NOROOT(2)

EXTERN ROM_CONTENT$$Length

DATA

DC32 ROM_CONTENT$$Length ; Number of RO bytes

END

예제

다음 링크에서 예제 프로젝트를 참고하세요: Example project (TN 52791).zip

 

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

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