展讯android智能机平台FDL1,FDL2,SPL文件下载问题简析
首先,我们要了解这样一个背景知识:展讯的每颗智能芯片(其他智能机平台应该也是如此)内部都有IROM和IRAM,IROM里有固化的Romcode(用于与PC端工具通讯,下载程序)。
但是......
但是......
由于芯片内部固化的IRAM价格昂贵,容量十分有限,在不同平台上通常只有十几KB到几十KB大小,这么小的内存,是无法支持动辄几百MB的BIN下载的。因此,展讯下载BIN就划分为两级(FDL1和FDL2)下载,利用外部DDR空间大(通常在数十MB到数百MB范围内)的特点,将绝大部分下载代码放到第二级来进行。
展讯智能机的FDL1,SPL文件由代码中的chipram文件夹生成,FDL2,UBOOT文件则由u-boot文件夹生成。
好了,背景了解完毕,下面我们来简单阐述展讯平台的下载和开机流程:
系统上电开机,IROM中的Romcode开始运行,检查系统download键是否按下,若是,则进入下载流程,否则进入开机流程:
一. 下载过程
1. Romcode(0x00000000):与PC通信,下载FDL1到IRAM。FDL1只包含DDR驱动及配置,只需要几KB的运行空间,可以被ROMCODE与下载工具通讯将之下载到IRAM中运行。
2. FDL1:FDL1被下载到IRAM后,PC指针跳到IRAM的起始地址开始运行FDL1。FDL1首先初始化外部DDRRAM,配置外部DDR的寄存器和时序,然后再与下载工具通讯将FDL2下载到外部DDR中运行。
3. FDL2:FDL2被下载到DDR中之后,有充足的运行空间,FDL2带NAND/EMMCflash驱动程序,可以初始化FLASH,并把PAC包的其他各个模块都写入到FLASH中。
二. 开机过程
1. Romcode:0x00000000:判断是开机,复制spl到IRAM,并运行spl(包含DDR驱动及配置)
2. SPL:初始化外部DDRRAM,配置外部DDR的寄存器和时序,然后再拷贝uboot到外部DDR中运行
3. UBOOT:带带NAND/EMMCflash驱动程序,带部分设备初始化,复制其他image到DDRRAM,判断开机模式并进入相应模式。
好了,了解完下载流程,下面,我们将对软件下载过程中遇到的涉及FDL1,FDL2文件的一些问题进行简单分析:
1. 下载工具上FDL1进度条没有走:
(1).软件问题,请首先请检查pc端下载驱动是否安装正确;
(2).操作问题:请首先确认下载操作步骤是否正确,是否已经上电;其次还要确认电脑端口是否有问题,下载数据线是否OK。
(3).硬件问题:如果你已经在这台电脑上下载过展讯平台的软件,那基本可以确认是硬件的问题了:可能是板子CPU没跑起来;也有可能是板子通讯端口有问题。总之,你把机器丢给硬件的哥们就对了。
2.FDL2的进度条没有走:
(1).硬件问题:DDR存储芯片焊接问题,导致完全不通讯---这个可能性比较大。
(2).软件问题:FDL1中的DDR芯片驱动程序问题。请确认DDR芯片类型,容量大小,cs等设置。
3.FDL2的进度条没有走完或走完后不动了:
(1).硬件问题:DDR存储芯片焊接问题,尤其是虚焊问题。
(2).软件问题:FDL1中的DDR芯片驱动程序问题,包括DDR时序及容量大小bank配置等等----这个可能性比较大。
额外再插一句,如何调试FDL?FDL中已经有许多UARTlog,因此通过串口log调试最轻松。可以用USB下载,另外再用uart线连手机的uart口。
4. 下载system.img进度条没有走完:
软件问题:
(1).uboot中的DDR芯片驱动程序问题,包括DDR时序及容量大小bank配置等等。
(2).uboot中的NAND/EMMCflash存储芯片驱动程序问题
(3).boardconfig.mk中系统模块分区大小问题.
本文结束,希望对您了解展讯Android平台的fdl1,fdl2文件有些许的帮助。
展讯android智能机平台FDL1,FDL2,SPL文件下载问题简析相关推荐
- 展讯功能机平台MMK消息流转
展讯功能机平台是一种消息驱动机制.各窗口(控件)向MMI kernel发送消息.然后MMI kernel通过消息分发,分发到对应的handle处理.下面将以按键消息为例,大致的了解一下展讯平台的消息机 ...
- mtk,展讯等手机平台知识杂烩
mtk 采用联法科技的MT6205.MT6217.MT6218.MT6219.MT6226.MT6227.MT6228基带芯片,芯片均采用ARM7 的核. MT6305.MT6305B为电源管理芯片 ...
- android 10.0 两个laucher动态相互切换(退出一个launcher到另外一个launcher桌面 )(RK 展讯 MTK等平台都适用)
1.概述 在10.0的产品定制化开发中,产品提出进入launcher后,设置为默认laucher,在退出launcher后,调用设置原生laucher的方法后进入原生launcher, 2.两个lau ...
- 展锐Android 10平台OTA升级
OTA 整体升级包制作步骤(以SC9863A平台为例) 下载项目 AP 的代码. 通过以下命令设置编译环境. source build/envsetup.sh lunch kheader 通过 mak ...
- 展讯的8825平台 在TP上实现距离传感器的功能
需求:某些客户为了节约成本吧,将距离传感器拿掉,相应的功能用TP触摸屏来模拟实现.流程图如下 移植原理:去掉手机上的感光Sensor,用TP来模拟实现感光sensor在通话时亮屏和灭屏的功能. 当 ...
- 展讯Android 12 通过 ADB 获取当前背光值
cat /sys/devices/platform/sprd_backlight/backlight/sprd_backlight/brightness 读取当前背光,可以将亮度调拉到最小读取最小值 ...
- android平台多路摄像头实现方式的简析
采用Camera API2 HAL3架构,android P和Q的初始化预览流程无异. 流程大概为CameraManager.openCamera打开摄像头设备回调onOpened方法得到Camera ...
- android ota 版本校验,OTA升级签名校验简析
1. 概要 如果进行过OTA升级的开发者,都或多或少有这样的疑问,如何确定该OTA升级包是可以信任的呢?这其中其实涉及到一个签名验证的流程. 2. 签名生成 在生成正规的固件时,一般会运行生成新key ...
- 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
前言 相信这样一个问题,大家都不会陌生, "有什么的方法可以使Android的程序APK不用安装,而能够直接启动". 发现最后的结局都是不能实现这个美好的愿望,而腾讯Android ...
最新文章
- gin 获取post请求的json body操作详解
- python连接linux服务器并使用命令_python基于paramiko模块实现远程连接Linux虚拟机(服务器)并执行指定命令返回输出结果...
- 创业公司产品经理如何画好原型图
- Centos下Nodejs+npm环境-部署记录
- 高并发场景下,如何保证生产者投递到消息中间件的消息不丢失?
- pandas mysql insert_python – Pandas将数据插入MySQL
- 这些面试机会,你该主动放弃!
- 微波工程(3)——网络
- ArcPad 10 使用与同步 ArcGIS Server 的数据全攻略(一)
- Fileupload
- c语言电脑蓝屏代码,电脑蓝屏代码0x0000001a的解决方法
- Premiere 初识PR
- 百度统计和谷歌统计文档
- 认识数据驱动,数据驱动是怎么使用的
- Bibtex 参考文献样式
- 从来不是别人的不幸和痛苦
- 实现文字后面加一条横线的效果
- 系统错误计算机中丢失文件,电脑文件丢失了怎么办?电脑文件丢失原因以及解决方法都在这了!...
- 简单个人静态HTML网页设计作品 基于HTML+CSS+JavaScript仿小米手机网站 html静态在线购物商城网页制作
- Spring Boot 学习之路之 Spring Security(二)加入mybatis