MDM9205开发环境搭建与编译调试

前言

        如题,这篇文章说的是高通mdm9205这颗物联网芯片,从官方资源的获取(包括文档、代码、软件工具等等)到如何编译出可运行固件的方法。

        对经历了不止一次这颗芯片开发的我来说,在过程中遇到问题,除了寄希望于可能在工作日第二天凌晨得到的case回复,有一篇最新的有指导方向的文档真的太重要了。希望这篇文章可以帮助到正在看的你。


准备工作

获取途径

        高通对外部开放的资源是有限的,包括文档资料和代码工具等等,需要得到高通公司内部授权才能进行下载和使用。这恐怕也是为什么目前能搜索到的开放高通资料普遍零散且匮乏的原因吧(可能还有保密信息的考虑)。所以如果你是公司的人,首先就需要能联系到高通的对接人,审核注册的邮箱账号,后续都通过该账号登录高通的网站和软件工具。

创建账号icon-default.png?t=N7T8https://myaccount.qualcomm.com/signup

官网资源网站icon-default.png?t=N7T8https://createpoint.qti.qualcomm.com/

        Createpoint资源网站上,包括高通很多芯片的型号,需要和高通对接人沟通明确需要授权的型号,开放的资源包括文档、基线代码、编译链工具、提case的权限。这些是开发需要的几项基本的高通资源,如果其他同事比如商务需要子账户管理等等相关权限,就一并提出。

注意:开发前电脑硬盘预留至少30G,给基线代码和编译链工具等等必要的安装存放空间。

文档

        搜索框中输入文档特定的编码,或者需要查找的相关单词,搜索到点击下载即可。

工具

        搜索框中输入工具相关的单词,下方可以勾选工具是在Linux还是windows开发环境中使用,右侧点击下载相应的工具即可,如下图2,注意确认好工具的版本号再下载(版本号下方“工具下载”会说明)。

        除上述编译链,调试设备还需要用到更多高通官方的软件工具,在QPM网站的Tools页面,搜索“QPM3”(Qualcomm Package Manager 3),下载安装到本地备用,后续包括QXDM、PCAT、QUTS等等都需要在该软件中搜索下载。

代码

        如下图,Project和Define Release由高通内部配置好权限后就可以查看到,右侧点击跳转oem后缀的基线代码下载即可。


各编译链

        安装编译链之前,先搜索你下载的基线代码对应的Release note,其中包含基线配置的大致指导步骤(多数只对linux环境有用,且很多细节的修改没有提及)。以下用《RNO-230111212424-00058.1 Release Note for MDM9205.TX.2.1》文档,编译环境Windows+Linux为例(因为我的windows下无法完成TZ和MPSS的编译,咨询高通未解决,所以TZ和MPSS两个分区在linux中运行编译命令)。

工具下载

        如下图,看第3章Getting Started和第4章Build Instructions的内容。注意第3章Getting Started 表格部分,各分区需要的编译链和版本号各不相同,下载前一定要关注

        根据前述“准备工作-工具”小节,下载高通的编译链给linux环境使用,包括:Snapdragon LLVM ARM Toolchain for Linux 4.0.11,Hexagon LLVM Toolchain Release for Linux 8.3.03。给windows环境使用的Snapdragon LLVM ARM Toolchain for Windows 4.0.11。

        另外需要下载三个编译链工具给windows环境使用,一个工具组件给linux使用,否则编译无法完成。这几个都不是高通提供的,但要用于辅助BOOT,RPM和MPSS分区完成编译。分别是:

1. gcc-linaro-aarch64-none-elf-4.9-2014.07_win32

2. gcc-linaro-arm-linux-gnueabihf-4.9-2014.05

3. RVCT 4.0

4. nanopb

        windows要

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue3中的 ref() 为何需要 .value ?

前言 本文是 Vue3 源码实战专栏的第 7 篇,从 0-1 实现 ref 功能函数。 官方文档 中对ref的定义, 接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性 .value。 老规矩还是从单测入手&…

Failed to restart network.service: Unit network.service not found.

执行systemctl restart network命令,报错Failed to restart network.service: Unit network.service not found. 执行 yum install network-scripts命令 再次执行,正常

计算机视觉基础(6)——光流估计

前言 本章我们来学习一下图像处理基础中的运动估计。主要内容包括运动场估计和光流估计两个部分。在运动场估计中,我们将学习到运动场、光流、光流和运动场的区别;在光流估计中,我们将学习到光流估计任务、孔径问题,以及光流估计两…

μC/OS-II---计时器管理1(os_tmr.c)

