国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

ARM入門筆記(10)

發布時間:2010-8-26 17:33    發布者:絕對好文
關鍵詞: ARM入門筆記
第十一章 USB 設備實驗

一.背景

在ATMEL官方網站上提供了USB的應用例子(詳情請參考“BasicUSB Application”說明),里面有源代碼(是用IAR編譯的,需要稍作修改才能用在ADS上),兩個不同的USB驅動程序。兩個不同的USB驅動程序,在PC機上是兩個不同的應用例子。當安裝完兩個不同的驅動后,一個出現的是調制解調器的設備,可以用超級終端來完成USB數據的收發。另一個是USB 設備,用ATMEL提供的“BasicUSB_6124.exe”來完成USB數據的收發。我起初一直在用后面的例子來做實驗,但試了很久都沒有成功,后來改用前面的成功了。

二.USB驅動安裝說明

當第一次與host PC機連接時,系統會彈出一個“找到新的硬件向導”窗口,選擇“從列表或指定位置安裝”后點擊“下一步”。在接下來的窗口中選擇“不要搜索。我要自己選擇要安裝的驅動程序”,然后點擊“下一步”。再在接下來的窗口中點擊“從磁盤安裝”,找到“atm6124ser.inf”所在的目錄后打開。再點擊“下一步”開始安裝,最后點“完成”就可以。

安裝完成后,會在設備管理器的“調制解調器”欄中查看到“ATMEL AT91 USB serial emulation #2”設備。此時就可以使用“超級終端”通過USB與AT91SAM7S64通訊了。詳請請查看該目錄的“BasicUSB Application.pdf”文件。

三.實驗目的

用PC機上的超級終端發送數據,AT91SAM7S64通過USB接收超級終端上發過來的數據(USB的讀操作),再通過USB將接收到的數據返回給PC機上的超級終端(USB的寫操作),這樣就完成了PC機與 AT91SAM7S64的USB通訊。如果AT91SAM7S64將接收到數據通過DBUG串口再發送出去,這樣AT91SAM7S64就可以當作一個 USB轉串口的設備使用。

四.實驗源程序

由于這個實驗的源程序比較多,且ATMEL提供了詳細的文檔和源代碼,故不再列出。有什么問題可以通過ccn422@hotmail.com聯系我。

另外因為ATMEL的源碼中沒有使能重映射功能,如果想將程序下載到地址為0x00200000的SRAM中調試,又要使用在0x0地址空間的中斷向量表,使程序跳轉到中斷處理程序,必須使用重映射的功能。所以我在起動代碼(AT91F_LowLevelInit)中加了重映射這條命令,如下:

if (Remap_Flag == 0)  
{ //由于不能重復執行重映射命令,所以加了Remap_Flag標志來避免多次執行重映射命令
  Remap_Flag = 0xff;
  *AT91C_MC_RCR = AT91C_MC_RCB;   //Remap Command Bit
}

五.出現的問題與解決方法

1> 每次重新裝載程序進行調試時,Remap_Flag沒有等于0。

原因是進入C代碼前,沒有初始化存儲器的內容。用戶可以將起動代碼中的“b  main”改成“b  __main”,即在跳入到main()函數前執行__main初始化庫函數,也可自己加入初始化存儲器的代碼。程序如下:

InitReset
    IMPORT |Image$$RO$$Limit|  ; End of ROM code (=start of ROM data)
    IMPORT |Image$$RW$$Base|   ; Base of RAM to initialise
    IMPORT |Image$$ZI$$Base|   ; Base and limit of area
    IMPORT |Image$$ZI$$Limit|  ; to zero initialise
    ;********************************************************
    ;* Copy and paste RW data/zero initialized data     *
    ;********************************************************
    LDR     r0, =|Image$$RO$$Limit| ; Get pointer to ROM data
    LDR     r1, =|Image$$RW$$Base| ; and RAM copy
    LDR     r3, =|Image$$ZI$$Base|  
;Zero init base => top of initialised data
   
    CMP     r0, r1     ; Check that they are different
    BEQ     %F1
0   
    CMP     r1, r3     ; Copy init data
    LDRCC   r2, [r0], #4    ;--> LDRCC r2, [r0] + ADD r0, r0, #4   
    STRCC   r2, [r1], #4    ;--> STRCC r2, [r1] + ADD r1, r1, #4
    BCC     %B0
1   
    LDR     r1, =|Image$$ZI$$Limit| ; Top of zero init segment
    MOV     r2, #0
2   
    CMP     r3, r1     ; Zero init
    STRCC   r2, [r3], #4
BCC     %B2

如果想詳細了解該部分的原理,可以參考三星公司為44B0寫的起動代碼部分資料。

2> 這個實驗浪費了很多的時間,原因就是因為我一直用的atm6124.sys和atm6124.inf驅動程序以及BasicUSB_6124.exe來做此實驗,當執行BasicUSB_6124.exe后,總是出現“設備不能連接”。為此我專門去書店買了《USB2.0應用與設計》參考,再研究和調試源代碼,再加上仔細的閱讀“BasicUSB Application.pdf”文件,后來改用atm6124ser.inf驅動程序與超級終端來完成了本次實驗。

六.總結

如果一開始就很成功的完成了本次實驗,我可能對USB的原理等不會了解到多少,正是因為出現了問題,我才會為了解決問題而去找相關的資料學習,最終到問題的解決。因此出現問題并不是一件什么壞事,相反,問題的出現會引導我們靜下心來向更深層次去探究,最終更深刻更全面地掌握知識。
本文地址:http://m.qingdxww.cn/thread-23792-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
長話短說 發表于 2010-9-4 11:37:07
謝謝
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产激情自拍视频 | 国产激情在线观看 | 国产免费色视频 | 亚洲高清视频网站 | 日韩大片观看网址 | 夜色福利视频 | 新91免费 | 日本一区二区三区国产 | 99热这里只有精品国产在热久久 | 国产精品区一区二区三 | 国产精品一区二区三区久久 | 精品一区二区三区免费观看 | 亚洲欧美v视色一区二区 | www7777| 日日夜夜摸 | 极品福利在线 | 成人三级在线视频 | 欧美一级做一级爱a做片性 欧美一级做一a做片性视频 | 四虎永久在线精品视频播放 | 西瓜影院在线观看理论片 | 国产专区在线视频 | 青草青草久热精品视频在线观看 | 亚洲精品老司机综合影院 | 精品在线免费播放 | 4455亚洲| 青青草欧美 | 老司机精品福利视频 | 欧美黑人成人免费全部 | 手机成人免费视频 | 国产三级在线看 | 婷婷久久综合九色综合98 | 色狠狠一区二区三区香蕉蜜桃 | 亚洲欧洲免费 | 久草视频这里只有精品 | 五月天婷婷丁香中文在线观看 | 成人性视频在线三级 | 欧美视频一区二区专区 | 久久99国产精品成人 | 蜜柚视频免费版在线看 | 女人18毛片视频一级毛片容 | 美女在线网站视频免费观看 |