메모리 크기에 대한 전 처리기 상수가 있습니까


13

사용 가능한 플래시 / 프로그램 공간에 따라 컴파일에서 일부 코드를 제외하고 싶습니다. 내가 지원하는 라이브러리의 데모 코드에서 사용하십시오. 현재 솔루션은 #ifdef 프로세서 유형을 사용하는 것입니다. 그러나 나는 더 일반적이기를 원하며 다양한 칩을 모두 지정할 필요는 없습니다. 사용 가능한 크기를 나타내는 전 처리기 상수가 있으면 좋을 것입니다.

gcc 및 avr-gcc에 능숙하지 않은 곳에서 힙의 시작과 끝을 정의하는 상수와 비슷한 상수를 찾을 수 있습니다.

사례 예. UNO와 Leo 모두 32K의 플래시를 사용한다는 것입니다. 그러나 Leo의 핵심 라이브러리는 USB 지원을 위해 4K를 사용하므로 28K 만 사용할 수 있습니다. 내 라이브러리의 데모는 UNO에서 거의 끝났으며 사용 가능한 프로그램 공간에 따라 자동으로 정리하고 싶습니다.


나는 이것을하는 프로그램을 보았지만 찾을 수 없다
TheDoctor

답변:


10

io__.h마이크로 컨트롤러 용 파일을 찾으십시오 ( 리눅스에서 /usr/lib/avr/include/avr, Windows에서는 다소 유사한 위치에 있음).

라고 표시된 부분으로 스크롤하십시오 /* Constants */. 흥미있는 매크로가 여기에 정의 FLASHEND되어 있습니다. 예를 들어 다음과 같이 사용할 수 있습니다.

#if FLASHEND > 0x8000
/* Include some extra code when sufficient flash is available. */

#endif
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.