首先,我们要了解这样一个背景知识:展讯的每颗智能芯片(其他智能机平台应该也是如此)内部都有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文件下载问题简析相关推荐

  1. 展讯功能机平台MMK消息流转

    展讯功能机平台是一种消息驱动机制.各窗口(控件)向MMI kernel发送消息.然后MMI kernel通过消息分发,分发到对应的handle处理.下面将以按键消息为例,大致的了解一下展讯平台的消息机 ...

  2. mtk,展讯等手机平台知识杂烩

    mtk 采用联法科技的MT6205.MT6217.MT6218.MT6219.MT6226.MT6227.MT6228基带芯片,芯片均采用ARM7 的核. MT6305.MT6305B为电源管理芯片 ...

  3. android 10.0 两个laucher动态相互切换(退出一个launcher到另外一个launcher桌面 )(RK 展讯 MTK等平台都适用)

    1.概述 在10.0的产品定制化开发中,产品提出进入launcher后,设置为默认laucher,在退出launcher后,调用设置原生laucher的方法后进入原生launcher, 2.两个lau ...

  4. 展锐Android 10平台OTA升级

    OTA 整体升级包制作步骤(以SC9863A平台为例) 下载项目 AP 的代码. 通过以下命令设置编译环境. source build/envsetup.sh lunch kheader 通过 mak ...

  5. 展讯的8825平台 在TP上实现距离传感器的功能

    需求:某些客户为了节约成本吧,将距离传感器拿掉,相应的功能用TP触摸屏来模拟实现.流程图如下   移植原理:去掉手机上的感光Sensor,用TP来模拟实现感光sensor在通话时亮屏和灭屏的功能. 当 ...

  6. 展讯Android 12 通过 ADB 获取当前背光值

    cat /sys/devices/platform/sprd_backlight/backlight/sprd_backlight/brightness 读取当前背光,可以将亮度调拉到最小读取最小值 ...

  7. android平台多路摄像头实现方式的简析

    采用Camera API2 HAL3架构,android P和Q的初始化预览流程无异. 流程大概为CameraManager.openCamera打开摄像头设备回调onOpened方法得到Camera ...

  8. android ota 版本校验,OTA升级签名校验简析

    1. 概要 如果进行过OTA升级的开发者,都或多或少有这样的疑问,如何确定该OTA升级包是可以信任的呢?这其中其实涉及到一个签名验证的流程. 2. 签名生成 在生成正规的固件时,一般会运行生成新key ...

  9. 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法

    前言 相信这样一个问题,大家都不会陌生, "有什么的方法可以使Android的程序APK不用安装,而能够直接启动". 发现最后的结局都是不能实现这个美好的愿望,而腾讯Android ...

最新文章

  1. gin 获取post请求的json body操作详解
  2. python连接linux服务器并使用命令_python基于paramiko模块实现远程连接Linux虚拟机(服务器)并执行指定命令返回输出结果...
  3. 创业公司产品经理如何画好原型图
  4. Centos下Nodejs+npm环境-部署记录
  5. 高并发场景下,如何保证生产者投递到消息中间件的消息不丢失?
  6. pandas mysql insert_python – Pandas将数据插入MySQL
  7. 这些面试机会,你该主动放弃!
  8. 微波工程(3)——网络
  9. ArcPad 10 使用与同步 ArcGIS Server 的数据全攻略(一)
  10. Fileupload
  11. c语言电脑蓝屏代码,电脑蓝屏代码0x0000001a的解决方法
  12. Premiere 初识PR
  13. 百度统计和谷歌统计文档
  14. 认识数据驱动,数据驱动是怎么使用的
  15. Bibtex 参考文献样式
  16. 从来不是别人的不幸和痛苦
  17. 实现文字后面加一条横线的效果
  18. 系统错误计算机中丢失文件,电脑文件丢失了怎么办?电脑文件丢失原因以及解决方法都在这了!...
  19. 简单个人静态HTML网页设计作品 基于HTML+CSS+JavaScript仿小米手机网站 html静态在线购物商城网页制作
  20. Spring Boot 学习之路之 Spring Security(二)加入mybatis

热门文章

  1. xadmin中写ajax,xadmin入门使用
  2. 刘帅嵌入式系统-SUB减法指令
  3. 8086汇编中mov,add,sub语法
  4. 记录deepin使用问题
  5. spring进行mock测试
  6. 【矩阵论】3. 矩阵函数——常见解析函数
  7. matlab遗传算法 约束条件,关于MATLAB 遗传算法 加入约束条件的问题,求大神帮助!...
  8. 斗转星移——面向对象(三)
  9. 在div中插入文字和改变背景色
  10. Preference Activity