展讯android智能机平台FDL1,FDL2,SPL文件下载问题简析

来源:互联网 发布:防沉迷ipad软件 编辑:程序博客网 时间:2024/05/22 15:49

首先,开启下吐槽模式。兄弟我的生活压力这么大,上班被老板喷,下班被老婆喷,不让我在这里对着网络喷,释放下压力,生活还有什么意义?

新年过去了,一年一度的两会又召开了。我们这帮民工又要开始上钟了。

富人们又开始去日本抢购了,电饭锅啦,大米啦,甚至是马桶盖了。小年轻们可以在大街上砸日系车,总不能冲到家来砸马桶盖吧。什么时候富人们能改成抢购日本娘们就好了,一来为国争光,二来还能恶心日本男人,三来又解决了中国的男女失衡问题,我们下层民工不用再为争女人打得头破血流,妈妈再也不担心我的老婆问题了。

柴静的苍穹之下发表了,让我明白了什么叫做屁股决定脑袋,什么叫做阶层对立。对于部分白领中产来说,有钱了当然要绿色环保节能减排,胖子吃饱了当然想减肥,所以大家应该少吃肉。

好啦好啦,吐槽太多了,吃地沟油的命,操中南海的心啊。下面进入工作模式:

 

下面的内容基于展讯资料整理:

首先,我们要了解这样一个背景知识:展讯的每颗智能芯片(其他智能机平台应该也是如此)内部都有IROMIRAMIROM里有固化的Romcode(用于与PC端工具通讯,下载程序)。

但是......

但是......

由于芯片内部固化的IRAM价格昂贵,容量十分有限,在不同平台上通常只有十几KB到几十KB大小,这么小的内存,是无法支持动辄几百MBBIN下载的。因此,展讯下载BIN就划分为两级(FDL1FDL2)下载,利用外部DDR空间大(通常在数十MB到数百MB范围内)的特点,将绝大部分下载代码放到第二级来进行。

 

展讯智能机的FDL1SPL文件由代码中的chipram文件夹生成,FDL2UBOOT文件则由u-boot文件夹生成。

好了,背景了解完毕,下面我们来简单阐述展讯平台的下载和开机流程:

系统上电开机,IROM中的Romcode开始运行,检查系统download键是否按下,若是,则进入下载流程,否则进入开机流程:

.   下载过程

1.      Romcode0x00000000):与PC通信,下载FDL1IRAMFDL1只包含DDR驱动及配置,只需要几KB的运行空间,可以被ROMCODE与下载工具通讯将之下载到IRAM中运行。

2.      FDL1FDL1被下载到IRAM后,PC指针跳到IRAM的起始地址开始运行FDL1FDL1首先初始化外部DDRRAM,配置外部DDR的寄存器和时序,然后再与下载工具通讯将FDL2下载到外部DDR中运行。

3.      FDL2FDL2被下载到DDR中之后,有充足的运行空间,FDL2NAND/EMMCflash驱动程序,可以初始化FLASH,并把PAC包的其他各个模块都写入到FLASH中。

 

. 开机过程

1.  Romcode0x00000000:判断是开机,复制splIRAM,并运行spl包含DDR驱动及配置

2. SPL:初始化外部DDRRAM,配置外部DDR的寄存器和时序,然后再拷贝uboot到外部DDR中运行

3. UBOOT:带NAND/EMMCflash驱动程序,带部分设备初始化,复制其他imageDDRRAM,判断开机模式并进入相应模式。

 

 

好了,了解完下载流程,下面,我们将对软件下载过程中遇到的涉及FDL1FDL2文件的一些问题进行简单分析:

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配置等等----这个可能性比较大。

 

 

额外再插一句,如何调试FDLFDL中已经有许多UARTlog,因此通过串口log调试最轻松。可以用USB下载,另外再用uart线连手机的uart口。

 

4. 下载system.img进度条没有走完:

软件问题:

1.uboot中的DDR芯片驱动程序问题,包括DDR时序及容量大小bank配置等等。

2.uboot中的NAND/EMMCflash存储芯片驱动程序问题

3.boardconfig.mk中系统模块分区大小问题.


本文结束,希望对您了解展讯android平台的fdl1,fdl2文件有些许的帮助。


0 0