課程設(shè)計---arm9控制led流水燈程序設(shè)計_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  課 程 設(shè) 計 報 告 書</p><p>  課程名稱 嵌入式系統(tǒng)原理及應(yīng)用 </p><p>  題 目 ARM9 I/O口控制LED流水燈程序設(shè)計          </p><p>  分 院    電 信 分 院      &

2、lt;/p><p>  專業(yè)班級 通信工程 2008-2 </p><p>  學(xué)  號      </p><p>  學(xué)生姓名           </p><p>  指導(dǎo)教師    

3、 </p><p>  2012年 12月 30 日</p><p>  課 程 設(shè) 計 任 務(wù) 書</p><p>  一、課程設(shè)計題目 ARM9 I/O口控制LED流水燈想設(shè)計 </p><p>  二、課程設(shè)計工作:自 2011 年 12 月 28 日起至 2012 年 1

4、 月 2 日止。</p><p>  三、課程設(shè)計的內(nèi)容要求:</p><p>  1.了解ARM9的I/O口的工作原理;</p><p>  2.基于arm920T的內(nèi)核,在開發(fā)板或者實驗箱上,實現(xiàn)LED的流水控制;</p><p>  3.了解I/O口怎么控制LED的輸出;</p><p>  4.掌握設(shè)置I/

5、O口的狀態(tài)需要設(shè)置的寄存器GPBCON、GPBDAT、GPBUP;</p><p>  5.掌握在ADS環(huán)境下建立工程,用H-JTAG來調(diào)試程序,生成.HEX文件;</p><p>  6.總結(jié)本次課程設(shè)計的知識點。</p><p>  學(xué)生簽名:   </p><p>  201 年 月 日</p><

6、;p><b>  目 錄</b></p><p>  課程設(shè)計任務(wù)書........................................................................2</p><p>  第1章 課程設(shè)計目的......................................................

7、........4</p><p>  第2章 S3C2440的I/O口配置..............................................5</p><p>  第3章 S3C2440的I/O口寄存器..........................................6</p><p>  第4章 課程設(shè)計過程.....

8、.........................................................9</p><p>  4.1 設(shè)計步驟.........................................................................9</p><p>  4.2 部分原理圖.........................

9、............................................9</p><p>  4.3 源程序............................................................................10</p><p>  4.4 編譯調(diào)試結(jié)果..................................

10、..............................17</p><p>  第8章 課程設(shè)計心得...........................................................19</p><p>  參考文獻(xiàn)..................................................................

11、.................20</p><p>  第1章 課程設(shè)計目的</p><p>  這學(xué)期開了嵌入式這門課程,之前就了解到嵌入式系統(tǒng)是當(dāng)前最熱門最有發(fā)展前途的IT 應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應(yīng)要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。像我們平常常見到的手

12、機(jī)、可視電話、PDA、電子字典、VCD/DVD/MP3 Player、機(jī)頂盒(Set Top Box)、數(shù)字相機(jī)(DC)、數(shù)字?jǐn)z像機(jī)(DV)、高清電視(HDTV)、游戲機(jī)、智能玩具、交換機(jī)、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等都是典型的嵌入式系統(tǒng)。</p><p>  隨著社會的發(fā)展,嵌入式在未來的應(yīng)用會越來越廣泛。隨著物聯(lián)網(wǎng)的時代的到來,電器將會與互聯(lián)網(wǎng),移動電話成為一體,

13、通過無線通信技術(shù)以及互聯(lián)網(wǎng)技術(shù)將可以使人們在任何時候控制電器等的工作。</p><p>  通過這次課程設(shè)計使我們了解基本的嵌入式編程方法以及培養(yǎng)我們對嵌入式編程的興趣,與此同時,我們還能鞏固一下C編程和匯編編程基礎(chǔ),為將來的嵌入式學(xué)習(xí)和工作做好充足的準(zhǔn)備!</p><p>  第2章 S3C2440的I/O口配置</p><p>  在S3C2440 的CPU中有

14、130多個多功能的輸入輸出引腳,分為8個端口,如下所示:</p><p>  - Port A(GPA): 25-output port</p><p>  - Port B(GPB): 11-input/out port</p><p>  - Port C(GPC): 16-input/output port</p><p>  - Po

