机顶盒项目组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类型,在价格上会有优势,降低产品成本。

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

目录
相关文章
|
存储 前端开发 Java
农产品销售|助农惠农|基于Springboot实现农产品销售管理系统
农产品销售|助农惠农|基于Springboot实现农产品销售管理系统
685 1
|
图形学
unity3d UGUI常用游戏进度条实现方式
测试.png 直接将脚本挂载到进度条image对象上即可,这种方式可以解决当进度条使用图片的时候,防止图片拉伸变形 using UnityEngine; using UnityEngine.
3181 0
|
监控 网络协议 安全
SYN洪水攻击
【8月更文挑战第21天】
396 1
|
消息中间件
failed to open log file at ‘/var/log/rabbitmq/rabbit@9f987b50c687_upgrade.log‘, reason: permission d
failed to open log file at ‘/var/log/rabbitmq/rabbit@9f987b50c687_upgrade.log‘, reason: permission d
494 0
|
11月前
|
数据可视化 定位技术
OKR:如何将战略目标拆解成可执行的团队任务
在现代职场中,方向不明和目标模糊常使团队陷入困境。OKR(目标与关键结果)的引入,如同“人生GPS”,不仅让工作更加有序,还帮助团队重拾奋斗的意义。通过明确大方向、拆解目标及搭建透明看板,OKR实现了目标清晰、过程透明、结果可衡量,有效提升了团队的执行力和士气。
454 1
OKR:如何将战略目标拆解成可执行的团队任务
Python 实现语句中提取人名(附代码) | Python工具
Python 实现语句中提取人名(附代码) | Python工具
Python 实现语句中提取人名(附代码) | Python工具
|
API Python
【python自动化】Playwright基础教程(四)事件操作①高亮&元素匹配器&鼠标悬停
【python自动化】Playwright基础教程(四)事件操作①高亮&元素匹配器&鼠标悬停
362 0
|
存储 算法 中间件
nginx限流方案
nginx限流方案
496 0
|
存储 API 数据安全/隐私保护
FreeRTOS入门教程(信号量的概念及API函数使用)
FreeRTOS入门教程(信号量的概念及API函数使用)
727 0
|
新零售 Cloud Native 安全
光云科技快麦ERP正式入选阿里云原生合作伙伴计划,赋能企业“新基建”
阿里云在云原生领域的投入广泛而深入,在容器、服务网格和 Serverless 等领域均有丰富的技术和产品体系,目前阿里云已经拥有国内最丰富的云原生产品家族、最全面的云原生开源贡献、最大规模的云原生应用实践、最大的云原生客户群体。
1364 96
光云科技快麦ERP正式入选阿里云原生合作伙伴计划,赋能企业“新基建”