首页 > 其他分享 >Android Qcom USB Driver学习(十一)

Android Qcom USB Driver学习(十一)

时间:2024-08-28 23:36:22浏览次数:9  
标签:map USB ACACACAC Driver BSL Valid Qcom FFFFFFFF Byte

基于TI的Firmware Update固件升级的流程分析usb appliction layers的数据

USB Protocol Package

①/② map to check password correct

Package Format:
Byte[0] = Report Id
Byte[1] = Valid Length (0x21 = 33)
Byte[2] = BSL Core Commands(0x11 RX Password)
Byte[3] = Valid Data (0xFF)
 ...
Byte[Byte[1]+1] = Valid Data (0x00)
Byte[Byte[1]+2] = 0xAC
 ...
Byte[63] = 0xAC (Full Length = 64)

Interrupt Out:  Host Transfer(Client Receive)
(Interrupt IN): Client Transfer(Host Receive)

3F2111FF FFFFFFFF FFFFFFFF FFFFFFFF 
FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 
FF0000AC ACACACAC ACACACAC ACACACAC 
ACACACAC ACACACAC ACACACAC ACACACAC

3F2111FF FFFFFFFF FFFFFFFF FFFFFFFF 
FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 
FFFFFFAC ACACACAC ACACACAC ACACACAC 
ACACACAC ACACACAC ACACACAC ACACACAC

③ map to download bsl program(bootloader)

TI provide the bsl program named RAM_BSL_xxx.txt,拆包后每48个字节进行组包发送

Package Format:
Byte[0] = Report Id
Byte[1] = Valid Length(0x34 = 52)
Byte[2] = BSL Core Commands(0x1B RX Data Block Fast)
Byte[3] = RAM_ADDRESS(0x00)
Byte[4] = RAM_ADDRESS(0x25)
Byte[5] = RAM_ADDRESS(0x00)
Byte[6] = Valid Data (0x00)
...
Byte[Byte[1]+1] = Valid Data(0x85)
Byte[Byte[1]+2] = 0xAC
...
Byte[63] = 0xAC

3F341B00 25000008 0839B240 805A5C01 
32C23140 9033B013 982CFF3F 12010002 
00000008 47200002 09010000 00010600 
FF0901A1 0185ACAC ACACACAC ACACACAC
下一组写入数据的RAM地址为0x002500 + 48 = 0x002530(30 2500)
3F341B30 25003F95 3F750825 01150109 
01810285 3F953F75 08250115 01090191 
02C00902 29000101 00803209 04000002 
03000000 0921ACAC ACACACAC ACACACAC

④ map to load PC(usb reconnect)

⑤ map to send the BSL Version

⑥ map to write the firmware to flash

这里的firmware是指由固件编译后生成的.txt文件,数据格式如上,同样以48个字节拆分进行传输

3F341B00 80002A14 C80C4A48 5A0E3F40 
AEA10F5A 5E4F0200 3A502224 1B4A0600 
0B930420 8A430000 0C437D3C 5E0A3E50 
88235D4E 0600ACAC ACACACAC ACACACAC

⑦ map to Software BOR Reset

⑧ map to load PC(usb reconnect)

详情见User’s Guide MSP430™ Flash Devices Bootloader (BSL)

BSL Mode - Firmware Update

这里的流程图只是大概流程,具体流程还得用usb分析仪进行抓包分析,如上章所示的几个步骤可实现固件升级

标签:map,USB,ACACACAC,Driver,BSL,Valid,Qcom,FFFFFFFF,Byte
From: https://www.cnblogs.com/linhaostudy/p/18385709

相关文章

  • USB 逻辑分析仪分析丢包怎么分析(lecroy USB 逻辑分析仪)
    使用LeCroyUSB逻辑分析仪分析USB数据传输中的丢包现象,通常涉及以下步骤:1.设置触发条件在LeCroyUSB逻辑分析仪中,设置适当的触发条件来捕获数据包丢失的场景。常见的触发条件可以包括:特定的PID(PacketIdentifier)值,如DATA0或DATA1。错误类型,如CRCError(循环冗余......
  • 基于深度学习网络的USB摄像头实时视频采集与水果识别matlab仿真
    1.算法运行效果图预览(完整程序运行后无水印) 将usb摄像头对准一个播放不同水果图片的显示器,然后进行识别,识别结果如下:  本课题中,使用的USB摄像头为:   2.算法运行软件版本matlab2022a 3.部分核心程序(完整版代码包含详细中文注释和操作步骤视频) 程......
  • USB入门系列(二)USB事务处理(上)
    USB事务处理(上)​ USB的事务处理分为三个阶段,这三个阶段的作用分别和can的标准帧很像。令牌阶段(包含了本次数据的类型信息)数据阶段(包含了本次数据的数据信息)握手阶段(包含传输是否成功的状态信息)​ 而每个阶段都由同步字段+信息包+EOP组成。令牌阶段的信息包又叫做令牌......
  • Android Qcom USB Driver学习(十)
    本章主要是基于之前的学习,实现一个hidraw的驱动,发现有两种用于识别usb设备的方式,放别是usb_device_id和hid_device_idhid_probe(1)hid_device_idkernel/msm-4.19/drivers/hid/usbhid/hid-core.cbus=usbusb_register注册驱动->sys/bus/usb/driver↓↓↓↓↓↓......
  • Android Qcom USB Driver学习(九)
    本章主要是基于之前的学习,实现一个hidraw的驱动,发现有两种用于识别usb设备的方式,放别是usb_device_id和hid_device_idhid_probe(1)hid_device_idkernel/msm-4.19/drivers/hid/usbhid/hid-core.cbus=usbusb_register注册驱动->sys/bus/usb/driver↓↓↓↓↓↓......
  • selenium4在使用 下载驱动的时候报错: THIRD_PARTY_NOTICES.chromedriver
    在使用seeleniun自动下载驱动时报错:THIRD_PARTY_NOTICES.chromedriver原来的代码运行一直没有错误的,现在运行后下载下来的驱动是上面的格式导致运行报错,在github和google上查了官方已经修复在4.0.2版本中已经修复通过重新安装或者升级安装pipuninstallwebdriver-manag......
  • Android Qcom USB Driver学习(九)
    高通的某些平台将电源管理移植到了ADSPSubsystem,分析一下其中比较关心的部分Architecture———————————————————————————————————————|GenericTypeCDrvierPowerSupplyFramework| |G......
  • C#如何开发通过USB进行串口通讯的Androud上位机
    使用C#在windows上进行串口通讯应该是相当简单的,在.net里面有SerialPort类。但是假如不是windows,而是在Android上开发一个连接串口设备而进行通讯的软件?也是可以的,但是需要去了解一下.net中如何开发Android应用。一.准备通讯线一般Android手机基本都有TypeC口,首先需要一根OTG转......
  • eUSB是什么/可以干什么?
    eUSB总结1.什么是eUSB1.1eUSB概念eUSB是原USB物理层上的补充,为了解决USB_phy低压需求的问题而出现的,eUSB可以将信号电平降至1.2V甚至更低,与此同时可以优化电源效率。概括为:一种用于芯片间互联的低电压、低功耗的内部接口。1.2应用背景智能终端设备的尺寸追求越来越小,但其......
  • usb请求块以及提交方式
    URB结构体structurb{/*private:usbcoreandhostcontrolleronlyfieldsintheurb*/structkrefkref;/*referencecountoftheURB*/void*hcpriv;/*privatedataforhostcontroller*/atomic_tuse_count;/*......