基于USB接口的ARM9微控制器外部存储器下载工具— MOLY-DO
逻辑端点分别用于指令和数据的传输。API 如下:Usb_Link_Data_Write、Usb_Link_Data_Read、Usb_Link_CMD_Write、Usb_Link_CMD_Read。 生成: MOLY_DO_LIB.dll、MOLY_DO_LIB.lib、usb_link.inf、usb_link.sys 上位机 开发工具:Microsoft Visual Studio 2005、BusHound 5.0 原理:通过串口使用 CComPort 类与 LPC3250 通信,完成固件代码搬移;配置 USB 设备驱动程序,查找 LPC3250 USB 设备,实现与下位机通信,完成对各种存储设备的操作。注:有关UART启动握手,详见上文或 LPC3250 用户手册。 难点: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 秒之内被接收到,超时,开机程序跳至正常启动程序。 主应用程序 MOLY-DO 主窗口类CMOLYDODlg 同样是一个 CDialog 类。在 CMOLYDODlg 类中,实现 CScrollBar(滚动条)、CLRichEditCtrl(控制台)、CControlPos(控制控件)、CSplitCtrl 等公用子类以及各种存储器的操作窗口类:CTabNANDDlg、CTabNORDlg、CTabSPIDlg、CTabSDRAMDly、CTabSRAMDlg。 自定义类 CMainOpt 用于 MOLY-DO 的主操作。在此类中,通过 USB 完成与下位机的各种通信任务,如:执行操作(发命令字)、发送文件、接收文件、对比文件等等。主应用程序结构图如图3。
- 基于WinCE6.0的LPC3250串口驱动程序开发(01-05)
- 一种智能化ARINC429通讯卡设计与实现(10-08)
- 一款基于LPC3250单片机的智能电子血压计设计(08-19)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)