全志 A10 A20 A31 A13固件配置,打包,烧写指南

更新时间:2023-08-27 17:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

全志 A10 A20 A31 A13固件配置,打包,烧写指南

SPR用户手册

VersionV1.00

2011-8-10

Jerry.W

初稿

Data

Author

ChangeDescription

全志 A10 A20 A31 A13固件配置,打包,烧写指南

目录

11.11.21.31.422.1

引言.....................................................................................................................................1什么是SRP.....................................................................................................................1编写目的.........................................................................................................................1目录结构.........................................................................................................................1参考手册.........................................................................................................................2启动设置.............................................................................................................................1系统引导.........................................................................................................................12.1.12.1.22.1.32.1.42.1.52.2

启动脚本.............................................................................................................1系统目录.............................................................................................................2系统脚本.............................................................................................................2参数传递.............................................................................................................4单系统引导示例(Linux)....................................................................................5

多系统引导.....................................................................................................................62.2.12.2.2

启动脚本.............................................................................................................7多系统引导示例................................................................................................8

2.3启动画面.......................................................................................................................102.3.12.3.22.3.3

启动脚本设置..................................................................................................10系统脚本设置..................................................................................................12启动画面修改示例..........................................................................................13

2.4启动频率和电压...........................................................................................................162.4.12.4.22.4.3

设置启动频率..................................................................................................16设置启动电压..................................................................................................17频率和电压的关系..........................................................................................18

2.52.6

强制升级.......................................................................................................................18Recovery.......................................................................................................................192.6.12.6.2

Recovery功能的使用......................................................................................19Recovery按键的选择......................................................................................19

34

方案设置.............................................................................................................................1固件打包.............................................................................................................................2

全志 A10 A20 A31 A13固件配置,打包,烧写指南

4.14.24.34.44.54.6

规划磁盘分区.................................................................................................................2制作分区镜像.................................................................................................................5固件包中添加文件.........................................................................................................8分区镜像烧写关系.......................................................................................................10生成固件包...................................................................................................................12固件包制作示例(Android)..........................................................................................124.6.14.6.24.6.34.6.44.6.5

android分区.....................................................................................................13android分区镜像.............................................................................................15android镜像添加.............................................................................................15android镜像下载.............................................................................................16制作固件包.......................................................................................................16

4.7FAQ...............................................................................................................................174.7.14.7.2

文件丢失...........................................................................................................17大小关系...........................................................................................................17

55.1

固件刷机...........................................................................................................................18USB刷机......................................................................................................................185.1.1

刷机前的准备..................................................................................................18

资源准备..................................................................................................18按键种类..................................................................................................18关机准备..................................................................................................18

5.1.1.15.1.1.25.1.1.35.1.2

进入usb刷机模式...........................................................................................19

刷机按键方式..........................................................................................19组合按键方式..........................................................................................19串口方式..................................................................................................19

5.1.2.15.1.2.25.1.2.3

5.26

卡刷机...........................................................................................................................20文件更新...........................................................................................................................216.1.1

U盘更新文件...................................................................................................21

77.1

二次开发...........................................................................................................................23平台需求与安装...........................................................................................................247.1.1

硬件需求与安装..............................................................................................24

全志 A10 A20 A31 A13固件配置,打包,烧写指南

7.1.27.2

软件需求与安装..............................................................................................24

系统服务.......................................................................................................................247.2.17.2.27.2.37.2.47.2.57.2.67.2.77.2.8

中断服务...........................................................................................................24文件系统...........................................................................................................24内存管理...........................................................................................................24电源管理...........................................................................................................24TWI服务..........................................................................................................24时钟服务...........................................................................................................24脚本调用...........................................................................................................24显示服务...........................................................................................................24

7.37.489

驱动编写.......................................................................................................................24应用编写.......................................................................................................................24FAQ...................................................................................................................................25结束...................................................................................................................................26

全志 A10 A20 A31 A13固件配置,打包,烧写指南

1引言

1.1什么是SRP

SRP系统,它包括了启动,量产,以及升级等功能,同时也可以根据用户需求,定制出用户的个性化功能。

