如何开发自己的嵌入式系统(硬件平台)

分享到:
点击量: 245857 来源: 常州新区大平超声波仪器有限公司

  如何开发自己的嵌入式系统(硬件平台)

  选择*好的硬件是一个复杂的工作、充满了公司其他项目的政治、偏见、传统,缺乏完整或**的信息。 成本经常?--*丶囊樘狻5笨悸浅杀臼薄⑷沸拍阍诳悸遣返恼龀杀尽⒉唤鍪荂PU。有时快的、便宜的CPU一旦加上总线逻辑和时延使之与外设一起工作,能变成一个昂贵的狗的产品。如果你在寻找软件,首先是硬件已经有产品了。如果你是系统设计者,由你决定制定实时的预算及硬件的工作是否满意。

  现实中需要多快的CPU来完成一项工作,然后放大三倍。奇怪,CPU理论上的速度竟与现实中一样,别忘了应用程序将会充分利用cache。

  想象总线的速度需要多快,如果有其他总线如PCI总线,包括进来。慢的总线或产生DMA阻塞的总线会降低CPU的速度造成拥挤。 有集成设备的CPU是好的,因为只须调试很少的设备,并且支持通用CPU的驱动程序通常都很容易获得。在我的项目中,芯片与外设的联接经常出问题或不满足我们所需的兼容性。因为外设是集成的,不要认为这会便宜。

  将10斤重的Linux塞入只能装5斤的袋中。对于Linux一个共同的认识是它用于嵌入式系统简直是神奇极了。这可能不大对,典型的PC上的Linux对PC用户来说功能有多,对初学者而言,可以将内核与任务分开,标准的Linux内核通常驻留在内存中,每一个应用程序都是从磁盘运到内存上执行。当程序结束后,它所占用的内存就被释放,程序就被下载了。

  在一个嵌入式系统里,可能没有磁盘。有两种途径可以消除对磁盘的依赖,这要看系统的复杂性和硬件的设计,在一个简单的系统里,当系统启动后,内核和所有的应用程序都在内存里。这就是大多数传统的嵌入式系统工作模式,它同样可以被Linux支持。

  有了Linux,就有了**种可能性。因为Linux已经有能力“加载”和“卸载”程序,一个嵌入式系统就可以利用它来节省内存。试想一个典型的包括一个大概8MB到16MB的Flash Memory和8MB内存的系统。Flash Memory可以作为一个文件系统。Flash Memory驱动程序用来连接Flash Memory和文件系统。作为替代,可使用Flash Disk。这Flash部件用软件仿真磁盘。其中一个例是M-Systems的DiskOnChip,可以达到160MB。所有的程序都以文件形式存储在Flas**件中,需要时可以装入内存

  。这种动态的、“根据需要加载”的能力是支持其它一系列功能的重要特征:它使初始化代码在系统引导后被释放。Linux同样有很多内核外运行的公用程序。这些通常程序在初始化时运行一次,以后就不再运行。而且,这些公用程序可以用它们相互共有的方式,一个接一个按顺序运行。这样,相同内存空间可以被反复使用以“召入”每一个程序,就象系统引导一样。这的确可以节省内存,特别是那些配置一次以后就不再更改的网络堆栈 如果Linux可加载模块的功能包括在内核里,驱动程序和应用程序就都可以被加载。它可以检查硬件环境并且为硬件装上相应的软件。这就消除了用一个程序占用许多Flash Memory来处理多种硬件的复杂性。

  软件的升级更模块化。你可以在系统运行的时候在Flash上升级应用程序和可加载驱动程序,配置信息和运行时间参数可以作为数据文件储存在Flash上。