基于JUNGO STACK的USB下载流程
来源:互联网 发布:java基础编程实例 编辑:程序博客网 时间:2024/06/05 04:24
一,总体过程如下图:
下载基于USB JUNGO STACK,高通MDM9600平台。QPST下载时,mbn文件的同一级目录下必须要有NPRG9x15.hex/ENPRG9x15.hex。
二,DLOAD过程:是指设备进入下载模式的过程,可以在TMC起来后设置magic number,然后重启进入下载模式,也可以在boot过程中进入下载模式,进入下载模式主要的是USBDLOAD初始化,以及CMD_WRITE命令下载ARMPRG image。函数调用关系如下:
osbl_main_procs->osbl_dload_check(boot_dload_entry)->osbl_dload_entry->boot_dload_enter_dload->boot_downloader(dloadusb_init,process_packets)
如下图所示:
如果是从TMC进入的dload,那么还需要
Dload_entry和Boot_dload_transition两个过程,停止USB main core,设置magic number,然后重启,进入osbl_main_procs。
Dload_entry和Boot_dload_transition两个过程如下图所示:
HOSTDL 也就是ARMPRG, 是一个下载程序,程序员可以修改,编译生成,然后集成到下载工具中。handle_hello, handle_stream_write等是用来下载code到flash中的。
下载HOSTDL的协议是Dload协议,也就是DMSS download协议,CMD_WRITE就是用来下载HOSTDL的。下载code的协议为stream download协议。
Start HOSTDL过程,是指启动ARMPRG程序,准备将软件下载到flash中的过程,采用HDLC的协议。它是通过CMD_GO命令,然后通过库函数Jump_armprg跳转到main_c,然后开始执行Packet_loop->packet_process.如下图:
hsu_al_armprg_start_stack函数会建立为HOSTDL建立专门的BOOT CORE。 HOSTDL的代码就是为了给PC下载工具用的,通过这部分代码生成了ARMPRG。
- 基于JUNGO STACK的USB下载流程
- STM32自定义USB设备开发详细流程讲解及全套资料源码下载(基于libusb)
- 基于stm32f10x单片机USB流程理解
- 基于quartus ii 的fpga下载程序流程总结
- Jungo WinDriver
- 基于数组的Stack类
- 基于OHCI的USB主机 —— OHCI(基本流程)
- 3.4 基于OHCI的USB主机 —— OHCI(基本流程)
- USB枚举的详细流程
- USB枚举的详细流程
- 基于Atmega644PA 单片机的Arduino电子积木 Qotusun mini主控及usb下载模块
- 基于USB的虚拟示波器
- 基于STM32的USB枚举
- 基于STM32的USB开发
- USB Driver Stack Architecture
- USB device stack
- USB开始枚举的时间以及stack的建立
- Cstyle的UEFI导读之USB Driver Stack
- 关于成功和心态
- Windows7操作系统启动故障解决方案集锦
- 计算程序的耗时
- PHP实现快速排序
- hdu1250-Hat's Fibonacci
- 基于JUNGO STACK的USB下载流程
- 字符串编码转换(GBK) NSString, char, NSData相互转化
- 实验1《数据库与表的基本操作》
- 正则表达式引擎的构建——基于编译原理DFA(龙书第三章)——1 概述
- [UIView recursiveEnumerateSubviewsUsingBlock:]: unrecognized selector sent to instance
- VS2008或2010资源管理器里为啥没有解决方案
- C++内存管理学习笔记(1)
- hdu 1228 A + B
- hdu1250-Hat's Fibonacci