UBoot讲解和实践-------------讲解(二)

【U-Boot && Linux命令】:【内存操作md、mw】、【nand flash操作】 文章目录一、Nand Flash1. nand info2. nand device3. nand bad4. nand read(.oob) [addr] [off] [size]5. nand dump [addr] [size]6. nand write [addr] [off] [size]7. nand erase/clean [off] [size]8. nand scrub 一、Nand Flash 1. nand info 查看nandflash 信息 2. nand device 查看n 阅读详情

UBoot  ARM移植之阶段二   理论篇

 stage2:

           1.初始化本阶段要使用的硬件设备:

             通常包括两方面:

              1)初始化至少一个串口,以便和终端用户进行I/O输出信息。
              2)初始化计时器等

          2.检测系统的内存映射

             内存映射就是指在整个4GB物理地址空间中有哪些地址被分配用来寻址系统的RAM单元。必须知道CPU预留的全部RAM地址空间中的哪些被真正映射到RAM地址单元,哪些处于"unused状态。

            使用数据结构体memory_area_struct来描述RAM地址空间中的一段连续的地址范围

           处有一个可用来检测整个RAM地址空间内存映射情况的简单而有效的算法。(具体研究此算法需要另看别的书)

         3.加载内核映像和根文件系统映像

              有两个工作要做:

               1)规划内存占用的布局。包括两个方面:内核映像所占用的内存范围、根文件系统所占用的内存范围。在规划内存占用的布局时,主要考虑基地址和映像的大小两个方面。

              2)从flash上复制。由于像ARM这样的嵌入式CPU通常都在统一的内存空间地址中寻址flash等固态存储设备的,因此从flash上读取数据与从RAM单元中读取数据并没有什么不同。用一个简单的循环就可以完成从flash设备上复制映像的工作

                 while(count)

                 {

                        *dest++=*src++;
                         count -= 4;//arm 是4字节的,由总线决定的。
                  }

           4.设置内核的动参数

               即设置linux内核的启动参数。

               数据结构tag和tag_header定义在linux内核源码的include/asm/setup.h头文件中。(这里面大有文章)

           5.调用内核

               Boot Loader调用Linux内核的方法是直接跳转到内核的第一条指令处,跳转需要满足的条件:

               1)CPU寄存器的设置:R0=0;

               (具体参看内核代码文件:linux/arch/arm/tools/mach --types)
               2)CPU模式:必须禁止中断(IRQs和FIQs),同时必须应该是SVC模式(特权模式,可以访问更多的硬件资源)。
               3)Cache和MMU的设置:MMU必须关闭;指令Cache可以打开也可以关闭;数据cache必须关闭。

                

             

The future's not set,there is no fate but what we make for ourselves.

【rk3568】uboot gpio寄存器配置 10-8对应的在31-16中也就是0000 0111 0000 0000 | 0000 0000 0000 0000 也就是0x07000000。比如要改变0-2 BIT的值,对应的高写允许位就是16-18BIT需要设置为1,否则是写不进去的。其中31-16位对应低16位是否可以写,(为1就有写的权限,如gpio4C6 中10-8将31-16中对应位写1)高16的含义:写允许。要操作对应的低16BIT的某些BIT,对应的高16BIT需要设置为1 是写允许位。1个BIT位,对应1个GPIO. 阅读详情

相关推荐

四.linux开发之uboot移植(四)——uboot初体验记录

一.X210官方uboot配置编译实践 将整个BSP打包文件弄到linux的源生目录中去解压分析,不要在windows中的共享文件夹中解压开。( 除非你的代码只在windows下去分析而不去编译,如果你想编译工程就一定不要在windows共享文件夹下,否则会出错) (1)将共享文件下的bsp所有文件及其子目录复制复制到目录/root/下: (2)解压:tar -zcvf

Mr.Wang的博客 3324

u-boot 中读写寄存器

如下所示: mw 0xE0003170 0xa0000000;mw 0xE0003170 0x40010000;md 0xE0003170 1

