我正在研究一个嵌入式系统项目,并遇到了编译器的问题,该编译器以编程方式嵌入到Paradigm C++ IDE中.我希望能够自动化建设.
处理器是AMD186ES.我没有使用操作系统 - 只是裸机的东西.我需要从C++生成实模式16位8086机器代码.
我的谷歌搜索表明G ++可以构建这样的代码.
我的问题是:
可以配置g ++来构建这个机器代码吗?
还有其他C++编译器可以做到吗?
你最好的选择可能是OpenWatcom,其中包括一个C++编译器.早在90年代中期,我相信这是最好的C/C++编译器.几年前它是开源的.
您的芯片供应商(AMD,我猜)是否对芯片的编译器有任何指示?
如果没有,你可能可以使用一些16位DOS编译器 - 但你会遇到几个潜在的大问题:
获取不依赖于BIOS或MS-DOS的编译器库
调试
嵌入式系统的链接器通常具有在特定内存区域中定位代码的特定支持.这通常不包含在DOS的编译器中,但是您可以找到某种类型的链接器/定位器,它们可以帮助您.
一些仍然受支持并生成16位代码的编译器是:
数字火星
打开Watcom
这个谷歌搜索显示了一系列链接,用于将gcc设置为交叉编译器.为了使它能够定位除标准ELF二进制文件以外的其他东西,您可以对输出进行frig. 此链接讨论排除标准库和自定义输出格式.您可能需要做一些摆弄才能让它发挥作用.
作为替代方案,openwatcom.org有一个Watcom C编译器的开源版本,它也可以做你想要的.