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
모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.