DriverMonkey的专栏 8130

九.linux开发之uboot移植(九)——uboot源码分析3-uboot启动内核机制

借鉴资料:http://blog.51cto.com/9291927/1792467 有道云笔记分享地址:http://note.youdao.com/noteshare?id=b63e0101293984d08ea7a015ab202893&sub=2C6EFA378FC4444DBC8D24BBFF8074EC 一.uboot和内核到底是什么 1、uboot是一个裸机程序 ...

Mr.Wang的博客 4091

uboot命令使用-uboot启动log信息分析与内存、网络命令

所以使用命令 setenv 修改的是 DRAM 中的环境变量值,修改以后要使用 saveenv 命令将修改后的环境变量保存到 flash 中,否则的话 uboot 下一次重启会继续使用以前的环境变量值。只能在 uboot 中 ping 其他的机器,其他机器不能 ping uboot,因为 uboot 没有对 ping 命令做处理,如果用其他的机器 ping uboot 的话会失败!mm 命令也是修改指定地址内存值的,使用 mm 修改内存值的时候地址会自增,而使用命 令 nm 的话地址不会自增。

weixin_70293073的博客 1569

将uboot的调试串口和内核到调试串口由COM1改为COM2

一:UBOOT 1、修改uboot-imx\board\freescale\mx51_bbg里的mx51_bbg.c文件,改成需要的设置: static void setup_uart(void) {  unsigned int pad = PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE |     PAD_CTL_PUE_PULL | PAD_CTL

smart_qiang的专栏 1万+

Linux-Uboot

uboot 是一个遵循 GPL 协议的开源软件,uboot 是一个裸机代码,Uboot程序主要用于硬件设备初始化工作。Linux 系统要启动就必须需要一个 bootloader 程序,bootloader程序会先初始化DDR等外设。linux一般运行在DDR,linux镜像文件和设备树一般存储在SD,EMMC,NAND SPI FLASH的存储设备中,Uboot需要在系统启动前需要初始化DDR,完成镜像文件和设备树从外部设备到内部DDR中。一、编译Uboot文件清除工程;

zhuimeng_1234的博客 1253

uboot下内存空间读写命令md&mw

md指令 uboot下输入指令md,会提示md的用法,memory display,即内存显示。 U-Boot-PetaLinux> md md - memory display Usage: md [.b, .w, .l] address [# of objects] b:8位 w:16位 l:32位(默认值) 示例: 上述0x10000000是要显示内存的那个地址,后面的数字是输出的个数,注意是16进制的。 直接输入md来显示,默认是以32位为单位输出 。 mw指令 u...

qq_28643619的博客 2896

RK3568平台入门到精通系列讲解之UBOOT开发篇(GPIO操作)

RK3568平台入门到精通系列讲解之UBOOT开发篇(GPIO操作)

5883

Uboot讲解

软件层次:一个同时装有BootLoader、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图:PC机中的引导加载程序由BIOS(其本质是一段固件程序)和位于硬盘MBR中的引导程序(GRUB或LILO)一起组成。BIOS在完成硬件检测和资源分配后,将硬盘中的引导程序读到系统内存中然后将控制权交给引导程序。引导程序的主要任务是将内核从硬盘上读到内存中,然后跳转到内核的入口点去运行,即启动操作系统。在嵌入式系统中,通常没有像BIOS。

qq_50663389的博客 771

RK3568平台开发系列讲解:UBOOT详细介绍

U-boot是一款广泛使用的开源引导加载程序,支持多种嵌入式操作系统和处理器架构。其主要功能包括系统上电时的硬件初始化、引导操作系统内核等。U-boot的引导流程通常包括Boot Code、idbloader.img、uboot.img、boot.img和rootfs.img等步骤。启动U-boot时,通过Debug串口连接板卡,按下ctrl+c键可进入U-Boot命令行模式。U-boot启动过程中会执行一系列初始化操作,如打印系统信息、初始化内存、加载内核设备树、初始化I2C、PMIC电源芯片、DRM框架

内核笔记 808

深入AOSP构建系统:从BUILD_FINGERPRINT的生成逻辑,看如何定制你的Android设备标识

本文深入解析AOSP构建系统中的设备指纹生成机制,详细介绍了BUILD_FINGERPRINT的生成逻辑及其在Android设备中的关键作用。通过分析多个指纹属性的区别与联系,以及如何定制设备标识,帮助开发者更好地理解和掌握Android系统构建过程。

weixin_27017211的博客 217

uboot移植——uboot启动内核及bootargs参数讲解

嵌入式系统部署在Flash设备上时,对于不同SoC和Flash设备,bootloader、kernel、rootfs的分区是不同的。三星S5PV210规定启动设备的分区方案如下:SD/MMC设备的分区方案:NandFlash设备的分区方案:嵌入式系统在启动时,uboot、kernel、rootfs不能随意存放,必须存放在规划好的相应分区,在启动过程中uboot、kernel会到相应分区加载相应内容,确保正常启动。

tecoes的博客 1471

Golang面试(一)莉莉丝游戏-Golang后端开发-中台部门

莉莉丝游戏-Golang后端开发-中台部门 开场白,双方自我介绍,对方介绍这个岗位情况,erlang语言,全部转向go。 聊项目,介绍IM架构以及使用Go写的服务简介 动态扩容相关问题:平常30万,现在100万,你们现在是如何应对的? 如果让你调整架构实现动态扩容,你会怎么做?回答了kafka,是一种,应该还要使用docker和k8s以及微服务框架等 如果使用kafka,你是如何确保消息有序?回答了redis,好像没回答到那个点 消息发送失败的问题,如何做到消息不丢?回答持久化存储、拉消息和ACK 发送失

xmcy001122的专栏 3898

二、uboot移植

二、uboot移植 版本 作者 时间 备注 V 1.0 bug设计工程师 2021/11/10 创建文件 软件 网盘链接 0交叉编译工具 链接:https://pan.baidu.com/s/1yFO2NDMet9_b1E1q1rMwEA提取码:42kl uboot源码 同上 linux源码 同上 文件系统工具 同上 tftp工具 同上 2.1 简单说明 uboot制作结束会生成 u-boot-etc4412.boot文件,需要将该文件烧

qq_34029954的博客 899

Qt·DBus快速入门

DBus快速入门

m0_64560763的博客 2272

system_stm32f10x.c文件分析

配置系统时钟(包括系统时钟源、锁相环(PLL)倍频系数、高级高性能总线(AHB)/ 高级外设总线(APBx)预分频器以及闪存相关设置)。该函数在系统复位后的启动阶段被调用,且调用时机早于跳转到主程序之前。

Jia shuheng的博客 600

uboot源码结构、配置、编译和移植

uboot源码结构、配置、编译和移植

qq_52479948的博客 5253

Linux中断子系统分析之(四):驱动程序申请中断

中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放置在Top-half中来处理,而将耗时的工作放置在Bottom-half中来处理。 如果中断不分上下半部处理,那么意味着只有等上一个中断完成处理后才会打开中断,下一个中断才能得到响应。当某个中断处理处理时间较长时,很有可能就会造成其他中断丢失而无法响应,影响系统性能。 中断分成上下半部处理可以提高中断的响应能力,在上半部处理完成后便将中断打开,这样就可以响应其他中断了,等到中断退出的时候再进行下半部的处理。为了进

m0_46525308的博客 1225

BIOS和BootLoader uboot

BIOS BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。 BIOS,Basic Input Output System 基本输入输出系统,意思是主板级别的一个小系统。负责系统(主要是主板)的硬件初始化,例如CPU,内存,硬盘,

小吕的博客 1314

第11.4节 混合储能系统能量管理

混合储能系统(HESS)的能量管理策略采用分层架构实现多时间尺度优化:调度层(小时级)进行经济优化,协调层(秒级)基于频率分解分配功率,执行层(毫秒级)实现快速跟踪。深度强化学习(DRL)方法通过定义状态空间、动作空间和多目标奖励函数,能有效处理系统不确定性和多目标优化问题。HESS性能评估需综合技术指标(如调节性能Kp值、设备寿命指标)和经济指标(净现值NPV、平准化储能成本LCOS),并遵循"建模-仿真-实验"的闭环流程。

技术工作者 244

企业如何开展BI建设--指标体系建设

很多企业的数字化转型工作都是从做BI项目开始的,很多企业认为,BI就是做指标大屏,所以做了很多的驾驶舱,也做了很多指标,有从系统取的,有手工填报的,甚至手工填报的比例占到了70%,最终BI沦为了填报系统,业务认为BI就是把从线下的微信沟通转到了线上录入展示,并没有给业务代来任何提升,久而久之,BI大屏就没人关心,公司高层也认为数据都是填报的,都经过了加工处理,这种数据不可信,不能反映业务开展的实际。其实在BI系统建设之前,我们首先要做的就是要梳理企业的指标,到底我们要展示哪些指标?

262

Linux——Uboot命令使用

1)Uboot是一个裸机程序,比较复杂。类似我们PC机的BIOS程序。2)Uboot就是一个bootloader,作用就是用于启动Linux或者其他系统,Uboot最主要的工作是初始化DDR,因为Linux的运行是运行在DDR里面的。(Linux镜像编译出来如果不做裁剪的话有四五兆字节那么大,一般芯片内部ram没有那么大,无法运行,必须放到DDR中运行),所以如果要运行Linux,就要先初始化好DDR,才能在DDR中运行Linux系统。

