uboot初体验-----一些关于nand设备启动的浅显的认识

uboot环境变量与内核MTD分区关系 <br />uboot 与系统内核中MTD分区的关系:<br />分区只是内核的概念,就是说A~B地址放内核,C~D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等。<br />1:在内核MTD中可以定义分区A~B,C~D。。。。。。并予以绝对的地址赋值给每个分区。我们可以来看看在内核中是怎样来对MTD进行分区的:arch/arm/plat-s3c24xx/common-smdk.c<br />static struct mtd_partition smdk_default_nand_par 阅读详情

1 选择Uboot版本

2 移植uboot到console能够正常work

3 制作uImage并使用uboot引导

4 写NFC驱动

5 uboot从nand上引导系统启动

1 选择Uboot版本

正所谓“工欲善其事,必先利其器”,如果在整个过程中能够有一套友好的软硬件开发环境整个过程就比较顺利了。戳中痛点……

对于选择Uboot的版本,一般人都会选择最新版本。但是新版本必然会有些结构上的差异,因此在选择好版本之后,一定要仔细分析一下现在的uboot  tree。然后选择合适的位置并合理规划文件的存放位置。具体情况见网上分析,或者自己分析。当然最重要的几个目录下面的文件还是一定要去看的。

a 根目录下的readme和Makefile这些文件会说明你需要进行的操作和自动化操作。

b include\configs\下面需要添加整个系统的头文件,当然可以参考三星的一些配置,并进行DIY。

c board,在这个目录下添加自己需要的board定义。

d arch目录下定义了一些跟架构相关的东西。

2 移植uboot到console能够正常work

对于移植uboot,主要是对上面的目录和文件进行改造,并且添加串口驱动,让系统能够正常进入控制台。一般情况下串口只要ok了,下面的各种命令也就都是可以正常work的。

3 制作uImage并使用uboot引导

制作uImage文件可以直接使用命令的方式也可以在kernel中使用make uImage命令完成。

命令方式:

mkimage -A arm -O linux -T kernel -C gzip \

               -a 0 -e 0 -n "Linux Kernel Image" \

               -d linux.bin.gz uImage

注:mkimage存放在uboot\tools目录下。

使用make uImage的log信息为:

GEN usr/initramfs_data.cpio

AS usr/initramfs_data.o

LD usr/built-in.o

CC drivers/mtd/nand/nand_bbt.o

LD drivers/mtd/nand/nand.o

LD drivers/mtd/nand/built-in.o

LD drivers/mtd/built-in.o

LD drivers/built-in.o

LD vmlinux.o

MODPOSTvmlinux.o

GEN .version

CHK include/generated/compile.h

UPD include/generated/compile.h

CC init/version.o

LD init/built-in.o

LD .tmp_vmlinux1

KSYM .tmp_kallsyms1.S

AS .tmp_kallsyms1.o

LD .tmp_vmlinux2

KSYM .tmp_kallsyms2.S

AS .tmp_kallsyms2.o

LD vmlinux

SYSMAP  System.map

SYSMAP  .tmp_System.map

OBJCOPYarch/arm/boot/Image

Kernel:arch/arm/boot/Image is ready

GZIP arch/arm/boot/compressed/piggy.gzip

AS arch/arm/boot/compressed/piggy.gzip.o

LD arch/arm/boot/compressed/vmlinux

OBJCOPY arch/arm/boot/zImage

Kernel:arch/arm/boot/zImage is ready

UIMAGE  arch/arm/boot/uImage

ImageName:   Linux-3.4.55-vimicro+

Created:

Fri Jun  6 09:15:222014

ImageType:   ARM Linux Kernel Image(uncompressed)

DataSize:

3082344 Bytes = 3010.10 kB = 2.94 MB

LoadAddress: 0x80008000

EntryPoint:  0x80008000

Imagearch/arm/boot/uImage is ready


制作完成uImage之后,需要使用移植好的uboot在命令行下进行测试。测试方法可以使用ICE将文件download到指定内存处,使用bootm $address。

*  kernel: cmdline image address = 0x80008000