SPR是sprite的简写,翻译成中文,是小精灵的意思。使用这个名字,希望这个系统的功能像故事中的精灵一样,强大,丰富。

1.2编写目的

编写本手册的目的,是为了用户尽快熟悉SPR系统,然后可以更好的使用它。用户也可以通过阅读此文档,了解SPR系统的组成。

1.3目录结构

|--SPR

|--boot0|--boot1|||||||||||

|--core|--drivers||

--drv_de--drv_demo

(第一级启动目录)(第二级启动目录)(启动内核)(驱动目录)(显示驱动)(驱动范例)(应用目录)(标准启动应用)(应用范例)(头文件)(IC寄存器)(存储设备头文件)(驱动头文件)

|--apps||

--BootMain--app_demo

|--include|||

|--arch|--block_device|--driver

全志 A10 A20 A31 A13固件配置,打包,烧写指南

|||--interinc|||--syscall|

|

|--egon2

|--config|--workspace||--eFex|||--usb|||--card||

|--sysconfig

||--eGon|||--nand|||--sdcard||

|--spinor

||--pctools||--wboot|

|

|--bootfs

参考手册

(启动模块头文件)(系统调用头文件)(SPR总头文件)(SPR配置)(固件目录)(烧写与下载目录)(USB烧写目录)(卡烧写目录)(配置文件)(启动文件目录)(nand启动文件)(sdcard启动文件)(spinor启动文件)(PC工具)(打包目录)(启动分区目录)

1.4

全志 A10 A20 A31 A13固件配置,打包,烧写指南

2启动设置

本节介绍的是SPR系统中和启动相关的设置。通过这些设置,可以实现下方介绍的多种功能。

这之中所有的脚本中涉及的“C”盘,都是指workspace\wboot\bootfs目录。打包烧写之后,这个目录被制作成了第一个分区镜像烧写到小机存储设备上。在SPR系统启动的时候,系统会自动把这个分区镜像当做C盘访问。从文件的角度来看,“C”就是指PC上的“workspace\wboot\bootfs”。

2.1系统引导

系统引导是SPR系统最基本的功能,理论上,SPR可以引导各种操作系统,不论是已知的,还是未知的。

2.1.1启动脚本

要进行系统引导,首先需要修改workspace\wboot\bootfs\boot.ini启动脚本,这是一个文本文件。一个可能的启动脚本文件内容如下:[system]start_os_nametimeoutdisplay_devicedisplay_mode

=linux=-1=0=0

[linux]

这是一个基础的启动脚本,通过这个脚本,可以完成和启动有关的功能。

在文件中,[system]指的是全局性的设置,它之下有四种设置,现在依次解释每个项的含义。

start_os_name:系统名称

全志 A10 A20 A31 A13固件配置,打包,烧写指南

这个名称是SPR系统在引导操作系统的时候,认为的操作系统名称。这个名称没有特别含义,只是作为一个符号存在,但必须是系统列表的其中一个。在下面还将有相关介绍。

timeout:超时时间

设置的超时时间,单位是秒。单系统引导的时候,这个数值没有意义。

display_device:显示设备

相关信息将在启动画面中介绍

display_mode:显示模式

相关信息将在启动画面中介绍

通常情况下,[system]的描述结束之后,其下方是操作系统列表。在示例脚本中,操作系统列表只有一个项目,即[linux]。它表示当前只需要引导linux操作系统。在system的介绍中提到,start_os_name处的名字必须是操作系统列表中的某一个。当列表中只有一个系统的时候,start_os_name处就必须填上这个系统的名称。

示例脚本中,只有一个linux操作系统需要引导,它属于单系统引导的范围。

2.1.2系统目录

系统目录是指存放操作系统脚本的目录。在前文的start_os_name处,所填写的操作系统名称并不是为了写上一个已知的系统,而是为了告诉SPR,在什么地方去寻找系统脚本。假设start_os_name处填写的系统名称是os_name,那这个规则就是:在wboot\bootfs目录下,寻找一个名为os_name的目录,然后,在这个目录下,自动寻找一个名为os_name.ini的文本文件。由此可见,start_os_name处填写的就是系统目录名称。

