第1章  前言

1.1 文档目的及开发背景

本文为高通平台driver开发的学习文档,对部分概念性的东西进行了学习和总结。由于driver的跨度太大,内容很多,加上本人水平有限。如有不足之处及遗漏地方,麻烦大家多多包涵!希望这份文档能对大家学习高通平台的驱动开发有所帮助!

1.2 参考文献

序号

文档名称

作者

出版单位

1

80-VC881-1&QSC6055&QSC6065  QSC6075 AND QSC6085 SINGLE CHIP DEVICE SPECIFICATION

Qualcomm

--

2

80-VC881-2&QSC6055,QSC6065, QSC6075,QSC6085 SOFTWARE INTERFACE

Qualcomm

3

注:高通提供的文档比较详细,各个模块都有相关文档!因为文档提供比较齐全(需要自己去下,对于初学者是个难题),相对来说他的技术支持不怎么样!有得必有失!

1.3 术语和缩写解释

术语和缩写

解释

DS

DATA Service

SIO

Serial Input&Output

RDM

Runtime Device Mappe

BT

Blue Tooth

PBL

Primary Boot Loader

第2章  综述

2.1 高通平台的硬件架构

目前开发EVDO的手机或模块大部分采用了QSC6085平台。高通QSC系列的平台是高度集成化,它将PMIC、RF相关模块也集成到一块芯片里(其他公司很少做到这点),对硬件来说可以省很多事。除了上述特殊模块之外,当然也包括一般的LCD、KPD、AUDIO CODEC等很多驱动模块!具体如下图所示:

QSC6085处理器采用ARM9核+DSP的架构,一般就不需要再加DSP去处理Audio和图片。它集成这么多,其他硬件厂商的饭碗都被他抢了,不过这也是大势所趋!

2.2 高通平台驱动文件结构

在一般高通工程(60X5系列)目录下有一个Drivers文件夹,在该文件夹下包含了60X5系列平台上所有驱动文件,分门别类!

从上图中我们可以看到,每一个驱动都有独立的文件夹,这样对于新手学习代码来说比较容易找到相关代码。

2.3  ARM相关知识

因为高通处理器采用的ARM内核,遵循ARM指令,我们有必要学习一下ARM的一些基础知识。一般驱动开发中很少涉及到ARM指令,除了BOOT以及flash开发,大部分都在C语言环境中开发。在这部分我讲的不会太深入,如果大家想深入了解ARM架构,可以去看《ARM体系结构与编程》这本书,相当经典!

2.3.1   ARM基本知识

ARM 采用的是32位架构。也就是说ARM CPU内部的总线是32位的,每条ARM汇编指令都是32位的指令。一个CPU时钟周期最多可以处理一条32位指令或者读取一个32位的数据。32位的指令意味着,与8位和16位的CPU相比,在一个时钟周期内,指令可以携带更多的信息。

ARM 有7个基本工作模式:

User:非特权模式,大部分任务执行在这种模式

正常程序执行的模式

FIQ:当一个高优先级(fast)中断产生时将会进入这种模式

高速数据传输和通道处理

IRQ:当一个低优先级(normal)中断产生时将会进入这种模式

通常的中断处理

Supervisor:当复位或软中断指令执行时将会进入这种模式

供操作系统使用的一种保护模式

Abort: 当存取异常时将会进入这种模式

虚拟存储及存储保护

Undef:当执行未定义指令时会进入这种模式

软件仿真硬件协处理器

System: 使用和User模式相同寄存器集的特权模式

特权级的操作系统任务

ARM 有37个32-Bits长的寄存器.

1 个用作PC( program counter)

1个用作CPSR(current program status register)

5个用作SPSR(saved program status registers)

30 个通用寄存器

当前处理器的模式决定着哪组寄存器可操作. 任何模式都可以存取:

相应的r0-r12子集

相应的 r13 (the stack pointer, sp) and r14 (the link register, lr)

相应的 r15 ( the program counter, pc)

相应的CPSR(current program status register, cpsr)

特权模式 (除system模式) 还可以存取;

相应的 spsr (saved program status register)

CPSR寄存器表示当前ARM的工作状态

条件位:

N = 1-结果为负,0-结果为正或0

Z = 1-结果为0,0-结果不为0

C =1-进位,0-借位

V =1-结果溢出,0结果没溢出

Q 位:仅ARM 5TE/J架构支持,指示增强型DSP指令是否溢出

J 位:ARM 5TE/J架构支持 J = 1:  处理器处于Jazelle状态

中断禁止位:

I  = 1: 禁止  IRQ.

F = 1: 禁止  FIQ.

T Bit

: T = 0: 处理器处于 ARM 状态T = 1: 处理器处于 Thumb 状态

Mode位(处理器模式位):

0b10000  User

0b10001  FIQ

0b10010  IRQ

0b10011  Supervisor

0b10111  Abort

0b11011  Undefined

0b11111  System

2.3.2   ARM存储器格式

在ARM体系中,每个字单元包含4个字节单元或者两个半字单元;一个半字单元中包含两个字节单元。但是在字单元中,4个字节哪一个是高位字节,哪一个是低位字节则有两种不同的格式;big_endian格式和little-endian格式。比如一个整型数0x12345678在内存中如下图所示

-----------
          |    78   | xxxx_0000
           -----------
          |    56   | xxxx_0001
           -----------
         |    34   | xxxx_0002
          -----------
        |    12   | xxxx_0003
          -----------
        
         Little Endian

-----------

