科普14:说说交叉开发与软件仿真

平时,我们多数是在PC机上搞开发,开发出来的代码也是在PC上运行。如果,有甲种机和乙种机,两者的硬件与系统互不兼容,我们在甲种机上开发的程序,不能在甲种机上运行,却能在乙种机上运行,这就叫交叉开发。这种情况现在越来越普遍。

譬如,现在创客使用最多的是Arduino控制板。Arduino控制板其实也是单片机,只不过它组合了软件与硬件,并使其规范化,从而与以前的单片机相比,开发工作量大为下降,开发出来的微系统也具有可重用性也很好。单片机资源有限,直接在单片机上开发是不现实的。我们在PC机上安装一个Arduino IDE(集成开发环境),它包含一个支持面向对象的Arduino C,一个很庞大的函数库(还可按需要纳入新的库),一套辅助工具。这样开发出来的程序,在PC机上是没法运行的。因为Arduino IDE编译链接出来的是AVR机器码,AVR指令集与X86指令集完全不一样。必须上传(过去叫下载)到Arduino控制板的代码存储区,这样,以后每次Arduino控制板一上电,程序就会自动循环运行。

在交叉开发里,开发的机器叫宿主机,运行的机器叫目标机。上面这个例子,PC是宿主机,Arduino控制板是目标机。

那底层是X86指令集的PC机如何开发基于AVR指令集的代码呢?这就是软件仿真。软件仿真很重要。过去搞科研,在实验室的时间多,现在是在计算机上做仿真的时间多。以后会介绍几个林辰做的仿真。

交叉开发还有一个例子是手机的程序,也是在PC机上开发,在手机里运行。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月28日
下一篇 2021年11月28日

相关推荐