前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >uboot、kernel和rootfs烧录「建议收藏」

uboot、kernel和rootfs烧录「建议收藏」

作者头像
全栈程序员站长
发布2022-11-08 14:49:31
9190
发布2022-11-08 14:49:31
举报
文章被收录于专栏:全栈程序员必看

以Hi3536为例 SDRAM的地址范围: 40000000 – 43FFFFFF (实际DDR是4Gbit,MPP和OS共用) 相应海思的型号DDR范围到此目录寻找:01.software/board/document_cn/Hi3518EV20X/Hi3516CV200 SDK 安装以及升级使用说明.txt Flash型号MX25L25635F(32MB);block(32k或64k);

烧写主u-boot mw.b 0x42000000 0xff 0x100000(0x100000是长度1M) tftp 0x42000000 master/image_glibc/u-boot-hi3536.bin sf probe 0 sf erase 0x0 0x100000 sf write 0x42000000 0x0 0x100000 reset (写完后复位重启,为了配置bootargs,bootcmd) 注:1)这里的mw.b以字节写入,0x42000000是ddr的起始地址,0x100000长度是1M,都填充位0xff 。 2) tftp 以tftp的方式下载到0x42000000中。 3)sf probe 0 选择要烧录的第几个flash,因为有可能有多个flash。 4)sf erase 0x0 0x100000 flash擦出的地址区间。 5)sf write 0x42000000 0x0 0x100000 从ddr的0x42000000写到spiflash从0x0起始地址的0x100000(1M)长度.

注:这里要设置serverip:set serverip 192.168.1.141 本地的ip地址ipaddr :set ipaddr 192.168.1.10 然后保存: sa

烧写主内核 mw.b 0x42000000 0xff 0x400000 tftp 0x42000000 uImage sf probe 0 sf erase 0x100000 0x400000 sf write 0x42000000 0x100000 0x400000 1) mw.b 写入以字节为单位。0x42000000是SDRAM的起始地址,0x400000 写的长度(4M), 0xff代表填充的数据是ff。 2)把内核以tftp的方式写入到SDRAM中。 3)选择烧入的Flash,这里选择的是Flash 0号(因为可能会有多个Flash) 4)擦除Flash中以0x100000为起始地址,长度为0x400000(4M)的分区。 5)从SDRAM的起始地址0x42000000复制数据,粘贴到Flash中,分区为以0x100000起始地址,长度0x400000(4M)

烧写主文件系统 mw.b 0x42000000 0xff 0x1b00000 tftp 0x42000000 rootfs_glibc.img sf probe 0 sf erase 0x500000 0x1b00000 sf write 0x42000000 0x500000 0x1b00000 1)mw.b 写入以字节为单位。0x42000000是SDRAM的起始地址,0x1b00000写的长度, 0xff代表填充的数据是ff。 2)把内核以tftp的方式写入到SDRAM中。 3)选择烧入的Flash,这里选择的是Flash 0号(因为可能会有多个Flash) 4)擦除Flash中以0x500000为起始地址,长度为0x1b00000的分区。 5)从SDRAM的起始地址0x42000000复制数据,粘贴到Flash中,分区为以0x500000起始地址,长度0x1b00000

设置启动参数 setenv bootargs ‘mem=384M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),27M(rootfs)’ setenv bootcmd ‘sf probe 0;sf read 0x42000000 0x100000 0x400000;bootm 0x42000000’ bootargs理解: 1)mem=384M这是OS:linux所需要的; 2)console=ttyAMA0,115200 控制台及波特率 3)root=/dev/mtdblock2 根文件系统所在flash中的分区(第2分区) 4)rootfstype=jffs2 文件系统类型 5)mtdparts=hi_sfc:1M(boot),4M(kernel),27M(rootfs)’ 动态分区表(是传给内核的) bootcmd理解: 1)sf probe 0 选择Flash 0 2)sf read 0x42000000 0x100000 0x400000 将Flash起始地址0x100000长度为0x400000中的数据,读到SDRAM中以0x42000000为起始地址的地方。 3)bootm 0x42000000’ 重新启动

地址空间说明(其中,m表示master arm;s表示slave arm)

代码语言:javascript
复制
 |      1M       |      4M       |      14M      |      1M       |      4M       |      6M       |
 |---------------|---------------|---------------|---------------|---------------|---------------|
 |     boot(m)   |     kernel(m) |     rootfs(m) |     boot(s)   |     kernel(s) |     rootfs(s) |

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185288.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月6日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档