按照这个规则,可以引导任意按照系统镜像方式加载的操作系统。比如,可以定义一个名为linux1的系统,填写到boot.ini脚本中,SPR会自动到linux1目录中寻找名为linux1.ini的脚本。而这个叫做linux1的系统,也许和真正的linux一点关系都没有。

2.1.3系统脚本

启动脚本的目的是为了选择操作系统,系统脚本则是为了选择操作系统所要加载的镜像。

一个典型的系统脚本如下所示:

全志 A10 A20 A31 A13固件配置,打包,烧写指南

[segment]

img_name=c:\linux\bImageimg_size=0x2000000img_base=0x40008000

[segment]

img_name=c:\linux\paramsimg_size=0x100img_base=0x40000000

[script_info]

script_base=0x43000000script_size=0x10000

[logo_info]

logo_name=c:\linux\android.bmplogo_address=0x48000000logo_show=1logo_off=0

[global_info]start_mode=0

从示例脚本中可以看出,一共有四种类型的配置,分别是segment,script_buf,logo_info,global_info。

segment:系统镜像配置

这是和操作系统的镜像相关的配置信息。img_name表示文件的路径与名称。img_size表示允许使用的内存的最大容量。

全志 A10 A20 A31 A13固件配置,打包,烧写指南

img_base表示存放文件数据的内存开始的地址。

系统运行的时候,SPR会读取出文件名,然后寻找对应的文件。根据给定的内存容量,比较文件长度和内存容量。如果文件比内存还要大,则认为内存不够,报告一个错误;否则,就把文件读到给定的内存起始地址。

当存在多个segment的时候,就反复上述的过程,一直到把所有的文件都读取到内存中,或者遇到错误中止。SPR在引导系统的时候,会从第一个segment的内容开始执行。

script_info:系统配置信息

它描述了关于配置信息的存放情况。script_base表示配置脚本存放的起始地址

script_size表示允许配置配置脚本使用的内存最大容量

如果用户需要使用配置数据,则需要在这个地方把配置数据的相关信息配置好。SPR会读出这里的配置信息,然后把数据存放到script_base指定的内存地址。如果这里没有做任何配置,则SPR不会对配置数据做任何处理。

logo_info:开机LOGO

这个字段表明的是系统启动的时候,显示在屏幕上的图片的相关信息。具体信息将在启动画面中介绍。

global_info:全局信息

现在这里只有一个字段,即start_mode。默认这个值是0,用户不要去修改它,否则可能导致系统启动不正常。

2.1.4参数传递

有的操作系统会把预先设置好参数,在系统启动的时候把参数传递给操作系统。在目前的SPR系统中,要实现这样的目的很容易。

第一步,把要传递的参数做成文本文件的形式,存放在系统目录中。比如,linux要传递参数,就把参数做成文件,存放在workspace\wboot\bootfs\linux目录下。

第二步,修改系统脚本,把参数文件作为一个系统镜像,让SPR加载的时候,把它读到内存。具体做法是在系统脚本中增加一个segment,形式如下:

全志 A10 A20 A31 A13固件配置,打包,烧写指南

[segment]

img_name=c:\linux\paraimg_size=0x2000img_base=0x40028000

示例中,假设存在这样一个名为para的参数文件,要把它传递给操作系统。只要把这段添加到系统脚本,这个参数文件的内容就会被读取到内存0x40028000的位置。这样,系统正式启动之后,可以在内存0x40028000的位置读到这个参数文件的内容。

2.1.5单系统引导示例(Linux)

有了前面的介绍,用户可以实现操作系统的引导。这里以Linux系统为例进行说明,首先取到linux的内核镜像bImage,以及参数文件params。参数文件内容是linux的启动参数,这里把它做成了一个文件的形式。

第一步,修改启动脚本

在启动脚本boot.ini中,把自己的系统名称写上,如下所示:[system]start_os_nametimeoutdisplay_devicedisplay_mode

