随笔 - 342  文章 - 0 评论 - 49 阅读 - 147万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  ARM

ARM的工作环境和工作模式
摘要:工作环境: 可以称之为“数据环境,”数据总线16位或者32位,应用于不同的情况下。16位的情况下,工作速度快,代码密度高。工作模式: 设置程序数据所处的状态,为移植操作系统提供方便。 阅读全文
posted @ 2014-12-01 17:14 amanlikethis 阅读(341) 评论(0) 推荐(0) 编辑
ARM920T系统总线时序分析
摘要:一、系统总线时序图二、分析第一个时钟周期开始,系统地址总线给出需要访问的存储空间地址。经过Tacs时间后,片选信号也相应给出,并且锁存当前地址线上地址信息。再经过Tcso时间后,处理器给出当前操作是读(nOE为低)还是写(new为低)。在Tacc时间内将数据数据准备好放之总线上,Tacc时间后(并查... 阅读全文
posted @ 2014-03-28 15:58 amanlikethis 阅读(622) 评论(0) 推荐(0) 编辑
X86架构与ARM架构比较
摘要:引言 CPU是怎样运作的? CPU的运作与人脑的运作差不多。先谈一下人这个系统的工作方式。眼镜、耳朵、舌头、皮肤等等感觉器官接收到“触觉”,把信息传给大脑,大脑把信息处理后,把处理结果送给手、脚、嘴等执行器官就可以运动了。 人脑的功能就是从某个感觉器官读取信息,处理信息,然后再把结果送给执行器官。 一个完整的系统与人这个系统差不多,传感器接收数据,再把数据传给CPU(CPU按照一定的时序、协议从内存读数据),CPU读取到数据并处理,把处理结果送给执行机构就行了(实际上CPU就是按照一定时序、协议向内存单元写数据)。 CPU从内存中获取数据,处理数据,再把结果送到内存中去。一、指令集架构... 阅读全文
posted @ 2014-02-28 13:44 amanlikethis 阅读(9814) 评论(0) 推荐(0) 编辑
ARM的STRB和LDRB指令分析
摘要:一、SDRAM1、存储结构 SDRAM的内部是一个存储阵列。阵列就如同表格一样,将数据“填”进去。在数据读写时和表格的检索原理一样,先指定一个行(Row),再指定一个列 (Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理 这个单元格(存储阵列)就叫逻辑 Bank(Logical Bank,下文简称 L-Bank)。 由于技术、成本等原因,不可能只做一个全容量的 L-Bank,而且最重要的是,由于 SDRAM的工作原理限制,单一的 L-Ban k将会造成非常严重的寻址冲突,大幅降低内存效率。所以人们在 SDRAM内部分割成多个 L-Bank,目前基本都是 4个.. 阅读全文
posted @ 2013-11-26 22:10 amanlikethis 阅读(23168) 评论(0) 推荐(3) 编辑
大小端格式
摘要:一、概念 大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; 小端模式,是指数据的高位保存在内存的高地址中,而数 据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。二、测试你的计算机是大端还是小端 1 #include 2 int main(void) 3 { 4 int a = 0x12345678; 5 unsigned char *p=(unsigned ... 阅读全文
posted @ 2013-11-26 16:35 amanlikethis 阅读(642) 评论(0) 推荐(0) 编辑
LDR伪指令与ADR伪指令的区别
摘要:测试代码 ldr r0, _start adr r0, _start ldr r0, =_start nop mov pc, lr_start: nop设置代码的起始地址为0x0c008000,用 ADS1.2编译后的反汇编如下所示↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓0c008000 :c008000: e59f000c ldr r0, [pc, #12] ; c008014 c008004: ... 阅读全文
posted @ 2013-11-12 15:59 amanlikethis 阅读(906) 评论(0) 推荐(0) 编辑
ARM编译器4字节对齐
摘要:(1)我们假设只有一个赋初值的char型全局变量,那么系统会在data区分配一个4字节的存储空间来存储它。实际上,只用了1个字节,但是为了4字节对齐,只好分配4个字节,所以就会有3个字节浪费。(2)我们假设在原来基础上增加一个赋初值的char型全局变量,那么系统会在data区原来的4字节中取出一个字节来保存这个新的变量。实际上,这时只用了2个字节,但是为了4字节对齐,只好分配4个字节,所以就会有2个字节浪费。(3)我们假设再在原来基础上增加一个赋初值的short型全局变量,那么系统会在data区原来的4字节中再取出两个字节来保存这个新的变量。实际上,这时用了4个字节,恰好4字节对齐,所以就不会 阅读全文
posted @ 2013-11-01 17:19 amanlikethis 阅读(1739) 评论(0) 推荐(0) 编辑
ARM 的Thumb状态测试
摘要:作为一个使用ARM的学习者,有必要全面了解你的处理器内核。尽管有些内容可能在实际应用中用不到,但是“了解”还是很必要的。Thumb状态,是ARM的一个特色,但是你知道Thumb状态与ARM状态最大的区别是什么,ARM公司设计Thumb状态的初衷是什么? 带着这些问题,我就Thumb状态写了一个简单的程序以作测试。测试平台是ADS1.2,先贴上测试代码。 GET2440addr.incAREAInit,CODE,READONLYCODE32ENTRYEXPORT__ENTRY__ENTRYbResetHandlerbHandlerUndef;handlerforUndefinedmodebHa. 阅读全文
posted @ 2013-10-22 09:24 amanlikethis 阅读(1281) 评论(0) 推荐(0) 编辑
load-store/register-memory/register-plus-memory比较
摘要:在理解ARM的load-store架构时,我在百度上搜索了很长时间,但是始终找不到一篇像样的中文文章。最后,在用谷歌搜索的英文网站上终于找到了一些蛛丝马迹。让我们先看一下一篇英文资料。Processor design is strongly tied to the instruction set design. There were many diverse computer designs and hence many different instruction set designs in the past. However, as the technology progress, th. 阅读全文
posted @ 2013-10-21 10:41 amanlikethis 阅读(2446) 评论(0) 推荐(0) 编辑
ARM中的PC和AXD的PC
摘要:R15 (PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或正在“译码”的指令。一般来说,人们习惯性约定将“正在执行的指令作为参考点”,称之为当前第一条指令,因此PC 总是指向第三条指令。当ARM 状态时,每条指令为4 字节长,所以PC 始终指向该指令地址加8 字节的地址,即:PC 值=当前程序执行位置+8;而AXD 中的pc,是为了调试看着方便而修改过的,它指向的是正在执行的指令,即“真正pc-8”! 阅读全文
posted @ 2013-09-28 21:03 amanlikethis 阅读(370) 评论(0) 推荐(0) 编辑
对ARM9哈佛结构的认识
摘要:书本上都说ARM是哈佛结构,但是我总感觉好像看不出来。后来针对S3C2440的ARM9核进行分析,我有了自己的见解。 我的结论是“ARM9被称为是哈佛结构是从它拥有指令cache和数据cache”来说的。 原来,我怀疑S3C2440的ARM9核不是哈佛结构,是冯诺依曼结构。我的理由如下。哈佛结构要求,能同时访问指令和数据,所以我认为一个哈佛结构要求处理器的总线是复杂的,应该包括程序的地址总线、程序的数据总线、数据的地址总线、数据的数据总线。但是,观察S3C2440核发现,程序和数据最终都会被加载到RAM中运行,所以它也就只有两条总线,FLASH、RAM,包括外设都是公用这两条线。 但... 阅读全文
posted @ 2013-09-28 19:18 amanlikethis 阅读(5947) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示