beforecopy from dataflash img_addr = 0x80008000

beforecopy from dataflash img_addr = 0x80008000

##Booting kernel from Legacy Image at 80008000 ...

ImageName:   Linux 3.5.15

ImageType:   ARM Linux Kernel Image(uncompressed)

DataSize:

3082344 Bytes = 2.9 MiB

LoadAddress: 80008000

EntryPoint:  80008040

VerifyingChecksum ... OK

XIPKernel Image ... OK

FDTand ATAGS support not compiled in - hanging

###ERROR ### Please RESET the board ###

我擦,出错了。

不过还好顺藤摸瓜很容易找到问题所在。FDTand ATAGS support not compiled in - hanging这个说明选择的参数传递方式就是“没选择”,那就选择吧。

选择ATAGS吧,因为RTFSC之后,发现这个比较简单。

之后就……启动成功了。

4 写NFC驱动

话不多说,动手就干。因为和kernel的架构基本相同。只是需要时间进行debug,保证数据读写的正确性。

5 uboot从nand上引导系统启动

本人恰好也负责烧写工具的编写,因此比较自由的掌控整个空间规划一些结构体的定义,debug过程相对容易很多。

时间仓促,没有赘述很多。希望最近能够尽快完善起来吧。因为原创,所以进行讲点儿跟别人不一样的。


宏杉MacroSan存储开局指导-流程 目录 1. 导入ODSP授权 2.1.版本确认 2.2.存储设备升级U盘、升级光盘制作方法 开局流程如下: 1. 导入ODSP授权 ODSP授权文件随设备附带,拆箱可见 2.1.版本确认 java模式 html模式 2.2.存储设备升级U盘、升级光盘制作方法 准备工具 空白U盘: 1个,容量要求大于等于4GB。仅制作升级U盘时需要。 制作升级U盘步骤 1.将U盘插入PC机USB口,保证PC机能识别到U盘。 2.运行UltraISO,选择菜单中的 文件-&g... 阅读详情

相关推荐

从PWM到精准电流:双光耦与LM317构建的4-20mA隔离输出方案

本文详细介绍了基于双光耦与LM317的4-20mA隔离输出方案,适用于工业自动化中的PWM信号转换。该方案通过电气隔离和精准电流调节,显著提升抗干扰能力和信号传输精度,同时降低成本60%。文章还分享了电路设计、参数计算及调试经验,为工程师提供实用参考。

weixin_32006655的博客 283

uboot引导内核报错FDT and ATAGS support not compiled in-hanging

这个错误提示表明,在编译内核时未包含FDT(Flattened Device Tree)和ATAGS(Auxiliary Table Attribute)的支持。 FDT和ATAGS是在启动过程中用于传递设备树和系统配置信息的方法。如果内核没有包含这些支持,则引导过程可能会失败。请重新编译内核,确保包含FDT和ATAGS的支持。 ...

weixin_42601134的博客 1011

ThingsBoard 仪表板状态

请先通过阅读仪表板概述和仪表板入门案例来熟悉ThingsBoard的仪表板。文章希望通过浅显的文字描述什么是仪表板状态及如何使用。 概念 状态功能使得仪表板可以分层,配合小部件的动作,实现多层仪表板之间的跳转.每个状态对应一个仪表板的图层 每个仪表板有一个默认的根状态, 根状态可以理解为默认状态, 也就是打开仪表板默认展示的仪表板图层.编辑模式下, 点击右上角的图标来管理状态.添加多个状态后左上角出现状态切换(图层切换)下拉列表可以通过选中根状态复选框切换新的默认展示的状态/图层配合小部件的动作,实现状

物联网三分钟 2308

启动:错误信息FDT and ATAGS support not compiled in – hanging分析解决

启动:错误信息FDT and ATAGS support not compiled in – hanging => tftp 0xa0000000 Image;tftp 0xa2000000 fsl-ls1043a-rdb.dtb;tftp 0xb0000000 rootfs.cpio.uboot;booti 0xa0000000 0xb0000000 0xa2000000 Bytes transferred = 34653760 (210c640 hex) ## Loading init Ra