15、rt D(GPD): 16-input/output port</p><p>  - Port E(GPE): 16-input/output port</p><p>  - Port F(GPF): 8-input/output port</p><p>  - Port G(GPG): 16-input/output port</p><

16、p>  - Port H(GPH): 9-input/output port</p><p>  - Port J(GPJ): 13-input/output port</p><p>  每個端口可以很容易地通過軟件配置,以滿足不同的系統(tǒng)配置和設(shè)計要求。如果引腳不用于復(fù)用功能,則引腳可配置為普通的I/O口。它們的寄存器是相似的:GPxCON用于選擇引腳功能,GPxDAT用于都/寫引

17、腳數(shù)據(jù),GPxUP用于確定是否使用內(nèi)部上拉電阻(x為A、B、..........、H、J,注意沒有GPAUP)。</p><p>  1.GPxCON中每兩位控制一根引腳:</p><p>  00表示輸入、01表示輸出、10表示特殊功能、11保持不用。其中GPBCON中共有22位來管理GPB的功能設(shè)置,每兩位來管理一個口的功能設(shè)置,兩位共有四種狀態(tài),當(dāng)GPB中的兩位值為00時,配置為輸入

18、功能;配置為01時,是輸出功能;10為復(fù)用功能;11為保留狀態(tài)。 </p><p>  2.GPxDAT用于讀/寫引腳:</p><p>  當(dāng)引腳設(shè)為輸入時,讀此寄存器可知相應(yīng)引腳的狀態(tài)是高是低。</p><p>  當(dāng)引腳設(shè)為輸出時,寫此寄存器相應(yīng)位可令此引腳輸出低電平或高電平。</p><p><b>  3. GpxUP&l

19、t;/b></p><p>  GPBUP宮11位,每一位代表一個管腳的上拉功能,某位為0時,相應(yīng)引腳上拉功能被使能,為1時,相應(yīng)引腳被禁止使用上拉功能。</p><p>  第3章 S3C2440的I/O口寄存器</p><p>  LED燈是接在某一個I/O上的,點亮或者熄滅LED燈其實就是對I/O寄存器的操作。ARM的I/O口寄存器主要包括端口配置寄存器

20、GPXCON、端口數(shù)據(jù)寄存器GPXDAT、端口上拉電阻使能寄存器GPXUP、MISCELLANEOUS控制寄存器和外部中斷寄存器五種(其中X為芯片的I/O口字母)。在這個課程設(shè)計我們只用前三個寄存器,下面就對著三個寄存器進(jìn)行簡單的介紹。</p><p>  對于ARM芯片來說,它的寄存器很多,為了區(qū)分不同的寄存器,系統(tǒng)給每個寄存器都分配了一個固定的地址,地址就像每個人的身份證一樣,是唯一的。那么當(dāng)你使用這個地址的

21、時候ARM就知道你要使用哪個寄存器了,所以在編程的時候,首先要聲明待操作的寄存器地址。下表就是本次課程設(shè)計要用到的寄存器的地址和位定義:</p><p>  ARM芯片找到相應(yīng)寄存器后,也先要設(shè)置端口配置寄存器GPBCON,也就是告訴寄存器做好接收數(shù)據(jù)或者輸出數(shù)據(jù)或者響應(yīng)外部中斷的準(zhǔn)備,下表為它的功能描述:</p><p>  ARM設(shè)置完I/O口狀態(tài)后,就準(zhǔn)備讀/寫數(shù)據(jù)了。這個功能可以通

22、過設(shè)置數(shù)據(jù)寄存器GPBDAT來實現(xiàn)。下表即為它的功能描述: </p><p>  ARM設(shè)置完I/O口狀態(tài)后,就準(zhǔn)備讀/寫數(shù)據(jù)了。這個功能可以通過設(shè)置數(shù)據(jù)寄存器GPBDAT來實現(xiàn)。下表即為它的功能描述: </p><p>  設(shè)置完前兩個寄存器后,還要設(shè)置上拉電阻使能寄存器GPBUP,顧名思義,它的作用就是告訴ARM這個端口要不要配置上拉電阻。上拉電阻、下拉電阻的作用在于,當(dāng)IO引腳處于第

