2013-02-14 4 views
0

eeprom과 함께 사용하기 위해 고수준 프로그래밍 언어를 컴파일 할 수 있는지 알아야합니다. 나는 컴파일 된 바이너리에서 헤더를 제거하는 것이 가능하다는 것을 알고 있지만 주소가 어떻게 영향을 미치는지 확신 할 수 없다.eeprom에서 사용할 고급 언어를 컴파일 할 수 있습니까?

"이 질문에"표시하지 마십시오. 나는 어리석은 질문과 질문이 아닌 무언가의 차이를 말할 수없는 사람들로부터이 사이트에 많은 구절을 얻는다.

eeprom에서 사용할 고급 언어를 컴파일 할 수 있습니까?

(EDIT) 내 명소에는 Winbond 27C512 EEPROM이 있습니다.

+0

이론 상으로는 아마도 그렇습니다. 그러나 실용적인 견지에서 대답은 종종 아니오 (즉, 언어가 ROMable 코드로 컴파일 될 수 있지만 그렇게하도록 설계된 컴파일러가 존재하지 않음) 일 수 있습니다. –

답변

0

문제의 프로세서 용 C 컴파일러를 사용하는 경우 C 코드를 EEPROM에 배치 할 수 있도록 컴파일 할 수있는 이유가 없습니다 (그러나 임베디드 프로그래밍에서는 평소와 같이 아무 것도 사용할 수 없습니다 libc 함수를 직접 구현해야하기 때문에). C는 어셈블리 코드와도 잘 호환되므로 어셈블리로 부트 스트랩 루틴을 작성하여 C로 작성된 상위 코드로 전환하기 전에 작성할 수 있습니다.

일반적인 C 링커 (예 : GNU ldd)는 스크립트를 사용하여 주소를 생성 할 수 있습니다 귀하의 EEPROM과 호환; 이는 임베디드 개발 및 기타 "베어 메탈 (bare-metal)"어플리케이션에 대한 공통 요구 사항입니다. objcopy을 사용하여 여러 가지 형식으로 컴파일 된 바이너리를 포맷 할 수 있습니다. GNU toolchain을 사용하면 제한된 C++ 하위 세트로이 작업을 수행 할 수 있습니다.

임베디드에 필요한 저수준 구조 (예 : 직접 포인터 주소 지정)에 대한 지원이있는 언어가 거의 없기 때문에 널리 사용되는 많은 고급 언어로는이 작업을 수행 할 수 없습니다. 개발.