victory for prepared
分类: LINUX
2015-07-15 15:03:37
为什么要进行嵌入式开发?每个产品都有不同的需求,例如监视器需要的是图像处理与网络通讯为主,MP3需要的是音乐播放。比较合乎常理的做法是,需要什么我就提供什么。例如MP3需要存储音乐的存储器,耳机接口,运算使用的cpu,解码芯片,显示屏,显示屏驱动芯片,中央处理器,输入接口。当然电脑也可以实现音乐播放功能,而且要强大的多!我说了强大,其实意思是指电脑除了可以播放音乐外还可以干别的东西,比如放视频,打游戏。MP3只是实现了电脑众多的功能之一。也可以说电脑是许多像MP3这样的功能组合而成的庞大容器。可以发现许多的电子产品都有共性,他们都需要CPU,显示器,电源,网络通信等。我对嵌入式开发的认知程度是量体裁衣,实现资源的高效配置。如果资源丰富的话,完全可以使用一台电脑加软件的方法满足我们的需求。嵌入式就是把我们不需要却要占用资源的部分去除,只留下我们需要的部分。资源不仅指硬件空间,也指占用的内存以及cpu的时间以及功耗。
为什么嵌入式的开发环境和软件开发有所区别?计算机软件开发的编译和运行使用的是同一种机器指令系统。嵌入式开发通常是在自己的电脑上写别人设备上的程序,例如手机开发。手机开发不叫嵌入式开发的原因是没有进行系统层面的修剪,所进行的工作是系统层面之上的工作。嵌入式开发的感觉就像是做衣服,衣服的制作是在服装厂,有很多庞大的织布机,印染机器,缝纫机,但是拿到衣服的人看到只是自己喜欢的漂亮的衣服。这个工厂就是我们开发嵌入式系统的电脑,衣服就是我们的产品。用户拿到产品时是看不到编译,链接一系列复杂的工序,他们看到的是精简的可以使用的执行文件。修剪不仅是硬件上的,也是软件上的。
自然加工我们的产品需要工作环境。使用通用计算机来搭建我们的开发环境是极好的了,原因可能就是省钱。在任何操作系统下都可以进行交叉编译,只要有相应的编译器就可以。网上最多的是在windows下建立linux虚拟机,其实是在linux环境下进行交叉编译工作。
要完成交叉编译我们需要的工具有1,引导程序编译器;2,系统内核编译器。引导程序可以使u-boot,类似于bios的作用吧。系统内核编译器用于将经过我们修饰过的内核进行编译。内核的源码去哪儿找呢?这个我也在想这个问题,肯定是跟硬件系统有关的部分吧。