海思3536 nand 扩容操作教程
海思3536开发板默认是256M的nand,在实际的产品中容量远远不能满足需求。根据上层软件的需要,硬件工程师把nand扩容到1G的存储空间。想要系统正常运行,需要以下操作:
1.修改Hitool的分区表
海思3536 使用Linux双系统:主系统和从系统。主系统主要控制4个A17核心。从系统主要控制A7和多媒体单元。我使用的事主系统来引导 从系统。把所有的应用程序放到了mashter_fs中。修改nand之前住文件系统只有235M
硬件扩容到1G后,增加主文件系统到900M
2.修改uboot加载的分区表
修改完烧写工具分区只能完成把对应的分区文件烧写到对应分区,烧写完后还要对uboot的引导参数进行修改。
setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 mtdparts=hinand:1M(boot),4M(kernel),235M(rootfs)'
setenv bootcmd 'nand read 0x42000000 0x100000 0x400000;bootm 0x42000000'
setenv slave_autostart 1
setenv slave_bootcmd 'nand read 0x81000000 0xF000000 0x80000;nand read 0x82000000 0xF100000 0x400000;nand read 0x83000000 0xF500000 0x600000;bootm 0x81000000 0x82000000 0x83000000'
setenv slave_bootargs 'mem=96M console=ttyAMA0,115200'
saveenv
解释:
引导参数的第一句意思是我的内存是512M的,使用了串口0作为控制台,文件系统位置在/dev/mtdblock2 这个分区,系统类型是yaffs2的。主系统的分区表分别对应1M 4M 和235M。第一句是大部分uboot系统必须有的引导参数
第二行意思是uboot启动后将nand的0x100000(1M)位置往后4M的空间到内存的 0x42000000 这个位置,然后跳转到0x42000000 执行。总结,uboot把kernel从nand加载到ddr,并开始由uboot进入kernel
第三行是海思双系统独有的,设置让从系统自动加载,不需要主系统手动执行
第四行是uboot把从系统的uboot kernel 和文件系统读到内存中。起始地址分别是240M 241M 245M 转成十六进制后就是 0xF000000 ,0xF100000 0xF500000 。读取的大小分别是0x80000(1M) 0x400000(4M) 和0x600000(6M)
修改后的uboot引导参数:
setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 mtdparts=hinand:1M(boot),4M(kernel),900M(rootfs)'
setenv bootcmd 'nand read 0x42000000 0x100000 0x400000;bootm 0x42000000'
setenv slave_autostart 1
setenv slave_bootcmd 'nand read 0x81000000 0x38900000 0x80000;nand read 0x82000000 0x38A00000 0x400000;nand read 0x83000000 0x38E00000 0x600000;bootm 0x81000000 0x82000000 0x83000000'
setenv slave_bootargs 'mem=96M console=ttyAMA0,115200'
saveenv
在这里我遇到一个yaffs文件系统的问题
Current hardware config, pagesize:4096, ecctype:24bits/1K
1.请检查当前单板Flash与烧写分区中的Flash类型是否一致;
2.当前fastboot不支持该命令;
这个问题是之前的nand pagesize和ecctype不一样,只需要重新制作yaffs2文件系统即可。指令是:./mkyaffs2image610 rootfs_glibc_master rootfs_glibc_2k_4bit_zmj_1g.yaffs2 2 4
我只是增大了主操作系统的大小,由235M到900M,其他分区大小没有变化,但是从系统的起始地址发生了变化。从240M 241M 245M到905M 906M 910M。对应的uboot参数计算方法如下
最后进入Linux 主系统系统验证是否成功
海思3536 nand 扩容操作教程相关推荐
- 海思3536解码G711音频
海思3536解码G711音频 最近的一个项目,需要增加对G711的解码功能.而HI3536这款芯片是支持对G711进行CPU软件编解码的,所有的解码功能都基于独立封装的海思音频解码库,核心解码器工作在 ...
- 海思3536板子在使用wifi时,开启支持工具 wireless_tools 和 iptables 的内核支持选项时,板子会崩溃的解决方法
wifi的wlan模式需要用到Wireless_tools和wpa_supplicant工具.Wireless_tools用来设置支持LinuxWireless Extension的无线设备,它是一个 ...
- 海思芯片上GPIO操作
前期 本博客是根据Hi3521A/Hi3520DV300硬件接口用户指南.pdf(其它都一样)写的,具体信息请参考文档,文档下载:https://download.csdn.net/download/ ...
- 海思3536:交叉编译Qt4.8.4
一.交叉编译qt 1.下载Qt源码包qt-everywhere-opensource-src-4.8.4.tar.gz: 2.解压Qt源码包tar -xvfzqt-everywhere-opensou ...
- 海思3536:PC客户端编译过程报错及解决方法
1.Hi3536V100R001C02SPC040版本编译出错 --------- 错误 4 error LNK2001: 无法解析的外部符号 _IveOpenFile D:\share\Hi3536 ...
- 海思3536:kernel编译和mpp_single编译过程报错及解决方法
### 1.编译kernel 1.1 cd kernel/linux-3.10.y 1.2 cp arch/arm/configs/hi3536_full_defconfig.config 1.3 m ...
- 海思3536:osdrv编译过程中报错及解决方法
1.安装交叉编译工具 1.1 cd toolchain/arm-hisiv300-linux/ 1.2 tar -xvf arm-hisiv300-linux.tar.bz2 1.3 修改cross. ...
- 海思HI35xx平台软件开发快速入门之背景知识
前言: 安防领域最近几年可谓暗流涌动,作为安防业的双寡头,大华股份与海康威视凭借行业的东风,两家公司的成长速度异常强劲,在国际市场上已经和应用厂家进行厮杀. 2015年两家公司双双晋升"全球 ...
- 关于海思3536编解码与FFmpeg的相关问题——推流相关
在我们利用海思3536完成对摄像头视频流的拉取.(ffmpeg解协议头)解码.叠加osd.HDMI本地显示.编码.转存等任务后,我们开始利用ffmpeg将编码后的视频流进行推流,采用的是ZLM的流媒体 ...
最新文章
- 使用vscode连接服务器写代码指南
- input框选中时如何不出灰框_如何建立学习目标:这个SMART原则,你要了解,家长看懂教给孩子...
- js_sl 延迟菜单
- adb 操作安卓模拟器--备忘
- android访问html页面
- [usaco2004][bzoj3379] 交作业
- 在线中文姓名生成工具推荐
- 算法工程师书籍推荐——典藏版
- 清理c盘、c盘哪些文件可以删、图形显示文件大小软件
- html window 网络邻居,windows10网上邻居共享文件0x80070035找不到网络路径
- Oracle 11gR2 RAC 修改监听端口号
- 无根树任意根深度加强版
- 运动斗士终南山的不老之道
- 反病毒技术及其发展趋势
- putty连接虚拟机服务器,SSH:putty通过SSH连接固定IP的虚拟机
- 软件与硬件的兼容性如何测试,怎么检测电脑硬件兼容问题
- Java基础Day01-Java基础语法
- 信号量机制中的down和up函数
- js 阻止移动端横屏工具方法
- 定期存款计算器_定期存款预测