=linux=-1=0=0

[linux]

第二步,创建系统目录

在workspace\wboot\bootfs目录下,创建一个目录,名为“linux”,和启动脚本中的系统名称保持一致,但是注意不要超过8个字符。

第三步,存放系统镜像

把bImage文件存放到这个目录当中,以及把linux的参数文件params文件。

第四步,创建系统脚本

全志 A10 A20 A31 A13固件配置,打包,烧写指南

在创建的目录中,再创建一个名为“linux.ini”的文本文件。文本文件的内容如下:[segment]

img_name=c:\linux\bImageimg_size=0x2000000img_base=0x40008000

[segment]

img_name=c:\linux\paramsimg_size=0x100img_base=0x40000000

[script_info]

script_base=0x43000000script_size=0x10000

[logo_info]

logo_name=c:\linux\android.bmplogo_address=0x48000000logo_show=1

这里把linux的内核镜像bImage放到了第一个segment处,表示是执行的第一份内容。同时,脚本中也要求显示一幅开机LOGO,图片文件存放在同一个目录下,名为android.bmp。

通常,完成了这个设置,就可以正确引导操作系统linux了。如果希望在加载系统的过程中,可以在屏幕上显示其它开机LOGO,请阅读启动画面一节。

2.2多系统引导

多系统引导,表示启动的时候有超过一个的操作系统可以选择,用户可以通过按键的方式选择使用哪一个操作系统。SPR中给出的做法是,按下普通按键的时候,会有某个操作系统被选中,但是不会被引导;当按下power按键的时候,就引导当前被选中的系统。

全志 A10 A20 A31 A13固件配置,打包,烧写指南

所谓选中,是指,在SPR中,每个操作系统可以使用最多四张图片来表示。处于选中状态的系统,这四张图片会轮流出现在屏幕上,如果图片设计得当,就会呈现动画或者闪烁。当没有选中的时候,则在屏幕上只会出现一张图片。这样,用户可以很清楚的看到自己所选、的操作系统是哪个。

2.2.1启动脚本

在SPR系统中,多系统引导需要关注的是启动脚本。一个多系统启动的boot.ini脚本应该如下所示:[system]start_os_nametimeoutdisplay_devicedisplay_mode

=linux=-1=0=0

[linux]os_show[0]os_show[1]

=c:\os_show\linux1.bmp=c:\os_show\linux2.bmp

[wince]os_show[0]os_show[1]

=c:\os_show\wince1.bmp=c:\os_show\wince2.bmp

这个示例脚本中,给出了linux和wince启动的例子。多系统引导中,[system]的含义没有太大差别,不过还是重新列举下。

start_os_name:系统名称

首选的启动的系统名称。多系统引导的时候,表示处于这个位置的操作系统将处于选中状态。

timeout:超时时间

全志 A10 A20 A31 A13固件配置,打包,烧写指南

设置的超时时间,单位是秒。多系统引导的时候,这个数值有意义。如果是-1,表示永久等待,直到用户按下系统选择按键之后才引导操作系统;如果是0,表示立即引导处于选中状态的系统;

如果是正数,表示等待相应的秒之后,自动引导选中的操作系统;如果等待的过程中用户按下了普通按键,则改变成永久等待,直到用户按下power按键为止;

display_device:显示设备

相关信息将在启动画面中介绍。

在操作系统列表中,可以看出,多了一项[wince],和[linux]类似,它表示,当前可以引导的操作系统,同时包括wince和linux。

同时,在[wince]或者[linux]的下方,相比较单系统引导,还多了两个项目os_show,以linux为例,即:[linux]os_show[0]os_show[1]

=c:\os_show\linux1.bmp=c:\os_show\linux2.bmp

这两个条目表示了图片的路径,存放在PC上的workspace\wboot\bootfs\os_show目录下。这里的os_show就代表了系统是否处于选中状态的图片的路径。每个系统的条目下,最多可以有四张图片,即os_show[0],os_show[1],os_show[2],os_show[3]。系统选中的时候,这四张图片轮流出现;当未选中的时候,只出现第一张即os_show[0]代表的图片。

