国产毛片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
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本精品在线视频 | 日本99热| 婷婷亚洲视频 | 99久久99久久精品免费看子 | 亚洲视频在线播放 | 欧美一区二区在线免费观看 | 国产手机在线小视频免费观看 | 永久免费观看午夜视频在线 | 亚洲福利一区二区三区 | 岛国大片在线播放 | 色原网站 | 久久国产精品1区2区3区网页 | 国产午夜一区二区在线观看 | 精东影业果冻传媒蜜桃 | 国产精品国产精品国产专区不卡 | 久久91久久91精品免费观看 | 日本黄色网站大全 | 久久这里只有精品66 | 无人区国语版免费观看 | 一区二区中文字幕在线观看 | 男人天堂第七色 | 女人张开腿让男人桶免费最新 | 国产综合91 | 夜夜草天天干 | 日本高清va不卡视频在线观看 | 日韩欧美一区二区不卡看片 | 青青青视频免费一区二区 | 国产日韩在线观看视频 | 国产精品国产三级国产专区5o | 99re国产视频 | 赘婿动画在线观看免费完整版 | 欧美视频日韩视频 | 欧美一区二区高清 | 女老师9| 99热导航 | 玖玖青草 | 精品一区二区三区在线成人 | 亚洲天堂自拍 | 欧美a在线看 | 亚洲成人精品久久 | 久草网视频在线 |