基于USB接口的ARM9微控制器外部存储器下载工具— MOLY-DO
上位机
本文引用地址:https://www.eepw.com.cn/article/116955.htm开发工具: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。
评论