• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于USB接口的ARM9微控制器外部存儲器下載工具— MOLY-DO

    基于USB接口的ARM9微控制器外部存儲器下載工具— MOLY-DO

    —— ARM9 MCU External Memory Download Tool Based on USB Interface — MOLY-DO
    作者:深圳懋科科技有限公司 林鴻飛 時間:2011-02-18 來源:電子產品世界 收藏

      上位機

    本文引用地址:http://www.czjhyjcfj.com/article/116955.htm

      開發工具:Microsoft Visual Studio 2005、BusHound 5.0

      原理:通過串口使用 CComPort 類與 通信,完成固件代碼搬移;配置 USB 設備驅動程序,查找 USB 設備,實現與下位機通信,完成對各種存儲設備的操作。注:有關UART啟動握手,詳見上文或 用戶手冊。

      難點:CComPort類、主界面控件移動處理如:CControlPos、CSplitCtrl、CPTabCtrl等類的實現。

      1.LPC3250 UART5 啟動

      LPC3250 支持多種啟動方式。啟動程序可以識別、復制到內部 SRAM(IRAM)并從如下外部源上執行一個外部程序:

      ○ 使用UART5 或 USB 收發器的 UART 啟動。

      ○ SLC/MLC NAND Fflash 啟動。

      ○ 使用 SSP0 的 SPI 啟動。

      UART5 啟動

      UART 數據下載協議假設一個外部設備已經連接到 UART5 或 設置為 UART 模式的 USB 收發器。數據下載協議的第一個動作就是從 UART5 發送一個 boot_id,外圍設備預計回應一個 ‘A’(0x41)。如果收到一個 ‘A’,UART5 再發 boot_id。外圍設備預計回應一個 ‘U’(0x55)和一個 ‘3’(0x33)。如果 ‘U’ 和 ‘3’ 被接收到,之后 UART5 回應一個 ‘R’(0x52)。外圍設備然后會預計發送一個起始地址(32 位值;以 4 個 UART 字節連續發送),接下來是代碼數量(32 位值;以 4 個 UART 字節連續發送)的傳輸。在此時,代碼將被傳輸。傳遞的代碼按字節高低順序存放在起始地址,且當接收到正確數量的代碼后,開機程序跳轉到傳輸代碼的起始地址并退出。開機程序已經放棄控制并轉移到開始執行下載的程序。

      如果 ‘A’、’U’、’3’ 不是在 1 秒之內被接收到,超時,開機程序跳至正常啟動程序。

      主應用程序

       主窗口類CMOLYDODlg 同樣是一個 CDialog 類。在 CMOLYDODlg 類中,實現 CScrollBar(滾動條)、CLRichEditCtrl(控制臺)、CControlPos(控制控件)、CSplitCtrl 等公用子類以及各種存儲器的操作窗口類:CTabNANDDlg、CTabNORDlg、CTabSPIDlg、CTabSDRAMDly、CTabSRAMDlg。

      自定義類 CMainOpt 用于 的主操作。在此類中,通過 USB 完成與下位機的各種通信任務,如:執行操作(發命令字)、發送文件、接收文件、對比文件等等。主應用程序結構圖如圖3。


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 灵山县| 怀来县| 长沙市| 滨海县| 中江县| 丰都县| 松潘县| 盐池县| 林西县| 疏勒县| 龙海市| 宁安市| 汕尾市| 临澧县| 西丰县| 西林县| 拉孜县| 长海县| 原阳县| 宣威市| 彝良县| 崇文区| 含山县| 兴化市| 根河市| 武清区| 曲麻莱县| 宜兰县| 长治县| 灵台县| 永修县| 噶尔县| 建德市| 剑阁县| 衡山县| 定西市| 永修县| 石阡县| 宣武区| 新昌县| 锡林浩特市|