资源描述
卡量产功能
量产是指把同一个固件烧写到大批量小机的过程,这个过程可以通过SD/MMC/TF卡来实现,也可以通过USB来实现。
1.1 卡量产特性
1.1.1 卡量产的定义
卡量产,是指对于一台小机,用户通过一张普通的卡,包括SD/MMC/TF卡(MS卡不可以),把一个固件包的内容烧录到卡上。和USB量产方式一样,两者的目地都是把固件包烧录到小机上,并且可以使用同一个固件包。
卡量产的优势在于:
(1) 不需要对小机做任何事先操作;
(2) 量产过程不需要PC的支持,不需要人工干预;
(3) 进度可以通过小机的屏幕查看,或者通过LED指示;
(4) 不需要安装任何驱动
(5) 一次量产数量和卡的数量相关,卡的数量越多,一次量产的小机台数越多
1.1.2 卡量产的流程
卡量产可大致分为三个阶段。
第一个阶段:制作固件包,该制作过程与USB量产固件包制作方法相同,不再赘述;
第二个阶段:制作量产卡,该阶段需把固件包烧录到卡上;
第三个阶段:开始卡量产,该阶段需要把卡上的固件内容写到flash上。
整个量产过程如图一所示:
图一:卡量产流程图
1.2 固件包定制
1.2.1 定制的目的
默认情况下,量产时小机的屏幕上将出现一个进度条,并能在出错的情况下在屏幕上直接显示出出错信息。同时,卡量产的时候不会主动擦除flash上的原有信息。如果用户希望修改这些内容,则可以通过固件包定制来实现。
固件包定制,本质上是在不需要重新编译任何代码的前提下,即可实现修改打包配置的目的。
1.2.2 配置“量产前格式化脏片flash”
为了实现量产的时候同时擦除flash,需要修改一个脚本(建议增加卡擦除)
打开wboot\bootfs目录下的boot.ini文件(linux环境下对应lichee\tools\pack\chips\sun4i\wboot\bootfs),默认情况下可以看到如图二的内容:
[system]
start_os_name = linux
timeout = -1
display_device = 0
display_mode = 0
[linux]
图二:默认boot.ini内容
为了擦除flash,需要在[system]下增加一个条目,erase_flash = 1,最终生成如图三的内容:
[system]
start_os_name = linux
timeout = -1
display_device = 0
display_mode = 0
erase_flash = 1
[linux]
图三:增加flash擦除的boot.ini内容
通过这个修改,量产的时候将自动擦除flash,然后进行量产过程。原有的数据都将被擦除。
1.2.3 配置“量产过程中的LED指示方式”
LED指示适用于没有屏幕的方案,比如TVD,或者是对于还没有连接LCD屏幕的板卡,等。这种量产过程中,由于小机本身没有LCD屏幕,而量产的时候配置一个电视又没有效率,因此可采用LED指示的方式。
默认情况下,量产过程中将通过LCD显示表示进度,同时,可以通过配置LED,利用其闪烁的特性显示量产进度。二者可以同时存在,互不干扰。
1.2.4 禁止量产显示
打开wboot\bootfs目录下的boot.ini文件(linux环境下对应lichee\tools\pack\chips\sun4i\wboot\bootfs),内容如图二所示。
要禁止量产显示,把[system]下的display_device = 0修改成display_device = -1,得到如图四的内容。
[system]
start_os_name = linux
timeout = -1
display_device = -1
display_mode = 0
[linux]
图四:禁止量产显示的boot.ini示意
这样修改过后,量产的时候就不会去调用显示功能,而将转去检查是否可以使用LED显示功能。只要把LED功能设置成可用,即可在量产的时候看到闪烁。
1.2.5 配置LED功能
现在,卡量产的时候支持两种形式的LED,一种是利用普通IO口给LED供电(包括USB接口的LED),另一种是利用音频口供电的LED。
LED部分可以配置的功能有如下三个:
(1) 配置用于控制LED的GPIO
(2) 配置正常工作时候的闪烁频率
(3) 配置出错时候的闪烁频率
为了配置这三个功能,并选中使用何种LED,需先打开sys_config1.fex文件,找到[card_boot]条目,默认的情况如图五所示:
[card_boot]
logical_start = 40960
sprite_gpio0 =
图五:默认卡量产配置
首先选择使用何种形式的LED,需要完成的配置如下:
配置给LED供电的GPIO:把sprite_gpio0后面的空余地方按照GPIO的规则填充完整。如何在配置脚本中填写GPIO可参考相关文档,此处给出一个示例:比如,若需配置PH口的第2脚用于显示,则填写如下:
sprite_gpio0 = port:ph2<1><-1><-1><1>
如果要使用音频口的LED,则保持上述的sprite_gpio0的值为空即可。默认状态下,卡量产将使用音频口的LED。
接下来可以配置闪烁的频率,包括正确工作状态下的闪烁频率以及出错状态下的闪烁频率。默认情况下,正确工作状态下的闪烁频率是500ms变化一次,即亮500ms,然后灭500ms,然后反复这个过程。出错状态下的闪烁频率是200ms。因此在实际量产过程中,正确工作状态下LED闪烁较慢,而出错状态下闪烁较急促。
如果希望修改这个时间,用户需要在[card_boot]下方添加如下的内容:
sprite_work_delay = 1000
sprite_err_delay = 100
这样就可把正常工作的闪烁频率频率修改成了1000ms,出错的闪烁频率修改成了100ms,再综合GPIO的描述,即可见图六所示内容:
[card_boot]
logical_start = 40960
sprite_gpio0 = port:ph2<1><-1><-1><1>
sprite_work_delay = 1000
sprite_err_delay = 100
图六:配置LED的脚本内容
通过以上的配置,可以实现用户自定义的内容,然后重新打包生成一个固件,就开始准备具体的量产。
1.3 卡量产操作说明
卡的量产过程分成两个部分。首先,需要通过卡量产工具把固件烧录到卡上;然后,把卡的内容烧录到小机上。
1.3.1 量产卡的烧录
为了烧录量产卡,需要使用工具PhoenixCard3.01版本,工具的界面如图七所示:
图七:量产工具界面
1.3.2 工具识别卡
用户首先需要把一张SD/MMC/TF卡通过读卡器插到PC上,工具会自动识别出卡所在的盘符,并给出卡的容量。用户也可以自己点击“获取盘符”。识别出的盘符会出现在工具的界面上。
为了防止操作到别的USB设备,比如U盘之类,当一台PC上存在两个或两个以上的存储设备时,工具会自动报告一个错误,提示用户把多余的设备拔掉,然后才能进行卡量产操作。如图八所示:
图八:多个存储设备时候的出错信息
另外、打开PhoenixCard时,把livesuit和PhoenixRPO关掉。
1.3.3 固件包选择
点开工具上的按钮“镜像文件”,会弹出如图九的窗口,用户可以选择固件所在的位置。当固件选择完成,工具会把固件所在的全路径显示在工具界面上。
图九:固件包选择界面
1.3.4 固件包烧录
当以上的操作完成,可以看到“烧录”按钮处于可用状态。用户点击“烧录”按钮,就可以看到进度处开始移动,当进度移动完成后,卡量产完成,如图十所示。
图十:量产卡烧录成功示意
固件包烧录完成后,就得到了一张量产卡。量产卡可以反复使用
1.3.5 LED灯的制作
制作很简单,只要用一根3.5音频接口线,剪开铜丝,左声道接LED阴极,右声道接LED阳极。尽量选取封装小、功耗小的LED 。
展开阅读全文