23、三態(tài)(即不是高電平,也不是低電平,而是高阻態(tài),相當(dāng)于沒接芯片)時,它的電平狀態(tài)由上拉電阻、下拉電阻確定。下表為它的功能描述:當(dāng)為0時,上拉電阻是允許的;反之,則上拉電阻是被禁止的。 </p><p>  到此,需要的寄存器就配置完成了,那么接下來介紹下LED在開發(fā)板上的電路原理圖。 </p><p>  第4章 課程設(shè)計過程</p><p><b>  4

24、.1 設(shè)計步驟</b></p><p>  1.連接好實驗環(huán)境,將仿真器的一端通過并口連接到PC機(jī),將仿真器的另一端通過JTAG先連接到開發(fā)板JTAG接口。</p><p>  2.將串口線一端接到PC機(jī),另一端接到S3C2440的UART0接口;打開串口超級終端,設(shè)置串口屬性為COM1,串口波特率(Baudrout)為115200,校驗位無,數(shù)據(jù)位為8,停止位為1,檢查連接是

25、否可靠,可靠后,接入電源線,給系統(tǒng)上電,同時按住空格鍵,進(jìn)入VIVI狀態(tài)。</p><p>  3.打開ADS codeWarrior,在ADS codeWarrior中創(chuàng)建工程編寫代碼,并對工程進(jìn)行編譯。</p><p>  4.使用H-JTAG進(jìn)行調(diào)試。</p><p>  5.打開ARM的開發(fā)環(huán)境AXD Debugger,在AXD Debugger中加載可執(zhí)行

26、映像文件LED_TEXT.axf。</p><p>  6.在ADS調(diào)試環(huán)境處下,全速運行映像文件,觀察LED燈LED1、LED2、LED3、LED4的閃亮情況—輪流閃爍。</p><p><b>  4.2部分原理圖</b></p><p><b>  圖a</b></p><p><b&

27、gt;  圖b</b></p><p>  上圖a、b是實驗的部分原理圖,可以看出我們通過GPB5、GPB6、GPB7、GPB8來分別控制LED1、LED2、LED3、LED4。</p><p><b>  4.3源程序:</b></p><p><b>  1.main.c</b></p>&l

28、t;p>  #define rGPBCON (*(volatile unsigned *))0x56000010) //prot B contorl</p><p>  #define rGPBDAT (*(volatile unsigned *))0x56000010) //prot B data</p><p>  #define rGPBUP

29、 (*(volatile unsigned *))0x56000010) //pull-up control B</p><p>  void xmain(void)</p><p><b>  {</b></p><p>  ChangeClockDivider(3,1); //設(shè)置時鐘分頻比1:3:6</p>&l

30、t;p>  ChangeMPllValue(127,2,1); //設(shè)置主時鐘頻405MHZ</p><p>  Port_Init(); //端口初始化</p><p>  Isr_Init(); //中斷初始化</p><p>  Uart_Init(0, 115200); //串口初始化</p><p>  Uart_Se

31、lect(0);</p><p>  Uart_Printf("the main is running\n");//向超級終端打印"the main is running"</p><p>  rGPBCON = rGPBCON & (~(0xf<<10)) |( 1<< 10) |(1 << 12);&l

32、t;/p><p>  //將GPB5[11:10] 兩位設(shè)置為01---即output狀態(tài),GPB6[13:12] 兩位設(shè)置為01---即output狀態(tài)</p><p>  rGPBCON = rGPBCON & (~(0xf<<14)) |( 1<< 14) |(1 << 16);</p><p>  //將GPB7[15

33、:14] 兩位設(shè)置為01---即output狀態(tài),GPB8[17:16] 兩位設(shè)置為01---即output狀態(tài)</p><p>  rGPBUP = rGPBUP&(~(0xF<<5))|(0xF<<5);</p><p>  //將GPB5、GPB6、GPB7、GPB8上拉電阻設(shè)置為disabled</p><p><b&g