|    12   | xxxx_0000
        -----------
        |    34   | xxxx_0001
        -----------
        |    56   | xxxx_0002
        -----------
       |    78   | xxxx_0003
        -----------
       
        Big Endian

高通驱动程序开发参考(一)相关推荐

  1. 高通驱动开发参考(二)

    第1章 Driver相关模块介绍 1.1 REX简介 虽说目前QSC60x5平台上采用L4操作系统,REX只是L4上面的一个Task.但高通为了开发的兼容性,提供的API仍然采用老的一套接口(可能内部 ...

  2. opencv-3.4.3 交叉编译并且移植到高通820开发板(包括Qt 5.11.2部分交叉编译及移植),NEON OpenCV编译

    opencv-3.4.3 交叉编译并且移植到高通820开发板(包括Qt 5.11.2部分交叉编译及移植),NEON OpenCV编译 原文我是用有道笔记记录的,下面排版不是很好,可参看有道笔记原文:h ...

  3. mtk处理器和骁龙对比_高通正在开发全新AR/VR处理器骁龙XR2;骁龙865对比骁龙855 Plus/苹果A13:爆料称性能增加20%...

    1.高通正在开发全新AR/VR处理器骁龙XR2 11月13日消息,知名爆料人士Roland Quandt透露,高通公司正在为AR.VR设备开发一种全新的处理器骁龙XR2(SXR2130). 关于该处理 ...

  4. 基于高通410c开发板,开发android端家庭控制中心APP(1)

    家庭控制中心APP运行在android端,通过与服务器通讯控制高通410c开发板. 基本功能如下: 1. 应用分为三个功能模块,包括电动窗帘.智能照明以及烟雾模块. 2. 电动窗帘模块中,包括调整窗帘 ...

  5. 高通android开发摘要

    一部分是开源的,可以从codeaurora.org上下载,还有一部分是高通产权的,需要从高通的网站上下载. 将高通产权的代码放到:vendor/qcom/proprietary 1. 设置bms一些参 ...

  6. unity+高通vuforia开发增强现实(AR)教程(一)

    增强现实(Augmented Reality,简称AR),是在虚拟现实的基础上发展起来的新技术,也被称之为混合现实.是通过计算机系统提供的信息增加用户对现实世界感知的技术,将虚拟的信息应用到真实世界, ...

  7. 使用高通Vuforia开发AR增强现实游戏(开篇)

    @废话在前 之前想做暴风魔镜的VR游戏,最后来香港学习设备没带过来就没继续做,现在开始学习研究做一下AR游戏开发,毕竟对设备的要求比较低,很方便,看了不少资料,最后还是选了Vuforia这个经典的AR ...

  8. unity+高通vuforia开发增强现实(AR)教程(三)

    前段时间忙公司的事,好久没到CSDN来了,看到教程有这么多人参考,决心再接再厉,这篇教程就讲讲怎么做video形式的增强现实.(自己做了个案例,少女时代著名的甩大腿舞戳我O(∩_∩)O) 高通的SDK ...

  9. 美国高通公司开发出了新的指纹识别技术

    比年回,大家错指纹辨认手艺曾经视而不见,从iPhon5S公布以来,曾经用到良多款具有指纹辨认才能的手机,但非MWC下的一项3D指纹认证处理计划却不一般,明天带您一探究竟.MWC下,QualcommSn ...

  10. unity+高通vuforia开发增强现实(AR)教程(二)

    1.进入https://developer.vuforia.com选择Resource,我们可以看到高通提供多种版本的开发包,这里我们选择 2.下载好后导入unity,将下载好的识别图的unity包也 ...

最新文章

  1. linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效
  2. 飞书在线文档 美誉度国内最佳!一起来围观~
  3. 【连载】优秀程序员的45个习惯之37——提供有用的错误信息
  4. 爬取 爱笔智能 招聘职位
  5. js 中的五种继承方法
  6. APP-V5.0的Sequencer过程
  7. mysql自增id获取失败
  8. java第七章jdbc课后简答题_java学习路线流程
  9. mysql 日期详解_在MySQL中解析日期
  10. CentOS 7.5安装部署Jewel版本Ceph集群
  11. 学习C++项目——数据库知识学习(主从原理,分离配置,远程工具只是了解,都没有实现)
  12. Python基础语法(if语句)
  13. Linux驱动开发之触摸驱动
  14. Unresolveable build extension: Plugin...or one of its dependencies could not be resolved: Failed to
  15. 计算机底层知识之内存
  16. stm32 app 连上阿里云
  17. c语言编程答案,C语言编程答案
  18. VC知识库的一篇文章
  19. SPM空间金字塔模型
  20. 联想Y410pY510p外置显卡Vbios,Y400Y500外置显卡VBIOS, ULTRABAY白名单,卡白名单。

热门文章

  1. wps里的超链接PDF打不开_PDF转Word都可以怎样操作?
  2. 文件二维码、社交媒体二维码如何制作?
  3. 北大软微计算机技术硕士复试,2016北大软微考研复试细节和名单.doc
  4. JQ 吸顶导航-Demo
  5. 基于sklearn的西瓜数据集的SVR回归实现
  6. 深度学习领域最新的技术(CV、NLP)
  7. 运行Wlmadmin无法访问计算机,网络许可证管理员指引.PDF
  8. python做生物信息学分析_Python从零开始第五章生物信息学①提取差异基因
  9. html 中 div 盒子上下垂直居中显示
  10. Python学习笔记——cmd提示pip不是内部或外部命令解决方法