大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
以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)
| 1M | 4M | 14M | 1M | 4M | 6M | |---------------|---------------|---------------|---------------|---------------|---------------| | boot(m) | kernel(m) | rootfs(m) | boot(s) | kernel(s) | rootfs(s) |
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185288.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...