Android Qcom USB Driver学习(十一)

news/2024/11/11 5:01:25/文章来源:https://www.cnblogs.com/linhaostudy/p/18385709

基于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 ACACACAC3F2111FF 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] = 0xAC3F341B00 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分析仪进行抓包分析,如上章所示的几个步骤可实现固件升级

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/788783.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最简最速!C++版OpenCV安装配置教程Win/Mac!!!

Clion+OpenCV(C++版)开发环境配置教程Win/Mac平时在学习和比赛的时候都是使用的Python版本的OpenCV,最近遇到了一个项目使用的上位机性能有限于是决定视觉方面使用C++的OpenCV来节约上位机资源提高运行的速度,在查阅了网上的各种资料后发现这些资料参差不齐有些博客的方法绕来…

不可不知的WPF画笔(Brush)

在WPF中,屏幕上的所有内容,都是通过画笔(Brush)画上去的。如按钮的背景色,边框,文本框的前景和形状填充。借助画笔,可以绘制页面上的所有UI对象。不同画笔具有不同类型的输出( 如:某些画笔使用纯色绘制区域,其他画笔使用渐变、图案、图像或绘图)。在WPF中,屏幕上的…

缓存介绍

从业务层面上的堆数据库下性能瓶颈的解决方案: 分库分表、读写分离 程序员修神之路--略懂数据库集群读写分离而已缓存 缓存 (Cache):本质是数据交换的一段缓冲区,也可以称为一种存储数据的组件,主要用于减小数据交换双方速度不匹配的问题。 缓存在计算机世界里是一个常见并…

开源的工作流系统突出优点总结

随时欢迎大家一起了解开源的工作流系统的突出优势和特点。当前,想要实现高效率的办公,可以一起来了解低代码技术平台、开源的工作流系统的相关特点和功能优势。作为较受职场喜爱的平台产品,低代码技术平台拥有可视化才做界面、灵活、好维护操作等多个优势特点,在推动企业流…

2024年最新版Typora免费使用教程心得

在数字化时代,写作已成为我们日常沟通、知识分享的重要手段。然而,繁琐的排版格式常常让人望而却步。幸运的是,Markdown编辑器以其简洁的语法和高效的排版功能,为我们带来了福音。Typora是一款功能强大的文本编辑器,它采用所见即所得的编辑方式,能够让用户快速地编辑各种…

P10786 [NOI2024] 百万富翁

讲解 P10786 [NOI2024] 百万富翁。先爆搜出 t>=9 的部分分,然后考虑使用动态规划算法进行常数优化跑出答案。思路: 先考虑 Sub1 的部分分,暴力算法:暴力询问所有 \(i<j\) 的数对 \((i,j)\)。 则一个 \(i\) 为最大值当且仅当 \((i,j)\) 的返回值都是 \(i\) 且在 \(i\)…

用我十多年的“奇葩”经验,给在“挂吊瓶”的博客园几点建议

初识博客园 我是08年开始接触开发的,一开始涉及的就是.net和java,记得那会好像是jar6来着,net嘛还是2.0 那时候包括现在,找资料很多时候会找到博客园来 一开始我以为博客园是很多博主成立的一个联盟,就是各自弄一个博客系统,然后公用一个域名 为啥会这么想呢? 因为我看高…

基于深度学习网络的USB摄像头实时视频采集与水果识别matlab仿真

1.算法运行效果图预览 (完整程序运行后无水印)将usb摄像头对准一个播放不同水果图片的显示器,然后进行识别,识别结果如下: 本课题中,使用的USB摄像头为:2.算法运行软件版本 matlab2022a3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)程序中包括MATLAB读取摄…

Android 常用的性能分析工具详解:GPU呈现模式

此篇将重点介绍几种常用的Android性能分析工具: 一、Logcat 日志 选取Tag=ActivityManager,可以粗略地知道界面Displaying的时间消耗。当我们打开一个Activity的时候,log会打印一串log如下: I/ActivityManager﹕ Displayed xxx.xxx.xxx/TestActivity: +1s272ms (total +3s…

AI - 一文了解AIOps的含义、特点与功用

AIOps定义 AIOps是智能运维(Artificial Intelligence forITOperations)的英文缩写。 当今,专业厂商根据自身理解和商业目的,分别给出了各具特色的AIOps定义。 主要关键字:IT运维、人工智能 (AI)、机器学习(ML)、自然语言处理(NLP)、大数据、数据分析、运营效率等 以下…

两种解决powerdesigner概念模型转物理模型报字段重复错误的方法

问题 使用 powerdesigner 概念模型转物理模型时会报一个不能重复的错误解决方法 一、取消勾选Unique code取消勾选以后保存,再一次生成物理模型。 二、取消勾选Entity Attribute,不对属性进行检查 如果Unique code取消勾选后依旧不行,可以尝试第二种解决办法。取消勾选以后点…