基于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_downloaderdloadusb_initprocess_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。

 

原创粉丝点击