34、t;  while(1)</b></p><p><b>  {</b></p><p>  rGPBDAT = (rGPBDAT|(0xF<<5))&(~(0x1<<5)); //點亮LED1</p><p>  Delay(10000000);//延時</p><p>  

35、rGPBDAT =( rGPBDAT|(0xF<<5))&(~(0x2<<5)); //點亮LED2</p><p>  Delay(10000000);// 延時</p><p>  rGPBDAT = (rGPBDAT|(0xF<<5))&(~(0x4<<5)); //點亮LED3</p><p>

36、  Delay(10000000);// 延時</p><p>  rGPBDAT =(rGPBDAT|(0xF<<5))&(~(0x8<<5)); //點亮LED4</p><p>  Delay(10000000);// 延時</p><p>  rGPBDAT = (rGPBDAT|(0xF<<5))&(~(

37、0x4<<5)); //點亮LED3</p><p>  Delay(10000000);// 延時</p><p>  rGPBDAT =( rGPBDAT|(0xF<<5))&(~(0x2<<5)); //點亮LED2</p><p>  Delay(10000000);// 延時</p><p&g

38、t;  rGPBDAT = (rGPBDAT|(0xF<<5))&(~(0x1<<5)); //點亮LED1</p><p>  Delay(10000000);// 延時</p><p><b>  }</b></p><p><b>  }</b></p><p>

39、;  2.2440lib.c</p><p>  //===================================================================</p><p>  // File Name : 2440lib.c</p><p>  // Function : S3C2440 PLL,Uart, LED, Port I

40、nit</p><p>  // Date :2011/22/28</p><p>  // Version : 0.1</p><p>  //===================================================================</p><p>  #include "

41、;def.h"</p><p>  #include "option.h"</p><p>  #include "2440addr.h"</p><p>  #include "2440lib.h"</p><p>  #include "2440slib.h&

42、quot; </p><p>  #include <stdarg.h></p><p>  #include <string.h></p><p>  #include <stdlib.h></p><p>  #include <stdio.h></p><p>  

43、#include <ctype.h></p><p>  extern char Image$$RW$$Limit[];</p><p>  void *mallocPt=Image$$RW$$Limit;</p><p>  static int delayLoopCount;</p><p>  void Delay(int

44、time) //延時函數(shù)</p><p><b>  {</b></p><p>  int i, adjust=0;</p><p>  if(time==0)</p><p><b>  {</b></p><p>  time = 200;</p>

45、<p>  adjust = 1;</p><p>  delayLoopCount = 800;</p><p>  rWTCON = ((PCLK/1000000-1)<<8)|(2<<3); </p><p>  rWTDAT = 0xffff; </p>

46、<p>  rWTCON = ((PCLK/1000000-1)<<8)|(2<<3)|(1<<5); //Watch-dog timer start</p><p><b>  }</b></p><p>  for(;time>0;time--)</p><p>  for(i=0;i

47、<delayLoopCount;i++);</p><p>  if(adjust==1)</p><p><b>  {</b></p><p>  rWTCON = ((PCLK/1000000-1)<<8)|(2<<3); //Watch-dog timer stop</p><p>

48、  i = 0xffff - rWTCNT; //1count->64us, 200*800 cycle runtime = 64*i us</p><p>  delayLoopCount = 16000000/(i*64);</p><p>  //200*800:64*i=1*x:100 -> x=160000*100/(64*i) </p><p

49、><b>  }</b></p><p><b>  }</b></p><p>  void Port_Init(void)//I/O口初始化</p><p><b>  {</b></p><p>  rGPACON = 0x7fffff; </p>&

50、lt;p>  rGPBCON = 0x155555;</p><p>  rGPBUP = 0x7ff; // The pull up function is disabled GPB[10:0]</p><p>  rGPCCON = 0xaaaaaaaa; </p><p>  rGPCUP = 0xffff; // The

51、 pull up function is disabled GPC[15:0] </p><p>  rGPDCON = 0xaaaaaaaa; </p><p>  rGPDUP = 0xffff; // The pull up function is disabled GPD[15:0]</p><p>  rGPECON = 0xaaaa

52、aaaa; </p><p>  rGPEUP = 0xffff; // The pull up function is disabled GPE[15:0]</p><p>  rGPFCON = 0x55aa;</p><p>  rGPFUP = 0xff; // The pull up function is disabled

53、 GPF[7:0]</p><p>  rGPGCON = 0xff95ffba;</p><p>  rGPGUP = 0xffff; // The pull up function is disabled GPG[15:0]</p><p>  rGPHCON = 0x2afaaa;</p><p>  rGPHUP = 0x7

54、ff; // The pull up function is disabled GPH[10:0]</p><p>  rGPJDAT = (1<<12)|(0<<11);</p><p>  rGPJCON = 0x016aaaa;</p><p>  rGPJUP= ~((0<<12)|(1<<11));&