目录 创建一个计时器重新启动一个计时器停止一个计时器删除一个计时器 计时器是倒计时器,当计数器达到零时执行某个动作。用户通过回调函数提供这个动作。回调函数是用户声明的函数,在计时器到期时被调用。在回调函数中绝对不能进行阻塞调用(…

腾讯云五年服务器CVM和三年轻量应用服务器选哪个?

腾讯云3年轻量和5年云服务器CVM优惠活动入口,3年轻量应用服务器配置可选2核2G4M和2核4G5M带宽,5年CVM云服务器可以选择2核4G和4核8G配置可选,阿腾云atengyun.com分享腾讯云3年轻量应用服务器和5年云服务器CVM优惠活动入口和配置报价&#xff…

【STM32单片机】比赛计时计分系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器,使用OLED显示模块、矩阵按键模块、蜂鸣器等。 主要功能: 系统运行后,OLED默认显示第1节次比赛时间、AB得分。默认是12分钟倒计时…

机器学习6:逻辑回归

假设我们有一个二元分类问题,有两个特征(x1, x2)和对应的类别标签(y)。给定 以下训练数据集: 我们定义逻辑回归模型的假设函数和损失函数。假设函数使用 sigmoid 函 数来将线性函数的输出转换为概率值&…

Java之SpringCloud Alibaba【九】【Spring Cloud微服务Skywalking】

Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】跳转Java之SpringCloud Alibaba【二】【微服务调用组件Feign】跳转Java之SpringCloud Alibaba【三】【微服务Nacos-config配置中心】跳转Java之SpringCloud Alibaba【四】【微服务 Sentinel服务熔断】跳转Java之Sprin…

【2014年数据结构真题】

41. (13分)二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。 给定一棵二叉树T,采用二叉链表存储,结点结构如下: 其中叶结点的weight域保存该结点的非负权值。 设root为指向T的根结点的指针, 请设计求T 的WPL…

抖音电商的野心,中小商家的风口

文丨新熔财经 作者丨寒蝉鸣 反向消费的大浪潮,不会辜负任何一个抓住风口的平台。过去是拼多多,如今是唯品会。 靠着响应新时代消费者对“质价比”的需求,消失在大众视线许久的唯品会,不仅守住了电商老前辈的行业地位&#xff0…

Express基本接口开发-入门学习

前提推荐 任何一个新的知识都是从文档看起,因此express官方文档示例有必要去学习一遍。 推荐看: 推荐入门指南-路由指南-中间件 看完这几个内容之后心里大概知道express有些什么东西了,然后现在就可以去练习了 注意:更多示例-代…

Quarkus 替代 SpringBoot

1 概述2 SpringBoot3 Quarkus4 比较5 调查结果6 从 Spring 转换到 Quarkus7 我是 Spring 开发者,为什么要选Quarkus?8 Spring 开发者可以活用哪些现有知识?9 对Spring开发者有额外的好处吗?10 Spring开发者如何开始学习Quarkus&am…

libgdx实现雪花、下雪效果(二十三)

libgdx实现雪花、下雪效果(二十三) 转自:https://lingkang.top/archives/libgdx-shi-xian-xue-hua package effect;import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.backends.lwjgl3.…

使用CXF调用WSDL(二)

简介 本篇文章主要解决了上篇文章中遗留的对象嵌套问题,要想全面解析无限极的对象嵌套需要使用递归去解决 上文链接: 使用CXF调用WSDL(一) 上文回顾 上文使用了单方法“ call() ”解决了List和基本类型(含String&…

基于逐次变分模态分解(SVMD)联合小波阈值去噪

代码原理 逐次变分模态分解 (Iterative Variational Mode Decomposition, IVMD) 是一种信号分解方法,它可以将一个时域信号分解为若干个本征模态函数(Intrinsic Mode Functions, IMF)。它通过迭代寻找信号的本征模态函数和残差部分&#xff…

Kalman滤波

文章目录 一、公式推导二、扩展卡尔曼滤波 卡尔曼滤波是一种最优化递归数据处理算法。(Optimal Recursive Data Processing Algorithm) Kalman滤波是时域滤波,采用状态空间描述系统,运用递推形式是计算简单,数据存储量…

TSINGSEE视频汇聚管理与AI算法视频质量检测方案

一、建设背景 随着互联网视频技术的发展,视频监管在辅助安全生产、管理等方面发挥了不可替代的作用。但是,在监管场景中,仍然存在视频掉线、视频人为遮挡、视频录像存储时长不足等问题,对企业的日常管理和运转存在较大的安全隐患…

A. Weird Sum

题目链接 : Problem - 1648A - Codeforces 题面 : 题意 : 输入 n m (1≤n*m≤1e5) 和 n 行 m 列的矩阵 a,元素范围 [1,1e5]。 对于矩阵中的所有相同元素对,即满足 a[x1][y1] a[x2][y2] 的元素对 (a[x1][y1], a[x2][y2]),把 abs(x1-x2)…

P3371 【模板】单源最短路径(弱化版)

【模板】单源最短路径(弱化版) 题目背景 本题测试数据为随机数据,在考试中可能会出现构造数据让SPFA不通过,如有需要请移步 P4779。 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路…

代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交的线 T53最大子数组和

LeetCode T1143 最长公共子序列 题目链接:1143. 最长公共子序列 - 力扣(LeetCode) 题目思路: 动规五部曲分析 1.确定dp数组的含义 这里dp数组的含义是结尾分别为i-1,j-1的text1和text2的最长公共子序列长度 至于为什么是i-1,j-1我之前已经说过了,这里再…