目录1.mmc命令的用法说明:2.mmc调试示例:2.1初始化mmc设备2.2擦除一定大小的block2.3加载bin文件到DDR2.4 mmc写入数据2.5 mmc读出数据2.6导出数据到新文件2.7对比文件3.其他mmc命令1.mmc命令的用法说明: 2.mmc调试示例:2.1初始化mmc设备=>mmcinfo 2.2擦除一定大小的block擦除从第4096个block开始的1008个block。=>mmcerase0x10000x3f0 2.3加载bin文件到DDR从仿真器加载result.bin(任意bin文件)到DDR0x10000000处。2.4 mmc写入数据将之前加载的b
0、uboot和内核区别uboot的本质就是一个复杂点的裸机程序。内核本身也是一个"裸机程序“,和uboot、和其他裸机程序并没有本质区别。区别就是操作系统运行起来后在软件上分为内核层和应用层,分层后两层的权限不同,在内存访问和设备操作的管理上更加精细(内核可以随便访问各种硬件,而应用程序只能被限制的访问硬件和内存地址)。直观来看:uboot的镜像是u-boot.bin,linux系统的镜像是zImage,这两个东西其实都是两个裸机程序镜像。从系统的启动角度来讲,内核其实就是一个大的复杂点裸机程序。1、嵌入式系统部署在SD卡中特定分区内(1)一个完整的嵌入式系统,静止时(未上电时)bootlo
此系列博客,仅对Xilinx平台PS端(ARM部分)开发做介绍,不对PL(FPGA)做过多介绍。目录一.单独编译UBoot2.1.拷贝源码2.拷贝配置文件3.编译二.单独编译内核源码2.1复制内核源码2.2复制配置文件(根据芯片,32位复制到arch/arm/configs,64位到arch/arm64/configs)2.3复制.its文件,用于生成image.ub,可复制到linux源码顶层目录,和Makefile同级2.4Makefile配置芯片架构以及编译工具链2.5使能配置2.6移植设备树文件2.7生成镜像一.单独编译UBoot当Uboot源码使用默认配置,从网络下载时,需要进行步骤
目录一、前言二、F1C200s上电启动顺序三、前期准备四、新建用户五、交叉编译环境配置六、uboot简介七、uboot移植🍏uboot下载🍏 uboot默认配置🍏 uboot图形界面配置🍏uboot编译🍏烧录bin文件八、uboot启动测试九、参考内容一、前言在移植Linux之前我们需要先移植一个bootloader代码,这个bootloader代码用于启动Linux内核,bootloader有很多,常用的就是uboot。移植好uboot以后再移植Linux内核,移植完Linux内核以后Linux还不能正常启动,还需要再移植一个根文件系统(rootfs),根文件系统里面包含了一些最常用的命令和
目录一、crt0_64.S二、board_init_f函数三、init_sequence_f[]函数数组(一)四、init_sequence_f[]函数数组(二)五、内存分配如图一、crt0_64.S文件位置:u-boot-2022.01/arch/arm/lib/crt0_64.S_main入口bl board_init_f_alloc_reserve mov sp,x0 /*setupgdhere,outsideanyCcode*/ mov x18,x0 bl board_init_f_init_reserve mov x0,#0 bl board_init_f执行3函数,前2个在u-bo
由于官方的SDK占用空间较大(大约20GB左右),需要联系相关供应商提供,且官方的SDK通过各种脚本文件进行集成编译,难以理解系统开发的详细过程。本章介绍直接从官方Github网站下载源码进行移植,进行uboot移植及编译,具体内容如下所述:1.进入官方的github网站下载最新的uboot源码(由于官方仅维护2017.09的版本源码,因此直接利用git下载uboot源码,不下载tag中压缩包),具体路径如下所示:GitHub-rockchip-linux/u-boot:U-Boottreeforpendingcommits图1github官方复制uboot下载路径 2.在ubu
记录uboot中的一些指令。uboot是板子上电后的第一个程序,或者可以理解为此时就是一个单片机。需要一系列操作才能跳转到kernel,进入系统。1. uboot跳转到kernel,是通过bootcmd来实现的,默认情况下,bootcmd是有值的,是一个十六进制的地址。具体随板子的情况而定,下面是一块MT7621 nor flash的板子的数据:MT7621#printbootargs=console=ttyS1,115200root=/dev/mtdblock2rootfstype=squashfsinit=/etc/preinitmtdparts=raspi:256k(uboot),320
uboot启动Linux内核uImage卡在Startingkernel...这一步由于出现这种情况的原因有很多,暂时列举几种一、内核镜像uImage的加载地址和入口地址不一致查看uImage的信息mkimage-larch/arm/boot/uImage可以看见加载地址与入口地址为0xc2000040。由于uImage在头部添加了64个字节的识别信息,那么加载地址是uboot在加载内核时的存放地址,入口地址是内核代码的开始执行地址。在使用前面的uboot加载uImage时,把uImage加载到加载地址(0xc2000040)处,然后就在入口地址(0xc2000040)处开始执行,而实际的代码
RTL8211E网口芯片在Uboot下调试问题文章目录RTL8211E网口芯片在Uboot下调试问题RTL8211E的原理图uboot下的驱动调试问题排查RTL8211E的原理图原理图参考firefly的开发板,特别注意的是39号引脚RESET外接的2.49K的电阻,这个是用来进行外部的电阻参考的。这个很关键,开始时46号引脚CLK_125输出的频率不是125MHZ,而是62.5MHZ,刚好减少一半,后续在对外围电路进行检查时,发现主要是这个39号引脚焊成4.7k的电阻了,刚好是2.49k的近一半,因此导致这个频率减半。这个问题困扰了两天,刚开始以为是程序问题,后来排查另外一块板子的频率是对的
一、UBOOT启动流程开始之前,不得不说UBOOT启动的三个阶段,这个很重要!第一阶段(汇编语言阶段)1.设置异常向量表,当系统发生异常时总会接入到一个固定地址。2.硬件初始化。配置时钟相关参数,比如分频系数等等(内核时钟,总线时钟,IO接口时钟)3.关闭看门狗。