nhy2002484的博客 3643

使用单片机和电流互感器对非正弦周期电流有效值测定

使用单片机和电流互感器,利用一种高速采样的方法来进行有效值测定

月光绿叶滴水音乐 3945

mt7601 kernel 4.19内核集成版本,以及源码编译相关问题

/os/linux/Makefile.6文件: 添加 EXTRA_CFLAGS += -Wno-incompatible-pointer-types -Wno-date-time。看下iwpriv与iwconfig的源码区别,左侧为iwconfig ,没有用到ioctl,右侧为iwpriv。1、init_timer kernel 4.19内核版本API已经改变,使用timer_setup。使用iwpriv 提示如下,iwpriv工具无法使用了,而iwconfig可以使用。makefile的修改。

1591

uboot移植3-nandflash启动

修改UBOOT支持NAND FLASH 1、把drivers\mtd\nand\s3c2410_nand.c复制为s3c2440_nand.c 在之前移植uboot时去掉了#define CONFIG_CMD_NAND,现在需要打开。 修改:include/configs/smdk2440.h: #define CONFIG_CMD_NAND 编译查看是否编译通过。 ...

WangHuiShou的博客 671

魔改xjar支持springboot3,

其实这里基本就没问题了,实际项目中只要把这个spring-core包从私仓中替换,项目加密也就没有太大的毛病,但是这样对于追求完美的我来说,方便性还差点。原因找到了,看了下springboot github的issue,官方确实变更了,原因是因为springboot2中的。xjar项目文档还是不错的,clone下来,跟着文档,很容易就测试并通过了我的测试项目,于是便推给其他同事使用了。方法,那么问题来了,为啥springboot2没问题,spring3读取出来的却又是加密的,这是为毛?

jioulongzi的专栏 1538

uboot向kernel的传参机制——bootm与tags

uboot如何启动kernel以及uboot与kernel之间的传参机制详解

做一个有技术追求的人 3万+

C/C++基础讲解(四十三)之图形篇之绘制直线、圆、圆弧、 椭圆

程序主要是基于Visual studio 2019进行编译完成了,有兴趣的小伙伴可以自己安装下Visual studio 2019,网上有现成的教程,当然了,如果有问题,也可以和我联系,这里我们主要讲解些源码实例,不多说了,言归正传。 C语言,做为学习其他语言的基础语言,其重要性就不言而喻了.下面我将和大家一起来学习探讨C语言的相关奥秘。 实例1:绘制直线 实例2:绘制圆 实例2:绘制圆弧 实例2:绘制椭圆

hnjzfwy的博客 1235

即插即用篇 | 手把手教你 YOLOv11 添加注意力机制 | 适用于【检测任务】【分类任务】【分割任务】【关键点任务】| 20+ 种全打通!

即插即用篇 | 手把手教你 YOLOv11 添加注意力机制 | 适用于【检测任务】【分类任务】【分割任务】【关键点任务】| 20+ 种全打通!

Coding... 2831

【AT91SAM9261EK】使用U-Boot 2022.01的调试记录

【AT91SAM9261EK】使用U-Boot 2022.01的调试记录

坚韧与专注 1172

2024年游戏策划最新面试题及答案

1. **游戏策划**:负责游戏设计和开发的创意和技术过程。2. **主要职责**:设计游戏玩法、故事、角色、世界等。4. **游戏机制**:定义玩家如何与游戏世界互动的规则。13. **引人入胜的角色**:深入的背景故事、个性特征。3. **游戏平衡**:确保游戏公平、有趣且具有挑战性。7. **RPG特点**:角色发展、故事驱动、玩家选择。12. **关卡设计技巧**:挑战性、流动性、视觉引导。11. **游戏关卡设计**:创建游戏世界的不同阶段。5. **游戏循环**:玩家在游戏中重复的行为模式。

guo162308的博客 2320

uboot初体验-----趣谈nand设备发起的浅显理解