55、lt;/p><p>  rGPJDAT = (0<<12)|(0<<11);</p><p>  rGPJCON = 0x016aaaa;</p><p>  rGPJUP= 0x1fff;//~((1<<12)|(1<<11));</p><p>  rEXTINT0 = 0x22222222;

56、 // EINT[7:0]</p><p>  rEXTINT1 = 0x22222222; // EINT[15:8]</p><p>  rEXTINT2 = 0x22222222; // EINT[23:16]</p><p><b>  }</b></p><p>  static int wh

57、ichUart=1;</p><p>  void Uart_Init(int pclk,int baud)//串口初始化,設(shè)置時鐘,波特率</p><p><b>  {</b></p><p>  if(pclk == 0)</p><p>  pclk = PCLK;</p><p>

58、  rUFCON0 = 0x0; //UART channel 0 FIFO control register, FIFO disable</p><p>  rUFCON1 = 0x0; //UART channel 1 FIFO control register, FIFO disable</p><p>  rUFCON2 = 0x0; //UART channel 2

59、FIFO control register, FIFO disable</p><p>  rUMCON0 = 0x0; //UART chaneel 0 MODEM control register, AFC disable</p><p>  rUMCON1 = 0x0; //UART chaneel 1 MODEM control register, AFC disable&

60、lt;/p><p><b>  //UART0</b></p><p>  rULCON0 = 0x3; //Line control register : Normal,No parity,1 stop,8 bit</p><p>  rUCON0 = 0x245; // Control register</p><

61、p>  rUBRDIV0 = 0x34;</p><p><b>  //UART1</b></p><p>  rULCON1 = 0x3;</p><p>  rUCON1 = 0x245;</p><p>  rUBRDIV1=( (int)(pclk/16./baud+0.5) -1 );</p&g

62、t;<p><b>  //UART2</b></p><p>  rULCON2 = 0x3;</p><p>  rUCON2 = 0x245;</p><p>  rUBRDIV2=( (int)(pclk/16./baud+0.5) -1 ); </p><p>  Uart_TxEmpty

63、(whichUart);</p><p><b>  }</b></p><p>  void Uart_Select(int ch)</p><p><b>  {</b></p><p>  whichUart = ch;</p><p><b>  }<

64、/b></p><p>  void Uart_TxEmpty(int ch)</p><p><b>  {</b></p><p><b>  if(ch==0)</b></p><p>  while(!(rUTRSTAT0 & 0x4)); //Wait until tx sh

65、ifter is empty.</p><p>  else if(ch==1)</p><p>  while(!(rUTRSTAT1 & 0x4)); //Wait until tx shifter is empty.</p><p>  else if(ch==2)</p><p>  while(!(rUTRSTAT2 &am

66、p; 0x4)); //Wait until tx shifter is empty.</p><p>  } </p><p>  void Uart_SendString(char *pt)</p><p><b>  {</b></p><p>  while(*pt)</p>

67、<p>  Uart_SendByte(*pt++);</p><p><b>  }</b></p><p>  void Led_Display(int data) //LED顯示</p><p><b>  {</b></p><p>  rGPFDAT = (rGPFDAT

68、& ~(0xf<<4)) | ((~data & 0xf)<<4); </p><p><b>  }</b></p><p>  void Timer_Start(int divider) //0:16us,1:32us 2:64us 3:128us</p><p><b>  {&l

69、t;/b></p><p>  rWTCON = ((PCLK/1000000-1)<<8)|(divider<<3); //Watch-dog timer control register</p><p>  rWTDAT = 0xffff; //Watch-dog timer data register</p><p>  rW

70、TCNT = 0xffff; //Watch-dog count register</p><p>  rWTCON = (rWTCON & ~(1<<5) & ~(1<<2)) |(1<<5);</p><p><b>  }</b></p><p>  int Timer_Stop(vo

71、id)</p><p><b>  {</b></p><p>  rWTCON = ((PCLK/1000000-1)<<8);</p><p>  return (0xffff - rWTCNT);</p><p><b>  }</b></p><p>  

72、void ChangeMPllValue(int mdiv,int pdiv,int sdiv)</p><p><b>  {</b></p><p>  rMPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;</p><p><b>  }</b></p>

