eCos需要Synthetic虚拟目标板的理由
2014-02-19 10:47
267 查看
mingdu.zheng <at> gmail <dot> com
/article/8120085.html
eCos提供了Synth虚拟目标板(Synthetic Target),为什么要使用虚拟目标板呢?
eCos是非常优秀的嵌入式操作系统,如果希望学习eCos但是又没有开发板或其它的硬件平台, 那么可以使用Synth虚拟目标板,运行以Synth为目标板的eCos仅需要一台安装Linux系统的PC机, 而不需要开发板或其它特别的硬件电路。如果平常使用的是Windows系统, 那么可以通过在Windows系统下安装Linux虚拟机的方式运行Linux系统。 Synth无疑为学习eCos提供了一条非常廉价和便捷的道路。
硬件无关代码从本质上可以运行在任何平台上,因此在真实硬件上运行还是在Synth虚拟目标板运行并不妨碍硬件无关代码的移植。 例如,eCos官方版本没有提供FTP服务器组件,但是RTEMS提供了FTP服务器组件,希望将RTEMS的FTP服务器组件移植到eCos中,那么就可以在Synth虚拟目标下完成。 或许eCos开发团队在移植硬件无关组件的时候也是这样做的?在Synth虚拟目标板下移植软件显然比在真实的开发板环境中移植软件更便捷, 不需要准备硬件电路板,不需要烧录redboot,不用连接串口,不用每次编译完成通过串口下载程序。
随着社会分工地深入,即使是嵌入式系统开发也已经分化成硬件开发小组和软件开发小组, 在开发周期比较紧张的项目中,需要软件和硬件的并行开发。 使用Synth虚拟目标板,即使是在硬件项目还未启动前就可以启动软件项目, 软件开发小组专注于软件功能的实现而不必被恼人的硬件bug困扰, 只需在硬件组提交了完全可用的硬件平台后对eCos系统和应用进行验证。 Synth虚拟目标板的I/O辅助进程使用TCL脚本语言实现,这使得扩展I/O辅助进程非常容易, 通过扩展I/O辅助进程可以使Synth虚拟目标板的功能特性与最终硬件平台的功能特性非常接近,
从理论上讲,eCos应用是与硬件不直接相关的,如果两个平台的功能特性一致, 那么从一个平台移到另一个平台,仅需要更换eCos库然后重新编译代码。
将Synth作为目标板的eCos应用是一个普通的Linux程序, 因此凡是可以应用在Linux应用程序测试的工具都可以应用在eCos应用上, 嵌入式软件的测试工具相对比较有限,特别是自动化测试工具, 使用Synth虚拟目标板之后,Linux上的测试工具也是eCos测试工具,这大大扩充了工具包内容。
Synth的作用与Android开发环境提供的手机模拟器相类似。
eCos通过硬件抽象层(HAL)隔离硬件相关代码和硬件无关代码, 与硬件相关的代码仅包含HAL和驱动程序,除此之外的其它eCos组件或者eCos应用都是与硬件无关的, 这种机制不仅让eCos的开发和移植变得简单,而且可以使用软件来仿真eCos的HAL和设备驱动。
eCos的Synth虚拟目标板使用Linux内核提供的系统调用和额外的I/O辅助进程仿真HAL和设备驱动, 选择Synth作为eCos的目标平台(Target),可以将eCos编译成为Linux下的一个普通程序, 然后可以在Linux下运行该程序。
阅读参考资料了解更多关于Synth的内容。
《XXXVIII.
eCos Synthetic Target》:官方参考手册。
《eCos的Linux
Synthetic Target简介》:官方参考手册的部分翻译。
《虚拟实验室eCos开发环境的配置
(Linux)》:使用基于QEMU的模拟器运行eCos。
VirtualBox:虚拟机软件。
Xubuntu:易于使用又节省资源的Linux发行版。
原文见:/article/8120085.html
/article/8120085.html
eCos提供了Synth虚拟目标板(Synthetic Target),为什么要使用虚拟目标板呢?
1. 在没有硬件的条件下学习eCos
eCos是非常优秀的嵌入式操作系统,如果希望学习eCos但是又没有开发板或其它的硬件平台, 那么可以使用Synth虚拟目标板,运行以Synth为目标板的eCos仅需要一台安装Linux系统的PC机, 而不需要开发板或其它特别的硬件电路。如果平常使用的是Windows系统, 那么可以通过在Windows系统下安装Linux虚拟机的方式运行Linux系统。 Synth无疑为学习eCos提供了一条非常廉价和便捷的道路。
2. 移植硬件无关代码
硬件无关代码从本质上可以运行在任何平台上,因此在真实硬件上运行还是在Synth虚拟目标板运行并不妨碍硬件无关代码的移植。 例如,eCos官方版本没有提供FTP服务器组件,但是RTEMS提供了FTP服务器组件,希望将RTEMS的FTP服务器组件移植到eCos中,那么就可以在Synth虚拟目标下完成。 或许eCos开发团队在移植硬件无关组件的时候也是这样做的?在Synth虚拟目标板下移植软件显然比在真实的开发板环境中移植软件更便捷, 不需要准备硬件电路板,不需要烧录redboot,不用连接串口,不用每次编译完成通过串口下载程序。
3. 软硬件并行开发
随着社会分工地深入,即使是嵌入式系统开发也已经分化成硬件开发小组和软件开发小组, 在开发周期比较紧张的项目中,需要软件和硬件的并行开发。 使用Synth虚拟目标板,即使是在硬件项目还未启动前就可以启动软件项目, 软件开发小组专注于软件功能的实现而不必被恼人的硬件bug困扰, 只需在硬件组提交了完全可用的硬件平台后对eCos系统和应用进行验证。 Synth虚拟目标板的I/O辅助进程使用TCL脚本语言实现,这使得扩展I/O辅助进程非常容易, 通过扩展I/O辅助进程可以使Synth虚拟目标板的功能特性与最终硬件平台的功能特性非常接近,从理论上讲,eCos应用是与硬件不直接相关的,如果两个平台的功能特性一致, 那么从一个平台移到另一个平台,仅需要更换eCos库然后重新编译代码。
4. 使用Linux工具进行自动化测试
将Synth作为目标板的eCos应用是一个普通的Linux程序, 因此凡是可以应用在Linux应用程序测试的工具都可以应用在eCos应用上, 嵌入式软件的测试工具相对比较有限,特别是自动化测试工具, 使用Synth虚拟目标板之后,Linux上的测试工具也是eCos测试工具,这大大扩充了工具包内容。
5. 关于Synth虚拟目标板
Synth的作用与Android开发环境提供的手机模拟器相类似。eCos通过硬件抽象层(HAL)隔离硬件相关代码和硬件无关代码, 与硬件相关的代码仅包含HAL和驱动程序,除此之外的其它eCos组件或者eCos应用都是与硬件无关的, 这种机制不仅让eCos的开发和移植变得简单,而且可以使用软件来仿真eCos的HAL和设备驱动。
eCos的Synth虚拟目标板使用Linux内核提供的系统调用和额外的I/O辅助进程仿真HAL和设备驱动, 选择Synth作为eCos的目标平台(Target),可以将eCos编译成为Linux下的一个普通程序, 然后可以在Linux下运行该程序。
阅读参考资料了解更多关于Synth的内容。
6. 参考资料
《XXXVIII.eCos Synthetic Target》:官方参考手册。
《eCos的Linux
Synthetic Target简介》:官方参考手册的部分翻译。
《虚拟实验室eCos开发环境的配置
(Linux)》:使用基于QEMU的模拟器运行eCos。
VirtualBox:虚拟机软件。
Xubuntu:易于使用又节省资源的Linux发行版。
原文见:/article/8120085.html
相关文章推荐
- eCos需要Synthetic虚拟目标板的理由
- SQL Server : 升级到SQL Server 2008,也许只需要一个理由
- Azure Web应用中设置静态虚拟目录的方法(比如部署Django需要用到)
- 软件工程师需要数学的真正理由
- 每个程序员都需要学习 JavaScript 的7个理由
- 在JXTA应用中需要创建对等点组的理由
- 为什么你需要辞职了?——辞职的十大理由
- 用 ubuntu 做Linux/eCos嵌入式开发环境需要安装的软件列表
- 企业需要部署虚拟化的理由
- 尚未配置为Web项目News指定的本地IIS URL HTTP://localhost:…… .要打开此项目,需要配置虚拟目录……三种解决方案,完美解决
- VPM虚拟外围器件的应用系列说明 之二 需要下载或参考的资料下载地址
- 每个程序员都需要学习 JavaScript 的7个理由
- 目标板挂载NFS时 需要nolock参数
- 坚强需要理由吗?
- Win8系统需要设置虚拟内存吗?Win8虚拟内存设置多少合适?
- 你的网站需要针对移动端优化的10个理由
- 毕业一年的员工跳槽需要理由吗? 推荐
- 虚拟主机需要备案吗?
- C++ 虚函数、多态、为什么需要虚拟析构函数
- vs打开项目出现“尚未配置为Web项目XXXX指定的本地IIS URL HTTP://localhost:…… .要打开此项目,需要配置虚拟目录……”提示