
uboot
wll1228
爱好linux,喜欢嵌入式
展开
-
学习UBOOT前奏之hardware-sdram[s3c2440]
今天我们来学习下S3C2440的SDRAM,同样以代码的形式分析。@*************************************************************************@ File:head.S@ 功能:设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行@***************************************原创 2017-08-07 22:03:32 · 435 阅读 · 0 评论 -
学习uboot之三start_armboot分析
在上一篇中我们介绍了uboot启动过程中最先执行的代码start.S。 经过start.S的,uboot的代码已经从NAND FLASH中拷贝到RAM0x33f80000处 然后 ldr pc, _start_armboot _start_armboot: .word start_armboot接着,分析start_armboot。 如果你曾经接触过原创 2018-01-09 22:12:45 · 403 阅读 · 0 评论 -
学习 uboot 之四主流程main_loop分析
接着上一篇内容,本篇我们来分析main_loop的主要内容: main_loop主要功能有两点:1.没有进入调试模式的话,初始化一些参数,直接跳转到内核入口处执行 2.进入调试模式,执行串口输入的命令 s = getenv ("bootcmd"); if (bootdelay >= 0 && s && !abortboot (bootdelay)) { {原创 2018-01-16 21:25:20 · 2201 阅读 · 0 评论 -
学习 uboot 之六环境变量的使用
这一篇我们来讲一下uboot中环境变量的使用。 按照代码的流程依次来讲,首先执行的跟环境变量相关的函数是env_init---board.cint env_init(void){ gd->env_addr = (ulong)&default_environment[0]; gd->env_valid = 1; return (0);}可以看到环原创 2018-01-23 22:32:34 · 297 阅读 · 0 评论 -
学习 uboot 之二启动代码start.S分析
下面我们正式开始讲解Uboot的启动代码,由uboot的链接脚本能够知道uboot链接时放在代码最开头的是CPU/$(CPUDIR)/start.S在正式看代码之前,我们需要了解S3C2440的stepping stone机制,即NAND FLASH启动时,S3C2440会利用自己内部的控制器将NAND FLASH前4K的内容拷贝到片内的RAM中并将片内RAM映射到0地址开始的地方。下面我原创 2018-01-03 19:11:29 · 436 阅读 · 0 评论 -
学习 uboot 之一makefile及链接脚本分析
下面我们正式开始讲解Uboot的启动代码,由uboot的链接脚本能够知道uboot链接时放在代码最开头的是CPU/$(CPUDIR)/start.S在正式看代码之前,我们需要了解S3C2440的stepping stone机制,即NAND FLASH启动时,S3C2440会利用自己内部的控制器将NAND FLASH前4K的内容拷贝到片内的RAM中并将片内RAM映射到0地址开始的地方。#in原创 2017-12-25 19:49:03 · 717 阅读 · 0 评论 -
学习uboot前奏之hardware-clock[s3c2440]
本节我们来讲下嵌入式系统中时钟的概念,时钟为系统工作提供了基本的时间秩序。作为S3C2440可以直接使用外部晶振,或者直接通过内部电路产生时钟源。关于时钟有三个名词我们需要理解: FCLK:用于CPUC核的时钟 HCLK:用于AHB总线上的设备,比如CPU核、存储器控制器、中断控制器、DMA和USB主机模块 PCLK:用于APB总线上的设备 比如WATCHDOG、IIS、SPI等。对于S3C2原创 2017-11-22 22:36:18 · 296 阅读 · 0 评论 -
学习uboot前奏之hardware-uart[s3c2440]
学习uboot的前奏篇终于要完结了,在这篇UART后,我们将正式开始Uboot的学习,那么现在开始今天的话题。UART称为通用异步收发器,即Universal Asynchronous Receiver Transmitter。发送数据的时候,CPU将数据输入UART,UART按照一定的格式在一根电线上串行发出,接收数据时,UART检查另一根电线上的信号,将串行收集放在缓冲区中,CPU可读取UART原创 2017-12-10 16:50:52 · 281 阅读 · 0 评论 -
学习uboot前奏之hardware-nand flash[s3c2440]
好久没有更新博文了,最近确实懒惰了,哎,不说了。开始今天的学习吧,今天让我们来学习下嵌入式开发中不可缺少的模块-NAND FLASH。FLASH主要分为两类: NAND FLASH 和NOR FLASH两者的主要区别和适用场合如下 参数 NAND NOR 容量 1-32MB NAND:16-512MB 甚至更大 XIP 不可以 可以原创 2017-09-23 17:55:32 · 343 阅读 · 0 评论 -
学习uboot前奏之hardware-IRQ[s3c2440]
中断体系结构ARM体系结构的CPU有7种工作模式1.用户模式(usr): ARM处理器正常的程序执行状态 2.快速中断模式(fiq):用于高速数据输出或者通道处理 3.中断模式(irq):用于通用的中断处理 4.管理模式(svc):操作系统使用的保护模式 5.数据访问终止模式(abt):当数据或者指令预取终止时进入该模式,可用于虚拟存储及保护模式 6.系统模式(sys):运行具有特权的操作原创 2017-10-16 20:57:59 · 394 阅读 · 0 评论 -
学习uboot前奏之hardware-mmu[s3c2440]
接着上一节的SDRAM,这一节我们来学习下MMU。内存管理单元(Memory Management Unit)简称MMU,主要负责虚拟地址到物理地址的映射和权限检查。本文主要讲物理地址映射过程S3C2440的MMU提供如下特性:4种映射长度:段(1MB)、大页(64kB)、小页(4kB)、极小页(1kB)可无效整个TLB可以单独无效某一个TLB条目 等特性在讲具体的地址映原创 2017-08-09 23:01:21 · 298 阅读 · 0 评论 -
学习uboot前奏之hardware-arm基础知识[s3c2440]
一直想利用S3C2440系统的学习uboot和linux内核,但是一直没有坚持下来,之前都是学习零碎的知识,因为没有记录下来,后来基本都忘了,现在想把他们记录下,希望能坚持下去。 下面是ARM汇编的点灯程序,以及汇编后内容。这一篇内容旨在学习下一些基本但是后面会用到的ARM知识.text.global _start_start: ldr r0, =0x原创 2017-07-29 17:26:52 · 359 阅读 · 0 评论 -
学习 uboot 之五CMD命令机制解析
本篇我们来学习uboot CMD 命令的原理,其实在上一篇中我们跳转执行内核入口函数时,就是使用如下的CMD的命令 bootm 0x30007FC0"下面我们就以bootm命令来说明CMD的原理1.首先bootm的定义如下 U_BOOT_CMD( bootm, CFG_MAXARGS, 1, do_bootm, "boo原创 2018-01-18 19:28:25 · 695 阅读 · 0 评论