73、<p>  void ChangeUPllValue(int mdiv,int pdiv,int sdiv)</p><p><b>  {</b></p><p>  rUPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;</p><p><b>  }</b&

74、gt;</p><p>  void Isr_Init(void)//中斷初始化</p><p><b>  {</b></p><p>  pISR_UNDEF = (unsigned)HaltUndef;</p><p>  pISR_SWI = (unsigned)HaltSwi;</p>&

75、lt;p>  pISR_PABORT = (unsigned)HaltPabort;</p><p>  pISR_DABORT = (unsigned)HaltDabort;</p><p>  rINTMOD = 0x0; //All=IRQ mode</p><p>  rINTMSK = BIT_ALLMSK; //A

76、ll interrupt is masked.</p><p>  rINTSUBMSK = BIT_SUB_ALLMSK; </p><p><b>  }</b></p><p>  4.4 編譯調(diào)試結(jié)果</p><p>  第5章 課程設(shè)計心得</p><p>  通過本次課程設(shè)計,

77、使我對S3C2440體系結(jié)構(gòu)理解更加深刻,以及對相應(yīng)的寄存器操作更熟悉。</p><p>  通過這次課程設(shè)計,加強了我動手、思考和解決問題的能力。在設(shè)計過程中,經(jīng)常會遇到這樣那樣的情況,就是心里想老著這樣的程序設(shè)計方法可以行得通,但實際進(jìn)入編譯,總是有這樣那樣的問題,因此耗費在這上面的時間用去很多。</p><p>  做課程設(shè)計同時也是對課本知識的鞏固和加強,由于課本上的知識太多,平時

78、課間的學(xué)習(xí)并不能很好的理解和運用在實踐中,所以在這次課程設(shè)計過程中,我了解了很多在平時上課沒怎么弄明白的知識,對于其在ARM9中的使用有了更多的認(rèn)識。</p><p>  平時看課本時,有時問題老是弄不懂,做完課程設(shè)計,那些問題就迎刃而解了。而且還可以記住很多東西。比如一些寄存器的功能,平時看課本,這次看了,下次就忘了,通過動手實踐讓我對 本次課程設(shè)計用到的寄存器映象深刻。認(rèn)識來源于實踐,實踐是認(rèn)識的動力和最終目

79、的,實踐是檢驗真理的唯一標(biāo)準(zhǔn)。所以這個課程設(shè)計對我的作用是非常大的。</p><p>  通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。</p><p>  此次課程設(shè)計,學(xué)到了很多課內(nèi)學(xué)不到的東西,比如獨立思考解決問題,出現(xiàn)差錯的隨機(jī)應(yīng)

80、變,和與人合作共同提高,都受益非淺,今后的制作應(yīng)該更輕松,自己也都能扛的起并高質(zhì)量的完成項目。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 邱鐵 ARM9嵌入式系統(tǒng)結(jié)構(gòu)與編程 北京:清華大學(xué)出版社,2009-03-01</p><p>  [2] 武俊鵬 基于ARM的嵌入式系統(tǒng)設(shè)計實驗與實踐教程 北京:清華大學(xué)出

81、版社,2011年9月1日</p><p>  [3] 黃智偉,王彥 ARM9嵌入式系統(tǒng)設(shè)計基礎(chǔ) 北京:北京航空航天大學(xué)2008-8-1</p><p>  [4] 愈輝 ARM嵌入式linux系統(tǒng)設(shè)計與開發(fā) 機(jī)械工業(yè)出版社 2010-5-1</p><p>  [5]WayneWolf.嵌入式計算機(jī)系統(tǒng)設(shè)計原理.孫玉芳等譯.北京:機(jī)械工業(yè)出版社,2002</

82、p><p>  [6] [美]Jonathan W.Valvano著.嵌入式微計算機(jī)系統(tǒng)實時接口技術(shù).李曦等譯.北京:機(jī)械工業(yè)出版社,2003</p><p>  [7] 田澤編著.嵌入式系統(tǒng)開發(fā)與應(yīng)用教程.北京:北京航空大學(xué)出版社,2005</p><p>  [8] 田澤編著.嵌入式系統(tǒng)開發(fā)與應(yīng)用教程(第2版).北京:北京航空大學(xué)出版社,2005</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論