1 选择Uboot版本号 2 移植uboot至console正常work 3 制造uImage和使用uboot指南 4写NFC驱动器 5 uboot从nand启动引导系统 1 选择Uboot版本号 正所谓“工欲善其事,必先利其器”。假设在整个过程中可以有一套友好的软硬件开发环境整个过程就比較顺利了。戳中痛点…… 对于选择Uboot的版本号。一般人都会选择最新版本号。可是...

weixin_30776545的博客 99

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

hi3516cv610 uboot bootm 报错 FDT and ATAGS support not compiled in

hi3516cv610 uboot bootm 报错 FDT and ATAGS support not compiled in

Penper_King的博客 662

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

进入Uboot配置模式

第一步:设置IP setenv serverip 192.168.1.26;setenv ipaddr 192.168.1.28;saveenv 第二步:设置启动方式和启动命令及参数 设置板卡从NandFlash 启动 1.1 烧写内核到NandFlash zynq-uboot> tftpboot 0x2080000 uImage;nand erase 0x600000 0x500...

weixin_38848977的博客 3383

linux移植 id,linux-4.3 简易移植 (续)

,OK210 # nand infoDevice 0: nand0, sector size 512 KiBPage size 4096 bOOB size 224 bErase size 524288 bsubpagesize 1024 boptions 0x 11000bbt options 0x 0OK210 #现在修正好了。...

weixin_33740713的博客 1166

cmdline传递

uboot向kernel的传参机制——bootm与tags   一uboot 如何启动 kernel 1 do_bootm uboot下使用bootm命令启动内核镜像文件uImage,uImage是在zImage头添加了64字节的镜像信息供uboot解析使用,具体这64字节头的内容,我们在分析bootm命令的时候就会一一说到,那直接来看bootm命令。 在common

zll5258的博客 1776

uboot代码解析4:内核传参、ramdisk、initrd

本章主要分析uboot给内核传参的两种方式,struct tag和设备树传参。

2246

U-Boot学习(7):内核启动之bootz启动zImage源码分析

在上一节中,我们分析了,最后就是进入U-Boot的命令行中执行了,如果用户没有任何操作,则经过固定延时后将执行默认的bootcmd环境变量里的指令,那这里面肯定就是启动内核了。在中,我们知道最后执行的应该是bootz指令,那本节就来看一下这个指令如何启动内核的。

主要分享嵌入式软件、人工智能部分知识 2113

u-boot向kernel传递设备树、环境变量解析

u-boot向kernel传递设备树、环境变量解析 一、添加调试打印信息如下 【 do_bootm_states---wzf test states:0x1 continue ...... need_boot_fn:0x0 states:0x1 ## Flattened Device Tree blob at 88000000    Booting using the fdt b...

u014626722的专栏 3764

Exynos4412 Linux Kernel 5.15移植过程记录(一)——解决编译内核出现mpc.h: gmp.h: No such file or director问题

Exynos4412 Linux Kernel移植过程记录(一)解决编译内核出现mpc.h: gmp.h: No such file or director问题

weixin_42408707的博客 3794

ARM-Linux移植之(一)——内核启动流程分析

ooooooooooooooooooooooooooooo

ffmxnjm的博客 5399

uboot学习及内核更换&&设备树及rootfs学习

在前面可以自己编译内核并且可以使用uboot之后,下面就研究下怎么能够快捷的更换版本,而不是把sd卡从树莓派一次次插拔,顺便学习下uboot常见命令。

SSS 2129

Uboot 启动流程简介

尊重原创 http://zwolf.cublog.cn/前面把内核的引导启动整理了~ 想想顺便把uboot也看看吧 = 3=uboot版本 : 1.3.0-rc3 由朗成的weibing进行了修改以提供板子的nand引导启动功能板子 : AT2440EVB在分析启动代码之前先看一下S3C2440的NAND启动:在配置NAND启动模式之后,S3C2440上电会先将NAND中的0x0 -

夕阳帆的专栏 2471

DFT compiler

scan jtag bist ip

zhuangdk的博客 3670
上一篇: uboot中gd的定义和使用
下一篇: uboot下载地址
野-百-合
博客等级 码龄17年 308粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值