ARM相关
wuhuan_001
这个作者很懒,什么都没留下…
展开
-
Boot block
请教boot block到底是什么?1.对于zlg的开发板,boot block的内容是否就是开发模板里的那些文件编译成ELF再传到Flash中?2.还有用户程序是放在Flash的哪个地方?Flash开始64字节和结尾8k字节之间? ZLGARM:boot block 是芯片设计厂家在LPC2000系列微控制器内部固化的一段代码,用户无法对其修改和删除。这段代码在芯片复位后首先转载 2013-12-31 20:12:25 · 1104 阅读 · 0 评论 -
ARM寄存器小结
ARM微处理器支持7种运行模式,分别为:1. 用户模式(usr):ARM处理器正常的程序执行状态;2. 快速中断模式(fiq):用于高速数据传输或通道管理;3. 外部中断模式(irq):用于通用的中断处理;4. 管理模式(svc):操作系统使用的保护模式;5. 数据访问终止模式(abt):当数据或指令预取终止时进入该模式,用于虚拟存储及存储保护;6.转载 2014-01-01 21:04:09 · 1128 阅读 · 0 评论 -
arm调试的准备内容,注意事项,以及BOOTLOADER和散列表加装的分析
arm内核默认的指令执行方式是从0x0执行,但是由于一般工程上代码的容量都非常大,我们都是外部扩展RAM和FLASH,把程序放在外部,那么就需要把程序的存放地址映射到0x0处,以便于pc可以在自己写的代码中跑。好在一般的arm核心都支持把norflash的0x0映射到芯片地址的0x0处(norflash要接在固定的BANK上,才能正常映射),如s3c2410,有的芯片功能更强大,支持把NANDFL转载 2014-01-01 21:03:28 · 407 阅读 · 0 评论 -
Thumb、ARM指令 状态切换
与ARM指令集相比较,Thumb指令集中的数据处理指令的操作数仍然是32位,指令地址也为32位,但Thumb指令集为实现16位的指令长度,舍弃了ARM指令集的一些特性,如大多数的Thumb指令是无条件执行的,而几乎所有的ARM指令都是有条件执行的;大多数的Thumb数据处理指令的目的寄存器与其中一个源寄存器相同。 由于Thumb指令的长度为16位,即只用ARM指令一半的位数来实现同样的功能转载 2013-12-31 21:41:45 · 6605 阅读 · 1 评论 -
嵌入式系统 Boot Loader 技术内幕
在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1. 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。2. Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。3. 文件系统。包括根文件系统和建立于 Flash转载 2013-12-29 23:25:24 · 481 阅读 · 0 评论 -
ARM ADS中的AXD 调试经验集锦
1、如何设置AXD连接的Target。在菜单的Configure Target…选项中可以设置。一般选择MutiIce或者ARMUL两种。ARMUL是一种ARM的模拟器。一般的算法或者一些无需和硬件中断等设备打交道的程序都可以通过这个进行调试。使用上非常简单。我们一般上板子进行调试都是通过MutiICE来进行。在刚刚安装了系统的时候,菜单中没有MutiICE,需要我们手动添转载 2013-12-30 22:31:36 · 490 阅读 · 0 评论 -
ARM基础知识连载
在ARM体系中通常有以下3种方式控制程序的执行流程:**在正常执行过程中,每执行一条ARM指令,程序计数器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器寄存器(PC)加2个字节。整个过程是按顺序执行。**跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。其中,B指令用于执行跳转操作;BL指令在执行跳转操作同时,保存子程序的返回地址;BX指令在转载 2013-12-31 20:52:33 · 695 阅读 · 0 评论 -
#pragma
解析#pragma指令预处理指令,设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为:#Pragma Para,其中Para 为参数,下面来看一些常用的参数。(1) message参数。转载 2013-12-29 23:21:40 · 537 阅读 · 0 评论 -
ARM汇编特殊符号 汇编符号引用
特殊符号 ---- 对应指令 ---- 含义 ---- 示例^ ---- MAP ---- 定义结构化内存表 ---- MAP 4096;内存表首地址为4096# ---- FIELD ---- 定义内存表中的数据,结合MAP指令使用 ---- MAP 4096STACKSVC FIELD 256;定义从4096开始的256字节为SVC的堆栈空间。% ---- SPAC转载 2013-12-31 20:07:42 · 1308 阅读 · 0 评论 -
冯诺依曼、哈佛、RISC、CISC
几个基础材料(源:http://jwc.seu.edu.cn/zq/signal/new/importent/zhang5_6/feng.htmhttp://jwc.seu.edu.cn/zq/signal/new/importent/zhang5_6/harvard.htmhttp://dingjun.net/dingjun/html/14/84FB43402106C575.html转载 2013-12-31 20:43:19 · 2216 阅读 · 0 评论 -
大端模式 小端模式
大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; 小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。转载 2013-12-30 22:12:20 · 482 阅读 · 0 评论 -
ARM中C和汇编混合编程及示例
在嵌入式系统开发中,目前使用的主要编程语言是C和汇编,C++已经有相应的编译器,但是现在使用还是比较少的。在稍大规模的嵌入式软件中,例如含有OS,大部分的代码都是用C编写的,主要是因为C语言的结构比较好,便于人的理解,而且有大量的支持库。 尽管如此,很多地方还是要用到汇编语言,例如开机时硬件系统的初始化,包括CPU状态的设定,中断的使能,主频的设定,以及RAM的控制参数及初始化,一转载 2013-12-31 21:02:09 · 807 阅读 · 0 评论 -
ARM中的RO、RW和ZI DATA说明
源:http://mcuos.com/thread-2843-1-1.html RO段、RW段和ZI段 要了解RO,RW和ZI需要首先了解以下知识:ARM程序的组成 此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别。转载 2013-12-31 21:41:06 · 457 阅读 · 0 评论 -
IO端口和IO内存映射【waitting】
A.几乎每一种外设都是通过读写设备上的寄存器来进行的。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。而具体采用哪一种则取决于CPU的体系结构。 有些体系结构的CPU(如,转载 2013-12-29 23:24:45 · 565 阅读 · 0 评论 -
arm调试的准备内容,注意事项,以及BOOTLOADER和散列表加装的分析
arm内核默认的指令执行方式是从0x0执行,但是由于一般工程上代码的容量都非常大,我们都是外部扩展RAM和FLASH,把程序放在外部,那么就需要把程序的存放地址映射到0x0处,以便于pc可以在自己写的代码中跑。好在一般的arm核心都支持把norflash的0x0映射到芯片地址的0x0处(norflash要接在固定的BANK上,才能正常映射),如s3c2410,有的芯片功能更强大,支持把NANDFL转载 2014-01-02 22:25:58 · 476 阅读 · 0 评论