当设置好了boot.ini启动脚本,有关多系统启动的工作就完成得差不多了。接下来的工作,就集中在系统脚本中。

多系统引导的系统脚本和单系统引导的系统脚本完全一样,这里就不再重复介绍系统脚本,用户可以参阅系统引导一节,里面有关于系统脚本设置的相信介绍。

2.2.2多系统引导示例

有了前面的介绍,用户可以通过实现多系统引导。

第一步,修改启动脚本。

把自己需要启动的操作系统名称填写到脚本中,这里将以两个linux操作系统为例说明这点。比如,有两个不同版本的linux系统需要引导,我们可以简单的把它们取名为linux1

全志 A10 A20 A31 A13固件配置,打包,烧写指南

和linux2。然后,我们给它们提供一组图标,表示系统的选择状态。然后,修改处的启动脚本如下:[system]start_os_nametimeoutdisplay_devicedisplay_mode

=linux1=-1=0=0

[linux1]os_show[0]os_show[1]

=c:\os_show\linux11.bmp=c:\os_show\linux12.bmp

[linux2]os_show[0]os_show[1]

=c:\os_show\linux21.bmp=c:\os_show\linux22.bmp

这里假设了在workspace\wboot\bootfs\os_show目录下存在linux11.bmp,linux12.bmp,linux21.bmp,linux22.bmp等图片。首选的操作系统是linux1。

第二步:创建系统目录

在workspace\wboot\bootfs目录下,创建两个目录,名称分别是linux1和linux2,原则就是和启动脚本的系统名称一致。

第三步,存放系统镜像

把属于linux1的操作系统镜像存放到linux1目录当中,再把属于linux2的操作系统镜像存放到linux2目录当中。

第四步,修改或创建系统脚本

首先在linux1目录中,创建一个名为linux1.ini的文本文件。文件的内存需要按照系统脚本中说明的内容经行书写。然后,再为linux2创建一个属于它的系统脚本。

通过以上的步骤,就完成了linux1和linux2的双系统引导。使用的时候,用户会发现上电之后,屏幕上会出现两个图标,分居屏幕的左右两侧,左侧的是linux1的图标,右侧

全志 A10 A20 A31 A13固件配置,打包,烧写指南

的是linux2的图标。图标就是启动脚本中所写的bmp图片文件。

上电的时候,属于linux1的图标在反复闪烁,实际上是linux11.bmp和linux12.bmp在轮流出现在屏幕上,而属于linux2的图标只有linux21.bmp在屏幕上一动不动。

当点击普通按键的时候,选中的系统转移到了linux2,这时候,就看到属于linux2的linux21.bmp和linux22.bmp在轮流出现在屏幕上,而属于linux1的图标只有linux11.bmp在屏幕上出现。

当用户选中自己需要的操作系统,可以看下power按键确认,这时候,屏幕上的图标将被清空,然后在屏幕上显示系统对应的LOGO。同时,SPR在加载系统镜像,然后,正常情况下就进入到操作系统中了。

以上,是linux1和linux2的多系统引导过程。同理,只要用户按照上述的操作过程进行,就可以完成任意系统的引导过程。

2.3启动画面

启动画面是启动阶段很重要的内容,和它相关的设置项目比较多。下面将依次进行介绍。

2.3.1启动脚本设置

在单系统或者多系统启动中,都有说到启动脚本有关于现实的显示的相关介绍,即如下的内容:……

display_devicedisplay_mode……

display_device:是指用于显示的设备,比如LCD,TV,HDMI,等等。display_mode:表示用于显示的模式,它和显示设备相关。

这里的设置时一个全局性的设置,后面的所有和显示相关的部分,都将用到这里设置的显示设备与显示模式。

他们的具体相关关系如下:

display_device=0

=0=0

全志 A10 A20 A31 A13固件配置,打包,烧写指南

表示显示设备是LCD

对应的display_mode设置没有意义,写成任何数值都可以。

display_device=1