weixin_74209413的博客 2569

解锁IPG Photonics SmartWeld系统,开启焊接新时代

SmartWeld 系统是 IPG Photonics 研发的一款先进的激光焊接解决方案,它隶属于自动化激光焊接系统类别 ,但却凭借一系列创新技术和独特设计,在众多同类产品中脱颖而出。该系统基于 IPG 在光纤激光技术领域的深厚积累,融合了先进的光束控制、智能监测和自动化控制等技术,旨在为工业制造提供高效、精准且稳定的焊接工艺。与传统激光焊接系统相比,SmartWeld 系统的独特之处首先体现在其光束控制技术上。它能够精确地调整激光束的能量分布、光斑大小和形状 ,以适应不同材料和焊接工艺的需求。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1428

uboot的作用和功能

uboot是用来干什么的,有什么作用? uboot 属于bootloader的一种,是用来引导启动内核的,它的最终目的就是,从flash中读出内核,放到内存中,启动内核 所以,由上面描述的,就知道,UBOOT需要具有读写flash的能力。 uboot是怎样引导启动内核的? uboot刚开始被放到flash中,板子上电后,会自动把其中的一部分代码拷到内存中执行,这部分代码负责把剩余的uboot代码拷到内存中,然后uboot代码再把kernel部分代码也拷到内存中,并且启动,内核启动后,挂着根文件系统,

hhd1988的专栏 4702

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【U-Boot 之七】fastboot原理分析及uboot fastboot功能实践

(1)fastboot是android使用的一种刷机方法。android系统设计了2种刷机方式:fastboot和recovery;(2)fastboot使用usb作为物理传输。刷机其实是镜像传输+烧录,fastboot刷机时就是通过usb线来传输镜像的;(3)fastboot也是uboot中的一个命令,uboot启动时手动进入命令行模式,此时如果需要刷机,则可以在命令行中执行fastboot命令,就可以让uboot进入fastboot模式,刷机就是在fastboot模式下进行的;

2401_85014194的博客 1368

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: UBoot讲解和实践-----------讲解(一)
下一篇: Uart接口的详细解释
csshuke
博客等级 码龄16年 1517粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值