‘서명되지 않은 문자 근처’란 무엇입니까? 된 변수를 찾았습니다 unsigned char near

데이터 시트를 읽고로 정의 된 변수를 찾았습니다 unsigned char near Sample_X. 이것은 무엇이며 어떻게 다른 unsigned char Sample_X가요?



답변

여기에 지정된 MCU는 Freescale MC9C08 시리즈 이며 HC08 아키텍처의 약간 향상된 버전을 사용합니다. 이것은 8 비트 코어이며, 다른 많은 것보다 명령어가 짧고 “제로 페이지”주소에 빠르게 액세스 할 수있는 8 비트 코어입니다. 제로 페이지 주소는 16 비트가 아닌 8 비트 길이이므로이를 참조하는 명령어 는 3이 아닌 2 바이트 일 수 있으며 결과적 으로 실행 하는 데 1주기가 덜 걸립니다 .

“near”키워드는 성능 향상을 위해 컴파일러가 변수를 “제로 페이지”에 넣도록 지시합니다. this와 같이 임베디드 개발 용으로 특별히 작성된 컴파일러 는 일반적으로 언어에 대한 이러한 확장을 구현합니다 (여기서는 “C 제로 페이지 지원”이라고 함).


답변

CPU 아키텍처에 따라 다른 주소의 데이터에 액세스하기위한 다른 명령이있을 수 있습니다. 다음은 Keil 의 컴파일러 중 하나에 대한 예입니다 .

니어 액세스에는 특정 메모리 제한이 있으므로 더 짧은 명령어로 액세스 할 수있는 영역에 자주 사용되는 변수를 배치하도록 컴파일러에 힌트를 제공 할 수 있습니다 (32 비트 주소 공간에 대한 액세스는 16 비트 주소보다 큽니다). 우주). 더 작거나 빠른 코드로 변환 할 수 있습니다.


답변