表示显示设备是CVBS输出,所支持的显示模式有display_mode=9,显示模式PALdisplay_mode=10,显示模式NTSC

display_device=2

表示显示设备是YPBPR,所支持的显示模式有display_mode=0,显示模式480Idisplay_mode=1,显示模式576Idisplay_mode=2,显示模式480Pdisplay_mode=3,显示模式576Pdisplay_mode=4,显示模式720P_50Hzdisplay_mode=5,显示模式720P_60Hzdisplay_mode=6,显示模式1080I_50Hzdisplay_mode=7,显示模式1080I_60Hzdisplay_mode=11,显示模式1080P_50Hzdisplay_mode=12,显示模式1080P_60Hz

display_device=3

显示设备是HDMI,所支持的显示模式有display_mode=0,显示模式480Idisplay_mode=1,显示模式576Idisplay_mode=2,显示模式480Pdisplay_mode=3,显示模式576Pdisplay_mode=4,显示模式720P_50Hzdisplay_mode=5,显示模式720P_60Hzdisplay_mode=6,显示模式1080I_50Hzdisplay_mode=7,显示模式1080I_60Hzdisplay_mode=8,显示模式1080I_24Hzdisplay_mode=11,显示模式1080P_50Hz

全志 A10 A20 A31 A13固件配置,打包,烧写指南

display_mode=12,显示模式1080P_60Hz

display_device=4

显示设备是VGA,所支持的显示模式有display_mode=0,显示模式H1680_V1050display_mode=1,显示模式H1440_V900display_mode=2,显示模式H1360_V768display_mode=3,显示模式H1280_V1024display_mode=4,显示模式H1024_V768display_mode=5,显示模式H800_V600display_mode=6,显示模式H640_V480

display_device的其它数值

认为显示设备是LCD,相应的display_mode显示模式数值被忽略

当display_device设置正确,但是display_mode没有按照规定设置的时候,将无法看到显示输出。

当启动脚本没有display_device项,或者是没有display_mode项的时候,SPR系统默认缺失的项目的值是0。

2.3.2系统脚本设置

在系统脚本中,和显示相关的条目有如下内容:……[logo_info]

logo_name=c:\linux\android.bmplogo_address=0x48000000logo_show=1logo_off=0……

这里的设置和开机LOGO有关。在SPR系统中,要求开机LOGO只能是bmp格式,但是不要求bmp是正序或者倒序。这个图片的宽度不能超过屏幕的宽度,高度不能超过屏

全志 A10 A20 A31 A13固件配置,打包,烧写指南

幕的高度。

logo_name:LOGO文件

表示系统启动的时候,需要显示的LOGO格式文件。如果相应的文件没有找到,则屏幕上不会显示任何图像。同样的,如果用户要替换开机LOGO文件,替换这个位置指定的文件即可。

logo_address:用于显示的内存

由于LOGO显示的时候必须存放于内存中,因此,这个内存就在这个位置指明。如果在这个位置写0,则由SPR自动分配一个内存地址用于LOGO显示。

logo_show:是否需要显示LOGO

这个字段决定系统启动的时候是否要显示开机LOGO。如果值是非0,表示显示LOGO;否则,开机的时候不显示LOGO。显示的时机在加载操作系统镜像之前。

logo_off:是否需要关闭LOGO

由于开机LOGO显示于系统加载前,用户可以决定在系统镜像加载完成后,跳转到操作系统之前,是否需要把LOGO关闭,转由操作系统自身重新显示一个图形。如果这个值是0,表示不需要关闭;否则,就把LOGO关闭掉。

2.3.3启动画面修改示例

有了以上的介绍,用户可以对启动画面进行如下的操作,然后进行打包刷机并重新启动,就可以让修改生效。

设置显示在HDMI上

打开启动脚本,修改disolay_device=3,同时选择一个合适的分辨率,如720P,如图X所示。……

display_devicedisplay_mode……

图X:修改显示设备示例

=3=4

修改显示分辨率

本文来源:https://www.bwwdw.com/article/ybji.html

Top