我必须承认,我对ARM开发所知不多,所以我可能在这里的信息是错误的。
Visual Studio附带了一个ARM汇编程序(armasm.exe),这非常方便,因为我使用VS中包含的工具来做基本上所有的事情,而且我也不太愿意花钱购买一个ARM汇编程序,它与我永远不会从其他公司使用的C编译器捆绑在一起。
现在,我的理解是,在金属上运行的ARM二进制文件需要是纯二进制格式,而不是ELF或PE之类的格式。ARMASM是否能够输出可以在没有操作系统的情况下运行的二进制文件?ARMASM的MSDN文档似乎缺少这类信息。
如果没有,你能推荐一个免费的ARM汇编器,它提供宏支持,并且不会捆绑一堆额外的绒毛吗?
发布于 2010-01-28 13:55:13
汇编程序只生成目标文件。由链接器生成最终的可执行文件。我非常肯定微软使用了他们常用的链接器,它会生成PE格式的可执行文件(如果你关心的话,这是COFF的一个变体)。顺便说一下,我不知道有哪种链接器/定位器可以接受MS-COFF格式的对象文件并生成纯二进制输出文件(尽管这并不意味着它不存在--我从未真正寻找过它)。
还要注意,在裸机上运行意味着将文件刻录到ROM的某个变体中。这意味着您实际上不需要纯二进制输出文件--您真正需要的是一个适合ROM刻录机的文件。这通常意味着摩托罗拉S记录或英特尔十六进制格式(相当多的ROM刻录机接受这两种格式)。
我知道这不会给你一个“最终答案”,但它至少应该给你一些适合谷歌搜索的术语,以获得更多相关信息……
https://stackoverflow.com/questions/2152540
复制相似问题