机顶盒项目组U盘替代NAND FLASH方案探讨

简介: 为了降低项目的产品成本,在硬件设计上选择了U盘来替代Nand Flash存储器,因此包括Linux内核及文件系统的软件需要存储在U盘中,将Uboot程序存放在SPI Flash中,使系统从U盘来启动,达到替代Nand Flash的作用。

为了降低项目的产品成本,在硬件设计上选择了U盘来替代Nand Flash存储器,因此包括Linux内核及文件系统的软件需要存储在U盘中,将Uboot程序存放在SPI Flash中,使系统从U盘来启动,达到替代Nand Flash的作用。

系统要从U盘启动,首先在UBOOT中,需要能访-问U盘的文件,对于内核来说最好就是一个文件,在运行UBOOT的时候,把内核从U盘读入DDR指定地址,再把系统的控制权交给内核,即可启动内核,在内核启动的后阶段,需要挂载根文件系统,目前主要有从FLOPPY,RAMDISK,BULK三个分支。U盘属于BULK类,所以系统要从U盘加载文件系统,需要把UBOOT传给KERNEL的参数进行修改,一个root=/dev/sda1(假设U盘为单分区,设备号为sda1),后面必须要有rootdelay=5,也就是说在挂载文件系统之前要延时几秒,这是由于USB控制器的初始化,识别U盘需要一点时间,具体值可以通过测试来选择,还要指定文件系统类型。对启动的参数的修改,可以使系统从U盘启动,这样开发有时会比较便捷。

解决了系统从U盘启动的问题后,麻烦的事情随之而来,怎么生产发布,怎么升级?

为了生产的便利,软件的发布最好不要有人员的太多干预操作,只需要把外置的U盘插入USB口,上电就运行,写程序对生产人员来说是透明的,最后显示升级从与否即可。

笔者在STi7105平台上,解决了从两组不同USB控制器口启动的问题,多分区的问题也比较简单,只不过在UBOOT中USB driver整体上是按支持一组USB写的精简版,所以具体从哪组启动,需要一些条件来触发。比如,刚生产的STB,下线后SPI flash中的某个特定地址的值不为某特定值时,就从外部U盘启动,进入生产发布,发布成功后就清除此值,这样很便捷,也可行。

对于多分区来说,控制也不是很难,关键是实现命令行中能从多分区启动,其他的启动分区选择完全是策略的问题,不存在多少难度。

由于U盘容量大,价格也便宜,直接替代STI7105系统支持的NAND FLASH类型,在价格上会有优势,降低产品成本。

如果对于这个议题感兴趣,可以一起探讨一下。希望看了此文章,对你有益!

目录
相关文章
|
6月前
|
分布式数据库 芯片
Mstar9632 制作量产emmc母片
Mstar9632 制作量产emmc母片
150 0
Mstar9632 制作量产emmc母片
|
6月前
|
Linux 开发工具 异构计算
【ZYNQ】QSPI Flash 固化程序全攻略
【ZYNQ】QSPI Flash 固化程序全攻略
1000 0
|
存储 芯片 内存技术
一块宝藏存储芯片【SD NAND】
一块宝藏存储芯片【SD NAND】
|
数据安全/隐私保护
使用U盘重新烧写龙芯自带系统loongnix
使用U盘重新烧写龙芯自带系统loongnix
307 0
使用U盘重新烧写龙芯自带系统loongnix
|
Linux 网络安全 内存技术
海思3559平台搭建:简单烧写说明
在板子上存在uboot的前提下进行如下操作,如果板子上从未烧写过uboot,就需要使用 HiTool 工具进行烧写。HiTool 工具位置放在 Hi3559A***/01.software/pc/HiTool,使用说明请参见该目录下的《HiBurn工具使用指南》
395 0
海思3559平台搭建:简单烧写说明
记一次华硕笔记本找不到引导问题BIOS能识别到硬盘但进不了系统
问题:进入BIOS后,能检测到硬盘,但是无法设置启动项,只能检测到启动u盘,进入pe后,分区助手时而读不出硬盘,后来读取到了,检测了下不是硬盘坏了的问题,尝试了引导修复也没用解决办法:将硬盘MBR格式转换为GPT亲测,转换后华硕BIOS能读取到引导,然后重进PE完成系统安装...
808 0
记一次华硕笔记本找不到引导问题BIOS能识别到硬盘但进不了系统
|
编解码
Win系统 - N卡如何组建三联屏?
Win系统 - N卡如何组建三联屏?
487 0
Win系统 - N卡如何组建三联屏?