首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
uboot定时器使用
2024-10-22
1.移植uboot-分析uboot启动流程(详解)
本节总结: uboot启动流程如下: 1)设置CPU为管理模式 2)关看门狗 3)关中断 4)设置时钟频率 (FCLK:HCLK:PCLK=1:2:4,FCLK=120Mhz) 5)关mmu,初始化各个bank 6)进入board_init_f()函数 (初始化定时器,GPIO,串口等,划分内存区域) 7)重定位 复制uboot,然后修改SDRAM上的uboot链接地址) 8)清bss 9)跳转到board_init_r()函数,启动流程结束 1.首先来安装arm-linux-gcc
uboot
******************************************day:2014/10/14**************************uboot*****************************************************1.为什么要有uboot?2.uboot是用来干嘛的?3.uboot是怎么工作的?4.uboot结束后的结果是怎么样的? 为了回答以上的问题,或许问题还不止这些,根据我个人的理解来谈谈,请观看者注意版权问题哈. 起初龙芯
uboot(二): Uboot-arm-start.s分析
声明:该贴是通过参考其他人的帖子整理出来,从中我加深了对uboot的理解,我知道对其他人一定也是有很大的帮助,不敢私藏,如果里面的注释有什么错误请给我回复,我再加以修改.有些部分可能还没解释清楚,如果您觉得有必要注释,希望指出.再次强调该贴的大部分功劳应该归功于那些原创者,由于粗心,我没有留意参考的出处.我的目的是想让大家共同进步.希望大家念在我微不足道的心意,能够积极回馈,以便使帖子更加完善.以后还会把整理的东西陆续公布出来,谢谢光临!! 大多数bootloader都分为stage1和stag
u-boot 流程分析
u-boot 介绍: 对于计算机来说 , 从一开始上机通电是无法直接启动操作系统的 , 这中间需要一个引导过程 , 嵌入式Linux系统同样离不开引导程序 , 这个启动程序就叫启动加载程序(Bootloader) ,Bootloader 主要是进行一些基础必要硬件的初始化 (cpu_init ,memory_init , UART_init ...) , 为最终调用 kernel 作准备 . 对于嵌入式系统而言 , Bootloader 是基于特定的硬件平台实现的 . 因此 , 几乎不可能有
uboot 2014.04 运行过程记录
uboot启动流程分析,针对S5PV210 BL1阶段,SPL,u-boot-spl.bin 1.首先运行arch/arm/cpu/armv7/start.S 里面的_start函数,进行异常向量表设置,然后跳转到reset复位处理函数,设置处理器SVC模式,关闭IRQ和FIQ中断.设置cp15协处理器 的SCTRL寄存器V(bit13)为0,设置异常向量表在0x00000000-0x0000001C,设置异常向量表地址为_start.跳转到cpu_init_cp15初始化协处理器,清除TLB,
基于s5pv210的uboot总结
1.启动过程特征总结 (1)第一阶段为汇编阶段.第二阶段为C阶段 (2)第一阶段在SRAM中.第二阶段在DRAM中 (3)第一阶段注重SoC内部.第二阶段注重SoC外部Board内部 2.uboot的第一阶段做了哪些工作 (1)构建异常向量表 (2)设置CPU为SVC模式 (3)关看门狗 (4)开发板供电置锁 (5)时钟初始化 (6)DDR初始化 (7)串口初始化并打印"OK" (8)重定位 (9)建立映射表并开启MMU (10)跳转到第二阶段 3.uboot第二阶段主要是对开发板级别
Android系统启动过程-uBoot+Kernel+Android
摘要:本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链接我会一一附上. 注:由于本人采用Exynos4412开发板学习,所以本文大部分资料都是基于此处理器的 简介:对于整个Android系统的启动总的来说分为三个阶段: BootLoader引导即uBoot.bin linux内核启动即zImage Android系统启动即ramdisk.img与sys
uboot完全手册---14
1. u-boot介绍 本次移植采用的是U-Boot-1.2.0版本. 3. U-Boot源码分析 3.1 源码入口的解释 可能大多数的同学上网查资料后都了解到,stage1阶段的启动代码,主要就在start.s文件里.此start.s也是系统上电后执行的第一个代码.它全部由汇编编写.在讲述start.s之前,我们先来了解一下,系统怎么知道它要先去start.s里执行代码. 我们知道,每个可执行的映像Image,肯定会给编译器一个入口,而且是“有且只有一个全局的入口”.我们可以把这个入口放在fl
嵌入式 uboot引导kernel,kernel引导fs
1.uboot引导kernel: u-boot中有个bootm命令,它可以引导内存中的应用程序映像(Kernel),bootm命令对应 common/cmd_bootm.c中的do_bootm()函数,此函数实现下面几个功能: 1)读flash中的内核映像文件 2)解压内核 3)校验内核 4)跳到内核执行(调用do_bootm_linux()函数) { 1.Stage1 start.S代码结构 u-boot的stage1代码通常放在start.S文件中,他用汇编语言写成,其主要代码部分如下 (1
uboot start.S分析
一.概述 1.本文综述及特色 阅读uboot,start.S是第一个源程序文件,主要完成初始化看门狗.定时器.重定位(拷贝代码段到内存中).初始化堆栈.跳转到第二阶段等工作. 网上关于这些内容的解释已经非常详细了,但是很少有人设计start.S中有关异常处理的分析,即使有分析也是源码自带的英文注释,很难读懂.笔者在学习过程中尝试着分析这部分代码,虽有收获,但是仍有不解之处,希望有高手不吝赐教. 2.说明 笔者使用的uboot版本是1.1.6,为了说明方便,本分析只针对smdk2410开发板
用jlink在mini2440上烧写uboot
首先,附上我安装jlink驱动: http://download.csdn.net/detail/zzmno1/3776716#comment 以及我使用的uboot.bin文件下载地址: http://blog.chinaunix.net/uid-20543672-id-94368.html 安装成功后有俩个东东,分别是jlink和jflash. 我用j-link连接的时候没有成功,而在j-flash下安装成功. 不过在jflash下连接成功是有前提条件的: 点击file>open proje
第1阶段——uboot分析之硬件初始化start.S(4)
分析uboot第一个执行函数_start(cpu/arm920t/start.S) 打开cpu/arm920t/start.S .globl _start // .globl定义一个全局符号"_start",表明_start这个符号要被链接器用到 _start: //_start:系统复位设置,以下共8种不同的异常处理 b reset //复位异常 0x0 ldr pc, _undefined_instruction //未定义的指令异常 0x4 ldr
uboot、内核、根文件系统启动流程
[1]Uboot的启动流程 Uboot的启动分为两个阶段. 第一阶段:设置异常向量表,设置ARM核为svc模式,关cache和关mmu, 关看门狗,初始化时钟,串口,内存,初始化栈空间,清bss.跳转到第二阶 段. 第二阶段:硬件的初始化,读取环境变量,将内核从emmc加载到内存中, 调用内核. [2]kernel的启动流程 0.设置cpu为svc模式,关中断. 1. 为内核的解压做准备(内存,中断等等). 2.内核自解压 (vmlinux.lds). 3.跳转到入口地址执行(
[uboot] (第五章)uboot流程——uboot启动流程
http://blog.csdn.net/ooonebook/article/details/53070065 以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例 [uboot] uboot流程系列: [project X] tiny210(s5pv210)上电启动流程(BL0-BL2) [project X] tiny210(s5pv210)从存储设备加载代码到DDR [uboot] (第一章)uboot流程——概述 [uboot] (第二章)uboot
八、uboot 代码流程分析---board_init_f
接着上一节,板子开始做前期初始化工作. 8.1 board_init_f Board_f.c (common) /* 板子初次初始化.boot_flags = 0 */ void board_init_f(ulong boot_flags) { gd->flags = boot_flags; gd->have_console = ; if (initcall_run_list(init_sequence_f)) hang(); #if !defined(CONFIG_ARM) &&am
六、uboot 代码流程分析---start.S
6.1 _start 入口函数 6.1.1 vectors.S (arch\arm\lib) 从上一节可以知道,uboot 的入口函数为 _start .此 函数定义在 vectors.S (arch\arm\lib) 中. 在此文件中,定义了异常向量表,及其操作函数._start 开始后,直接跳入 reset 复位中执行启动. /* 头文件包含,包含架构和配置相关的头文件,自动生成的 */ #include <config.h> /* * A macro to allow insertio
buildroot构建项目(七)--- u-boot 2017.11 适配开发板修改 4 ---- 系统启动初始化之四
设置完寄存器控制器后,则跳出cpu_init_crit,进入_main 函数.即进入crt0.S (arch\arm\lib) 跟着代码流程慢慢走 一.crt0.S 1.1 第一步执行代码 /* 预设堆栈指针为CONFIG_SYS_INIT_SP_ADDR */ /* #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + 0x1000 - GENERATED_GBL_DATA_SIZE) */ /* #define CONFIG_SY
u-boot移植(四)---修改前工作:代码流程分析3---代码重定位
一.重定位 1.以前版本的重定位 2.新版本 我们的程序不只涉及一个变量和函数,我们若想访问程序里面的地址,则必须使用SDRAM处的新地址,即我们的程序里面的变量和函数必须修改地址.我们要修改地址,则必须知道程序的地址,就需要在链接的时候加上PIE选项: 加上PIE选项后,链接时候的地址就会生成,然后存储在段里面,如下段(u-boot.lds): 然后我们根据这些地址的信息来修改代码,程序就可以复制到SDRAM的任何地方去. 二.代码流程 start.S中执行到了 bl _main,跳转到_ma
【系统移植】uboot详细分析
uboot使用 uboot控制台,倒计时 命令: 调试,操作一些硬件 setenv printenv saveenv nand erase nand write tftp zImage help: uboot可以提供哪些命令 setenv == set == sete == seten 环境变量: 为命令提供参数 serverip : tftp命令提供tftp服务器的地址 ipaddr : tftp命令提供tftp客户端(开发板)的地址 两个环境变量 uboot: 下
u-boot之start_armboot函数分析
在分析start.S文件过程中提到过,最后从汇编跳到C函数执行的是start_armboot函数,位于lib_arm\board.c文件下,它的执行流程图如下,截图来源于<嵌入式LINUX应用开发完全手册>.根据流程图,以下内容大致分几步写: 1.gd全局变量初始化 2.调用init_sequence函数指针数组里的初始化函数.nand初始化.环境变量初始化.USB初始化 3.死循环main_loop()分析 1.gd全局变量初始化 gd是全局引用的变量,它的定义在Global_data.h
热门专题
pymysql 设置wait_timeout
java拼接json字符串
idea配置tomcat一直失败
hdfs文件开头追加写入
sublime设置侧边栏字体大小
RelativeLayout背景透明度
c如何接收java传过来的集合对象
ubuntu 会修改BISO时间
R程序aggregate
chrome无痕模式不能播在线视频
win7桌面山文件 提示找不到该项目
delphixe 获取memo 可视区行数
merge 和with sqlserver
使用kubectl查看不到节点,apiserver进程没有
管理windows数字签名证书
bugreport kernel加载耗时
chrome 插件开发 访问js 变量
mac系统换行符变化
sql给查询语句加字段
sda必须有一个gpt磁盘标签