![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM-bootloader-One
文章平均质量分 71
Greens_Ren
这个作者很懒,什么都没留下…
展开
-
ARM裸机开发-bootloader-代码搬移从SRAM到DRAM
本部分分两部分去阐述:1、ARM启动流程2、编写代码一、2440:一上电,就从Nand中取出4KB的代码到SRAM中stepping stone运行,并对内存进行初始化。而后将Nand中代码全部复制到内存中。6410:一上电,SROM中的BL0会将Nand中8KB的代码搬移到SRAM中stepping stone运行,并对内存进行初始化。而后将Nand中代码全部复制到内存中,剩余代原创 2014-03-02 12:40:02 · 1613 阅读 · 0 评论 -
uboot中的.lds链接文件解析
对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下GNU官方网站上对.lds文件形式的完整描述:SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { content转载 2014-06-24 19:15:19 · 958 阅读 · 0 评论 -
ARM裸机开发-bootloader-我是bootloader设计师
一、bootloader设计蓝图1、什么是bootloader如果说系统内核是航天飞机的话,那么bootloader就是助推器,它带动了内核。在内核启动之前它要做许多硬件的初始化操作,来适合系统的安全启动。2、bootloader设计方法-模仿90%的设计从模仿开始,模仿加入自己的想法就是设计。bootloader的模仿我们一般会参照行业老大uboot。3、uboot简介u原创 2014-02-22 13:39:52 · 1323 阅读 · 0 评论 -
ARM裸机开发-bootloader—点亮LED灯
1、编写LED驱动的流程a、原理图分析b、芯片手册c、思维导图d、编写代码2、为什么要点亮led在嵌入式软件(bootloader、kernel)开发初期,由于串口等硬件尚未进行初始化,所以可以用来调试的手段很有限。这时通常运用点亮led作为调试的重要手段。也就是说不断改动led点亮程序的位置,来查看那段代码出现了问题,然后进行针对性的修改。下面我用6410为例进行点亮原创 2014-02-27 10:27:45 · 1560 阅读 · 0 评论 -
ARM-bootloader-C语言环境设计
一、栈的初始化1、概念解析1.1栈栈是一种具有后进先出性质的数据组织方式,也就是说后存放的先取出,先存放的后取出。栈底是第一个进栈的数据所处的位置,栈顶是最后进栈数据所处的位置。1.2满栈和空栈根据SP指针指向的位置,栈可以分为满栈和空栈。1、满栈:当堆栈指针SP总是指向最后压入堆栈的数据2、空栈:当堆栈指针SP总是指向下一个将要放入数据的空位置ARM采用的是满栈原创 2014-03-02 16:06:19 · 1034 阅读 · 0 评论 -
ARM裸机开发-bootloader-内部看ARM
一、嵌入式大汇总1、芯片:s3c2440、s3c6410、s5pv2102、ARM核:A8、ARM9、ARM113、指令架构:armv7、armv62440使用的是arm9的核,内核使用的是armv4的指令架构;6410使用的是arm11的核,内核使用的是armv6的指令架构;210使用的是A8的核,内核使用的是armv7的指令架构。arm11 cortexA5 A8原创 2014-02-20 16:59:30 · 1547 阅读 · 0 评论 -
ARM裸机开发-bootloader-核心初始化
一、异常向量表1、异常的定义异常:因为内部或者外部的一些事件,导致处理器停下正在处理的工作,转而去处理这些发生的事情。2、异常的类型ARM处理器有7种Exception type分别为:Reset、Undefined instructions、Software interrupt、Prefetch Abort、Data Abort、IRQ、FIQ2、什么是异常向量当一种异常原创 2014-02-26 14:03:10 · 1283 阅读 · 0 评论 -
ARM裸机开发-bootloader-时钟初始化(ARM跑快了)
一、概念解析1、什么是时钟脉冲信号,起什么作用?时钟脉冲信号时有一定电压幅度和一定的时间间隔并连续发出的脉冲信号。时钟脉冲信号是时序逻辑的基础,它用于决定逻辑单元中的状态何时更新。数字芯片中的众多晶体管都工作在开关状态,它们的导通和关断动作都是按照时钟信号的节奏进行的。也就是说嵌入式系统是按照时钟来安排CPU的任务。2、时钟脉冲信号的频率是指单位时间内产生的时钟脉冲个数。3、如何产原创 2014-02-27 18:49:02 · 1308 阅读 · 0 评论 -
ARM裸机开发-bootloader-内存初始化
一、从内部看内存1、内存的分类内存分为DRAM和SRAM,其中DRAM又包含SDRAM、DDR、DDR2。DRAM:它的基本部件是小电容,电容可以再两个极板上保留电荷,但是需要定期的充电(刷新),否则数据就好丢失。缺点:要进行不断的刷新才能保持数据,存取速度较慢。SRAM:它是一种具有静止存取功能的内存,不需要定期刷新电路就能保持它们内部存储的数据。其优点:存取的速度快;但是缺点是:功耗大,成本高。常用于存储容量不高,但存取速度快的场合,比如stepping stone。原创 2014-02-28 15:44:08 · 1344 阅读 · 0 评论 -
bootloader的具体介绍
原文地址:bootloader的具体介绍作者:翱翔-分享 引导加载程序BootLoader 是系统加电后运行的第一段代码。我们熟悉的PC 中的引导程序一般由BIOS 和位于硬盘MBR中的OSbootloader(例如LILO 或者GRUB)一起组成。然而在嵌入式系统中通常没有像BIOS 那样的固件程序(有的嵌入式CPU有),因此整个系统的加载启动任务就完全由bootloader 来完成。转载 2013-11-18 16:18:29 · 1372 阅读 · 0 评论 -
ARM裸机开发-bootloader-交叉工具链
今天跟随国嵌,初识linux下ARM的裸机开发全过程。现在总结如下:首先说明为什么要学习裸机开发,一方面bootloader的编写要用到裸机开发的知识,另一方面就是驱动的开发。一般情况下我们进行的系统上的开发。学习要点1、如何修改默认路径用户 root#vim /root/.bashrc添加:export PATH=$PATH:路径生效路径:source /root/.原创 2014-02-18 18:31:18 · 1209 阅读 · 0 评论 -
ARM裸机开发-bootloader-汇编语言
一,汇编语言概述1、为什么要使用汇编一般情况下我们不会用到汇编,但有两种情况下,我们要用到汇编。1、启动代码。编写bootloader和内核时使用,主要是对cpu和内存进行初始化时使用,因为这个时候还没有c语言的环境(堆栈还没有建立),所以不能用c语言。2、高效率的特殊需求。因为汇编语言的执行效率要高于c语言,所以对某些对效率要求高的程序要用到汇编,可以是汇编与c语言的混合编程原创 2014-02-21 13:11:01 · 1300 阅读 · 0 评论