⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 嵌入式系统
💻
📖 第 1 页 / 共 4 页
字号:
<UL>
  <LI>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>硬件驱动程序</SPAN></DIV>
  <LI>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>提供所需功能的一个或更多应用程序。</SPAN></DIV>
  <LI>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>再增加功能,或许需要这些</SPAN></DIV>
  <LI>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>一个文件系统(也许在ROM或RAM)中</SPAN></DIV>
  <LI>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>TCP/IP网络堆栈</SPAN> 
  </DIV>
  <LI>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>存储半过渡数据和交换用的磁盘。</SPAN></DIV></LI></UL>
<BLOCKQUOTE>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN><B>硬件平台</B></SPAN></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>选择最好的硬件是一个复杂的工作、充满了公司其他项目的政治、偏见、传统,缺乏完整或精确的信息。</SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>成本经常是关键的议题。当考虑成本时、确信你在考虑产品的整个成本、不仅是CPU。有时快的、便宜的CPU一旦加上总线逻辑和时延使之与外设一起工作,能变成一个昂贵的狗的产品。如果你在寻找软件,首先是硬件已经有产品了。如果你是系统设计者,由你决定制定实时的预算及硬件的工作是否满意。</SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>现实中需要多快的CPU来完成一项工作,然后放大三倍。奇怪,CPU理论上的速度竟与现实中一样,别忘了应用程序将会充分利用cache。</SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>想象总线的速度需要多快,如果有其他总线如PCI总线,包括进来。慢的总线或产生DMA阻塞的总线会降低CPU的速度造成拥挤。</SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>有集成设备的CPU是好的,因为只须调试很少的设备,并且支持通用CPU的驱动程序通常都很容易获得。在我的项目中,芯片与外设的联接经常出问题或不满足我们所需的兼容性。因为外设是集成的,不要认为这会便宜。</SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>将10斤重的Linux塞入只能装5斤的袋中。</SPAN></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>对于Linux一个共同的认识是它用于嵌入式系统简直是神奇极了。这可能不大对,典型的PC上的Linux对PC用户来说功能有多。</SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>对初学者而言,可以将内核与任务分开,标准的Linux内核通常驻留在内存中,每一个应用程序程序都是从磁盘运到内存上执行。当程序结束后,它所占用的内存就被释放,程序就被下载了。</SPAN></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>在一个嵌入式系统里,可能没有磁盘。有两种途径可以消除对磁盘的依赖,这要看系统的复杂性和硬件的设计。</SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>在一个简单的系统里,当系统启动后,内核和所有的应用程序都在内存里。这就是大多数传统的嵌入式系统工作模式,它同样可以被Linux支持。</SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>有了Linux,就有了第二种可能性。因为Linux已经有能力“加载”和“卸载”程序,一个嵌入式系统就可以利用它来节省内存。试想一个典型的包括一个大概8MB到16MB的Flash 
  </SPAN></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>Memory和8MB内存的系统。Flash Memory可以作为一个文件系统。Flash Memory驱动程序用来连接Flash 
  </SPAN></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>Memory和文件系统。作为替代,可使用Flash </SPAN></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>Disk。这Flash部件用软件仿真磁盘。其中一个例是M-Systems的DiskOnChip,可以达到160MB。(http://www.m-systems.com)。所有的程序都以文件形式存储在Flash文件中,需要时可以装入内存。这种动态的、“根据需要加载”的能力是支持其它一系列功能的重要特征:</SPAN></P></DIV></BLOCKQUOTE>
<UL>
  <LI>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN></SPAN></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>它使初始化代码在系统引导后被释放。Linux同样有很多内核外运行的公用程序。这些通常程序在初始化时运行一次,以后就不再运行。而且,这些公用程序可以用它们相互共有的方式,一个接一个按顺序运行。这样,相同内存空间可以被反复使用以“召入”每一个程序,就象系统引导一样。这的确可以节省内存,特别是那些配置一次以后就不再更改的网络堆栈</SPAN></DIV>
  <LI><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN></SPAN>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>如果Linux可加载模块的功能包括在内核里,驱动程序和应用程序就都可以被加载。它可以检查硬件环境并且为硬件装上相应的软件。这就消除了用一个程序占用许多Flash 
  </SPAN></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>Memory来处理多种硬件的复杂性。</SPAN></DIV>
  <LI>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>软件的升级更模块化。你可以在系统运行的时候在Flash上升级应用程序和可加载驱动程序。</SPAN></DIV>
  <LI><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>配置信息和运行时间参数可以作为数据文件储存在Flash上。</SPAN> </LI></UL>
<BLOCKQUOTE>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN><B>非虚拟内存</B></SPAN></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>标准Linux的另一个待征是虚拟内存的能力。正是这种神奇的特征使应用程序员可以狂热的编写代码而不计后果,不管程序有多大。程序溢出到了磁盘交换区。在没有磁盘的嵌入式系统里,通常不能这么做。</SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>在嵌入式系统里不需要这种强大的功能。实际上,你可能不希望它在实时的关键系统里,因为它会带来无法控制的时间因素。这个软件必须设计得更加精悍,以适合市面上物理内存,就象其它嵌入式系统一样。</SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
  <P><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>注意由于CPU的原因,通常在Linux中保存虚拟内存代码是明智的,因为将它清除很费事。而且还有另外一个原因——它支持共享文本,这样就可以使许多程序共享一个软件。没有这个,每一个程序都要有它自己的库,就象printf 
  </SPAN></P></DIV>
  <DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt"><SPAN lang=EN-US><SPAN 
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  </SPAN>一样。</SPAN></DIV>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -