2010-01-28 1 views
2

ARM 개발에 대해 많이 알지 못한다는 사실을 인정할 것입니다. 따라서 여기에 잘못된 정보가있을 것입니다.Visual Studio ARM 어셈블러에서 OS가 필요없는 바이너리를 생성 할 수 있습니까?

Visual Studio에는 ARM 어셈블러 (armasm.exe)가 포함되어 있습니다. VS에 기본적으로 포함 된 도구를 사용하기 때문에 매우 편리합니다. 또한 ARM 어셈블러에 번들로 제공되는 ARM 어셈블러를 지불하는 데 너무 부담스럽지 않습니다. C 컴파일러는 다른 회사에서 사용하지 않을 것입니다.

필자가 생각한 바에는 금속에서 실행되는 ARM 바이너리가 ELF 또는 PE가 아닌 순수한 바이너리 형식이어야한다는 것입니다. ARMASM은 운영 체제없이 실행할 수있는 바이너리를 출력 할 수 있습니까? ARMASM에 대한 MSDN 설명서는 해당 유형의 정보와 관련하여 부족한 것으로 보입니다.

그렇지 않은 경우 매크로 지원을 제공하는 무료 ARM 어셈블러를 추천 할 수 있으며 무리한 번들로 제공되지는 않습니까?

답변

2

어셈블러는 객체 파일을 생성합니다. 실행 파일 인 최종 파일을 생성하는 것은 링커의 몫입니다. Microsoft는 PE 형식 실행 파일 (COFF 변형 인 경우)을 생성하는 일반적인 링커를 거의 사용합니다. Offhand, MS-COFF 형식의 오브젝트 파일을 가져 와서 순수한 바이너리 출력 파일을 생성하는 링커/로케이터에 대해서는 알지 못합니다. (단 하나도 존재하지 않는다는 의미는 아닙니다.

또한 베어 메탈에서 실행하는 것은 파일을 ROM의 일부 변형으로 굽는 것을 의미합니다. 즉, 순수한 바이너리 출력 파일이 정말로 필요 없다는 의미입니다. 실제로 필요한 것은 ROM 버너에 적합한 파일입니다. 보통 Motorola S-record 또는 Intel 16 진수 형식을 의미합니다 (상당량의 ROM 버너가 두 가지를 모두 수용합니다).

나는

+0

내가 잊고 정말 바보 느낌 ... 그런 당신에게 "최종 답변"을 제공하지 않지만, 적어도 당신에게 더 많은 관련 정보를 얻기 위해 인터넷 검색에 적합한 몇 가지 용어를 제공해야합니다 알고 링커가 최종 출력을 생성합니다. : P 정보를 제공해 주셔서 감사합니다! 나는 내가 무엇을 찾고 있는지를 알기 위해 다른 것을 파낼 수 있는지 알게 될 것이다. –

관련 문제