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

uboot、kernel和rootfs烧录「建议收藏」烧写主u-bootmw.b0x420000000xff0x100000tftp0x42000000master/image_glibc/u-boot-hi3536.binsfprobe0sferase0x00x100000sfwrite0x420000000x00x100000reset注:1)这里的mw.b以字节写入,0x42000000是ddr的起始…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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);

  1. 烧写主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

  2. 烧写主内核
    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)

  3. 烧写主文件系统
    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

  4. 设置启动参数
    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’ 重新启动

  5. 地址空间说明(其中,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账号...

(0)


相关推荐

  • 使能DHCP Relay_option键的作用

    使能DHCP Relay_option键的作用DHCP一家子(不包括DHCPv6)包括DHCPClient、DHCPServer、DHCPRelay以及DHCPSnooping,之后我会一个个详细学习之后发出来。今天讲述一下DHCPrelay,之前先学习的DHCPSever,还没来得及整理,之后会发出来,今天先说说DHCPRelay。DHCPRelay(DHCP中继),也叫作DHCPAgent,主要用于DHCPClient和DHCPServer不在一个网段时,DHCPClient又有自动地址分配的请…

    2022年10月15日
  • webstrom的格式化代码快捷键

    webstrom的格式化代码快捷键windows下webstorm格式化代码的快键键Ctrl+Alt+lmac下webstorm格式化代码的快捷键Option+Command+lcentOS下webstorm格式化代码的快捷键Ctrl+Shift+l windows下webstorm格式化代码的快键键Ctrl+Alt+lmac下webstorm格式化代码的快捷键Option+Command+l…

  • 高通msm8916 LK阶段配置使用i2c5

    高通msm8916 LK阶段配置使用i2c5背景:在调试SLM753某客户项目LCM时,客户使用LVDS的LCM,而msm8916只有一个mipi的接口,所以就是用到了mipi-2-lvds转换芯片:icn6202。这颗芯片需要使用I2C进行配置LVDS屏的时钟和分辨率等信息,以至于LVDS屏可以正常显示。Kernel阶段i2c比较容易使用,只需在dts中配置一个i2c设备即可以使用对应的i2c接口进行数据传输,但是LK阶段的代码就显得

    2022年10月19日
  • linux 内核驱动–Platform Device和Platform_driver注册过程[通俗易懂]

    linux 内核驱动–Platform Device和Platform_driver注册过程[通俗易懂]

    转自网络,自己学习用
     
    从Linux2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。
    Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。

    Linuxplatformdriver机制和传统的devicedriver 机制(通过driver_register函数进行注册

  • 史上最全面的JTAG和SWD接口的定义/STM32/STM8工程师的福音/JTAG转SWD接口仿真/告别杂乱的仿真线/终于讲清楚了JTAG/SWD

    史上最全面的JTAG和SWD接口的定义/STM32/STM8工程师的福音/JTAG转SWD接口仿真/告别杂乱的仿真线/终于讲清楚了JTAG/SWD一、前言作为一名嵌入式工程师,相信大家都十分清楚MCU开发或者ARM开发都避免不了关键的研发过程,产品研发过程中的程序调试更是举足轻重般的存在。从8051内核到ARM内核,自己也接触了很多的调试工具和调试手段;今天在此给大家分享一下使用ST-LINK仿真调试器的一些基础知识和好物推荐。二、ST-LINK仿真器说明ST-Link是用于STM8和STM32微控制器在线调试器和编程器,ST-Link本身具有SWIM、JTAG/SWD通信接口,适用于STM8和STM32微控制器的软件调试仿真。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号