菜鸟学arm之方法入门篇(基于arm7内核)
armv7学习记录

armv7学习记录ARM架构⽀持跨⼤范围性能点的实现。
ARM处理器的架构简单性导致了⾮常⼩的实现,⽽⼩的实现意味着设备可以具有⾮常低的功耗。
实现⼤⼩、性能和⾮常低的功耗是ARM体系结构的关键属性。
ARM架构是⼀个精简指令集计算机(RISC)架构,因为它包含了这些RISC架构特性:⼀个⼤的统⼀寄存器⽂件⼀种加载/存储体系结构,其中数据处理操作只对寄存器内容进⾏操作,⽽不是直接对内存内容进⾏操作。
简单的寻址模式,所有加载/存储地址仅由寄存器内容和指令字段决定此外,ARM架构还提供:将移位与算术或逻辑运算相结合的指令。
⾃动递增和⾃动递减寻址模式,以优化程序循环。
加载和存储多个指令,以最⼤限度地提⾼数据吞吐量。
许多指令的条件执⾏,以最⼤化执⾏吞吐量。
这些对基本RISC体系结构的增强意味着ARM处理器实现了⾼性能、⼩程序⼤⼩、低功耗和⼩硅区之间的良好平衡。
本体系结构参考⼿册定义了⼀组实现必须遵循的⾏为,以及⼀组软件使⽤实现的规则。
它没有描述如何构建实现。
除⾮体系结构指定不同,否则实现的程序员可见⾏为必须与程序的简单顺序执⾏相同。
这种程序员可见的⾏为不包括程序的执⾏时间。
指令集: ARM指令集是⼀组32位指令,提供全⾯的数据处理和控制功能。
Thumb 指令集是作为⼀个16位指令集开发的,带有ARM指令集功能的⼦集。
它提供了显著提⾼的代码密度,但性能有所降低。
执⾏拇指指令的处理器可以更改为执⾏ARM指令来处理性能关键段,特别是处理中断。
ARMv6T2引⼊了Thumb-2技术。
该技术使⽤许多32位指令扩展了原始Thumb指令集。
ARMv6T2中包含的32位Thumb指令的范围允许拇指代码实现与ARM代码类似的性能,代码密度⽐早期的Thumb代码更好。
在ARMv6T2中,ARM和Thumb指令集提供了⼏乎相同的功能。
体系结构版本、概要⽂件和变体: ⾃引⼊以来,ARM体系结构已经发⽣了显著的变化,并且ARM还在继续开发它。
从51到ARM-32位嵌入式系统入门-第3章-ARM7TDMI简介.

1:寄存器的5种移位方式1>LSL(逻辑左移)1>这种移位相当于寄存器的乘法2>右端空出来的位补0,左端移出的最后一位到CPSR的C位上―――――――▲▲▲注意:这种移位相当于寄存器的乘法,乘以2的N次幂2> LSR(逻辑右移)1>这种移位相当于寄存器的除法▲▲▲2>左端空出的为补0,最后移出的一位放在了CPSR的C位上3> ROR(循环右移)1>向右移位,移出的位填补到左端的空位2>最后移出的那位也移出到C位4> ASR(算术右移)1>向右移位,移出的位丢失,最左端的位始终保持不变2>最后移出的位放在程序状态寄存器的C位注意:这种移位对于有符号数据使用时可以保持符号位不变,最高位为1的负数永远是负数,最高位为0的整数永远总是整数。
5:RRX(扩展的循环右移)1>只右移一位2>左侧空出的位由C位来填补3>移出的一位来填补C位注意:只能移动一位2:算术右移的求值用8位补码表示整数-126的机器码算术右移一位后的结果是多少?解答:126的源码二进制表示:0 1 1 1 1 1 1 0-126的源码表示:1 1 1 1 1 1 1 0-126的补码表示:1 0 0 0 0 0 1 0 (取反加1)算术右移一位:1 1 0 0 0 0 0 1 (补码形式)编程源码形式:1 0 1 1 1 1 1 1 (源码形式)――> 十进制=-631 0 1 0 0 1 0 00 1 0 0 1 1 0 11 1 1 0 1 1 0 13:在ARM中表示内存寻址的方法是:[ ]4:变址寻址应用的场合当多个数据存放于同一个存储区形成数组或表格时,这些数据地址都是紧邻的。
当对这样的数据进行操作时,可以用变址寻址的方法。
5:注意寄存器间址寻址是变址寻址的一个特例6:前索引和后索引的寻址区别1> 后索引:LDR R0, [R1], #4 /* LDR R0, [R1] R1=R1+4 */2> 前索引:LDR R0, [R1,#4] /* [R1+4] -> R07:多寄存器寻址LDMIA R2, {R3,R5-R7}详细过程:R3 ← [R2]R5 ← [R2+04]R6 ← [R2+08]R7 ← [R2+12]STMDB R1, {R3-R6,R8}R3 → [R1]R4 → [R1+04]R5 → [R1+08]R6 → [R1+12]R8 → [R1+16]注意:在传送过程中,R1自动+4,但是当传送完毕后,R1还是原来的值8:ARM堆栈的几种形式1> FA :满递增2> FD :满递减3> EA :空递增4> ED :空递减―――――――满堆栈:堆栈指针指向最后入栈的位置空堆栈:堆栈指针指向下一个入栈的位置增堆栈:数据入栈时,堆栈指针是增加的减堆栈:数据入栈时,堆栈指针是递减的。
ARM入门笔记

ARM⼊门笔记简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地⽅。
为什么要发布出来?也许是⼤家感兴趣的,其实这些笔记之所以叫笔记⽽不是⽂章,是因为它们完全是本⼈个⼈学习经验的总结,⽽这些经验都来⾃于其他前辈的⽆私奉献,在这⾥对这些乐于发表⾃⼰经验的前辈致以由衷的感谢!现在我把这些前辈的⽂章经过⾃⼰的理解写出来⼀⽅⾯是对于他们的尊重,另⼀⽅⾯也希望觉得本⼈的笔记有参考意义的朋友把这种精神继续传下去。
再次声明,本⼈确实是个菜鸟,现在⼿头的板⼦是⾃⼰画的,以RT&ZQ的板⼦为底版,对部分电路进⾏了改动。
⽐如加⼊了SD卡,IIC总线键盘,触摸屏,GPS,GPRS等等。
并对LCD接⼝进⾏改造,使之完全适合⼿头的SHARP液晶。
把⽹络,串⼝,USB这些调试⽤接⼝都外扩了,⽬的是使主板尽量⼩(⽬前第⼀版为了调试⽅便,主板特意画的⽐较⼤)。
但是存储部分(RAM ROM)没有做任何变动,在这⾥对RT&ZQ致谢!这块板⼦是本⼈第⼆个板⼦(第⼀块是个接⼝板,30根线。
)所以⾛线,设计都经不起推敲,但是同样⾮常希望⼤家能够指点!板⼦基本元件清单说⼀下吧,⽅便其他⼈参考CPU:44B0RAM:HY57V641620ROM:AM29LV160NET:8019USB:D12KEY:ZLG7290LCD:SHARP LM7M632⽬前为⽌本⼈做的⼯作1板⼦的硬件调试是跟着软件来的2ADS AXD调试环境搭建3FLSH烧写笔记4UBOOT移植笔记5UCLINUX编译下载简单笔记6字符设备驱动开发C⼯程模板使⽤说明本模板⽤于使44B0运⾏C程序⼀般说来汇编⽤来初始化之后跳到C⼊⼝MAIN函数处⼀、关于⼯程⽂件1、本⽬录下建⼯程⽂件(.MCP)2、⼯程⽂件⾄少包含3个⽂件44binit.s44blib_a.s*.c(⾃⼰的c⽂件)3、44binit.s中开头部分INCLUDE两个⽂件MEMCFG.S Option.s⽤于基本设置注意这两个⽂件的存放⽬录,即让INCLUDE找到它们4、以上⽂件除⾃⼰的c⽂件之外均为三星公版,不需修改⼆、关于CodeWarrior设置1、DebugRel Setting⾥⼀般设置⼏项1)Target Setting->Linker⾥选ARMLinker⽤于设置连接2)Target Setting->Post-Linker选ARM fromELF⽤于⽣成FLASH烧录代码(只在RAM⾥运⾏⽽不烧录则不⽤)3)ARM Linker->RO BASE⾥添地址根据板⼦来,这板⼦上RAM接的NSCS6,地址0XC000000-0XC7FFFFF;FLASH接的NSCS0,地址0X00000-0XFFFFF地址分配原理见44B0数据⼿册内存管理那章的内存分配图想在RAM⾥调试就添0XC000000(⽐如0XC008000)的地址但是注意的是地址不要添过界,⽐如想在RAM⾥调试却添0X00000000程序可以进⼊C 代码但没法运⾏再有想⽣成⽤于烧写得FLASH代码RO地址就需要设置为0X0000000开始的⽽且LAYOUT 中也必须设置44BINIT.O为初始加载⽂件以上FLASH测试结论经FLASHPGM测试⽽且FLASHPGM不⽀持BIN⽂件只⽀持INTEL得HEX⽂件4)RW可以添可以不添⼀般RO解释为数据段,RW解释为数据段有时⾼兴了就添上0XC100000(RAM调试时)5)ARM Linker->OPTION->Image entry point选择0xc000000(RAM调试时)6)ARM Linker->Layout->Object/Symbol⾥可以添⼯程起始程序44BINIT.O注意是.O不是.S 和.0(零)也可以不添三、AXD设置1)按照BANYANGT或者ARM7正确设置调试代理BANYANGT、ARM7、H-JTAG都是代理,装哪个⽆所谓,⼀般认为BANYANGT好,但⽆论哪个调试之前必须运⾏代理2)在option->configure interface⾥在session file选择44b0.ini这个⽂件是初始化44b0寄存器的,必须运⾏3)Options->Configue Target⾥本来有两项,上⾯上是硬件调试,下⾯是软件仿真(在电脑上仿真)⽤ARM7就改第⼀项(按照ARM7说明改),⽤BANYANGT就按照BANYANGT说明在下⾯再加个BANYANGT的驱动4)在general标签页选择attach,然后确定,最后在file->save session,关闭AXD(在CodeWarrior ⾥⼀DEBUG就⾃动打开)四、关于JTAG1)JTAG⼀般有⼏种SDT和WIGGLER我的是WIGGLER的,两者区别主要在并⼝25针定义不⼀样(不算复位脚),与板⼦上JTAG相连的脚不是区分JTAG类型的标志只要和44B0对上就⾏2)JTAG⼩板上与44B0⼤板上JTAH跳线RAM调试时都不⽤接烧FLASH才⽤到3)⽹上流传的JTAG⼩板上也有不⽤RST信号的版本,⽆所谓,RST信号不是标准的五、另外开始的时候犯了低级错误,没设置OM123跳线导致晶体不阵~~~其他的看万龙的ARM开发板使⽤⼿册,写的还不错模板:user94/mamajinco/upload/825806664.rar这部分可能过于简单,很少有⼈写,但是对于不了解ARM开发过程的⼈真的简单吗?我是菜鸟,在这卡了3天:)⼀般说来有⼏种⽅法,1)板⼦原来的BOOTLOADER程序或者为烧写⽽编写的专⽤ADS程序⽐较⾼级⽽快速的⽅法,很多现成的开发板都⽤这种⽅法(相对来说有实⼒的公司),此状态下CPU是运⾏的,所以速度快。
ARM应用系统开发详解(入门资料)

ARM应用系统开发详解(入门资料)第1章ARM微处理器概述本章简介ARM微处理器的一些基本概念、应用领域及特点,引导读者进入ARM技术的殿堂。
本章主要内容:- ARM及相关技术简介- ARM微处理器的应用领域及特点- ARM微处理器系列- ARM微处理器的体系结构- ARM微处理器的应用选型1.1 ARM-ADV ANCED RISC MachinesARM(ADV ANCED RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。
目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。
ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。
目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。
1.2 ARM微处理器的应用领域及特点1.2.1 ARM微处理器的应用领域到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域:1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。
ARM 7 精简总结

ARM 7 精简总结1. 3V操作并同5V系统兼容(电源比较敏感的应用)2 . 32位的RISC结构处理器(32位地址和数据总线)3.Little/Big Endian 操作模式拓展:ARM7 依据BIGNED 信号为高或者低,将MEM中的数据当作Big Endian或Little Endian 格式,MEM 被看作字节线性存储,序号从0向上排列,字节0到3为第一个存储字,4 到7为第二个,以此类推。
在LittleEndian格式,一个字的最小号字节被当作最低字节,最大号字节被当作最高字节。
字节0将被连结到数据线D[7:0]。
在Big Endian 格式下,最高字节被存在MEM中的最低地址,最低字节被存在MEM的最高地址。
MEM中字节0对应数据线D[31:24],endianism只影响加载和存储指令4.快速中断响应,适合于实时系统5.支持虚拟内存,高级语言6.应用:电讯(GSM终端控制)数据通信(协议转换)便携式计算机(掌上电脑)自动控制系统(发动机管理单元)信息存贮系统(存储卡)图像处理(JOEG控制器)7. 指令集包含11种基本类型:<1>两种类型用于偏上算术逻辑单元,桶式移位器和乘法器,在31个寄存器(32位)间执行高速操作;<2>三种类型的指令控制数据在存储器和寄存器之间传送,一种用于弹性地址,一种用于高速内容切换,一种用于交换数据;<3>三种类型的指令用于控制流程和特权级执行;<4>三种专门用于控制外部的协处理器,此种协处理器允许指令集的功能以开放和统一的格式扩展到片外。
8.应用了流水线技术9. ARM7 有32位的地址总线,所有的ARM 处理器共享同一个指令集,ARM7 可以配置成26位地址线,向下兼容其他更早期的处理器10.信号描述11. 操作模式选择ARM7有32位地址和32位数据线。
处理器支持字节(8位),字(32位)数据类型,字必须四个字节对齐。
第三章 ARM的指令系统ARM7

一、ARM指令的寻址方式 二、ARM指令概述 三、ARM指令集 四、ARM汇编指令实战 五、本节附录
一、ARM指令的寻址方式
汇编指令由操作码字段和操作数字段两部分组成。 操作码字段指示处理器所要执行的操作; 操作数字段指出在指令执行操作的过程中所需要的操作数。 指令的一般格式:
例:S后缀举例
ADD R3,R5,R8 ADDS R3,R5,R8 ;R3 = R5 + R8,条件标志位不刷新 ;R3 = R5 + R8,条件标志位刷新
第1条指令不会引起状态寄存器中条件标志位的变化; 第2条指令将引起程序状态寄存器的条件标志位刷新。 比较指令不需要加S后缀,在执行时会自动刷新条件标志位。 S后缀的使用目的:需要把此次指令执行的结果反映到条件标志位时 候,就可以在这条指令的后面加上后缀S。
相应的ARM指令为:
CMP R0,R1 ADDCC R0,R0,R1 SUBHI R0,R0,R1 ;R0与R1比较 ;R0 < R1时,本指令执行 ;R0 > R1时,本指令执行
2、其他后缀
其他后缀包括S后缀、!后缀、字长后缀、索引后缀、堆栈后缀、T 后缀等等。 ① S后缀 使用S后缀时,指令执行后程序状态寄存器的条件标志位将刷新。
第3条指令的R2和第4条指令的#1都是第二操作数。 第二操作数可以是: ◎8位立即数,或者8位图立即数; ◎寄存器值,或者寄存器的值移位得到的新数值。
例:第二操作数举例
ADD R1,R1,R2,LSL #3 ; R1 + R2×8→R1
LSL是逻辑左移指令,第二操作数是R2左移3位得到的结果。
1.2 指令的后缀
后缀符号 B H SB SH 含义 传送的数据是无符号一字节(8位) 传送的数据是无符号一个半字(16位) 传送的数据是一个有符号字节 传送的数据是一个有符号半字
基于ARM的SoC设计入门.

基于ARM的SoC设计入门2005-12-27 来源:电子工程专辑阅读次数: 1033 作者:蒋燕波我们跳过所有对ARM介绍性的描述,直接进入工程师们最关心的问题。
要设计一个基于ARM的SoC,我们首先要了解一个基于ARM的SoC的结构。
图1是一个典型的SoC的结构:图1 从图1我们可以了解这个的SoC的基本构成:ARM core:ARM966E∙AMBA 总线:AHB+APB∙外设IP(Peripheral IPs):VIC(Vector Interrupt Controller), DMA, UART, RTC, SSP, WDT∙Memory blocks:SRAM, FLASH∙模拟IP:ADC, PLL如果公司已经决定要开始进行一个基于ARM的SoC的设计,我们将会面临一系列与这些基本构成相关的问题,在下面的篇幅中,我们尝试讨论这些问题。
1. 我们应该选择那种内核?的确,ARM为我们提供了非常多的选择,从下面的表-1中我们可以看到各种不同ARM内核的不同特点:表1 ARM已经给出了基本的参考意见:∙如果您在开发嵌入式实时系统,例如汽车控制、工业控制或网络应用,则应该选择Embedded core。
∙如果您在开发以应用程序为主并要使用操作系统,例如Linux, Palm OS, Symbian OS 或Windows CE等等,则应选择Application core。
∙如果您在开发象Smart card,SIM卡或者POS机一样的需要安全保密的系统,则需要选择Secure Core。
举个例子,假如今天我们需要设计的是一个VoIP电话使用的SoC,由于这个应用不需要使用到操作系统,所以我们可以考虑使用没有MMU的内核。
另外由于网络协议盏对实时性的要求较高,所以我们可以考虑ARM9系列的内核。
又由于VoIP有语音编解码方面的需求,所以需要有DSP功能扩展的内核,所以ARM946E-S或ARM966E-S应该是比较合适的选择。
基于ARM7内核芯片网络通讯设计

基于 A M7内核芯片网络通讯设计 R
郭 玉辉 。 王彦 瑜 ‘ ,
(.中 国科 学 院 近代 物理 研 究 所 ,甘 肃 兰州 7 00 ;2 1 3 00 .中国科 学 院 研 究生 院 ,北 京 10 3 ) 0 0 9
摘 要 :为 了 实现 对 物 理 实验 装 置 的 远 程 监 控 和 访 问 , 采 用 3 将 2位 芯 片技 术 和 基 于 面 向 对 象 的 网 络 S c e 编 程 模 式 采 实现 okt
一 I 重 1【
wokcmmu i t no nrlyt icr e u ae nojc etdnt r rga r o nc i f o t s m a i o t sdo bet r ne ewokpo rmmi d f o kt ¥ C 5 e ao c os e s r d b o i n mo e c e. 3 4 B it g os 1 ]sh 0
维普资讯 http://www.cqv源自第 2 卷 第 l 期 7 6
VO1 27 . N O .1 6
计算 机 工程 与 设 计
Co p trEn ie rn n sg m ue g n e ga dDe in i
20 年 8月 06
Au g.2 0 0 6
2 G aut Sh o,C iee cd m f cecs e i 0 0 9 hn ) . rd a co l hns ae yo i e,B in 10 3 ,C i e A S n jg a
Ab t a t I r e e l e f e t l n t r n c e s h s s x e i n q i me t h 2 b t en l h p i a o t da dt e e - sr c : no d r o r ai r mo ey mo i da c s y i p r t zo oa p c e me t u p n ,t e3 i k r e i d p e t e c s n h n
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
by:爱雪胡
想必有很多同学都有这样的经历,学过了51单片机之后,想要学习ARM,但又无从下手,关于ARM的学习视频或资料又没有51的那样好理解,结果花了好长时间也不得其法。
我也曾是一个初学者,也是从这个过程走过来的,对其中的困难深有感触,闲来无事,把自己的学习过程及心得体会记录成文,希望能对处在纠结中的孩纸有点帮助。
ps:我不是大神,本人菜鸟一个,如有疏漏,还望不吝赐教qq:1906723068
首先说一下我用的芯片,是LPC2103,ARM7内核的,相信很多人也用过,ARM9比较高端,目前还没有学完。
个人感觉ARM7还是作为单片机使用比较好,不适合用它来跑系统,因为它主频不够高(能提到60多M貌似),我就是把它单纯作为一个32位的单片机来使用的。
ARM7与51的最大区别首先是CPU位数不一样,这个应该好理解一个是32位单片机,一个是8位单片机,性能上当然前者更好点了,速度更快、功耗更小、外设更多,价格差距也越来越小。
一般用的51单片机多为STC89C52或其同类产品如图所示:
51的外设一般比较少,以上图为例只有UART,定时器资源,其他功能基本需要另加元件,比如AD芯片、DA芯片、有些功能还只能靠软件模拟,如SPI接口,IIC接口,PWM等,在简单的控制系统中51是非常厉害的,但是在一些复杂控制并且对体积功耗等要求严格的系统中,51就力不从心了,这时ARM7就非常好用了,它速度快,体积小(LPC2103的面积还不到1平方厘米),外设多(集成有2个UART,1个SPI,2个IIC,1个SSP,2个定时器,PWM,AD,RTC等)这样就非常方便好用。
最开始学习ARM我们最希望弄明白的就是怎么去操作它,具体来说就是我买一个学习板,怎么把程序下载到芯片里边并让程序跑起来,这和我们学51时点亮第一盏等的想法是一样的。
这就要求知道3点:
1.编程,即使用什么软件去编程序;
2.烧程序,即使用什么烧录程序软件;
3.怎么烧,是用串口ISP下载还是使用JLINK烧录
对这3个问题我一一解答。
1.编程序,一般使用IAR或ADS或Keil,如果想很快上手建议使用IAR,不过我用了一段时间之后感觉并不好
用,界面不好看而且对其中的一些配置文件不是很明了。
Keil听说不错,不过没有用过不敢妄下评论,个人感觉还是ADS比较好用,虽然它的启动代码和配置文件比较复杂,但是比较明了,可以在网上下一份周立功的LPC2131工程模板,里边的各个配置文件的解释非常清楚,这样可以对程序的运行过程理解得更深刻。
2.烧程序,这个不同的芯片不一样,我的用的是NXP公司的flashmagic软件,这个根据不同的开发板具体去选择。
3.怎么烧,一般买arm的开发板时卖家会问你电脑有没有并口,当然现在的电脑基本都没有并口就是串口也很少有,这时他会说调试程序需要并口才行,会给你说让你顺便买他的JLINK仿真器,如下图所示
这个仿真器一般都卖七八十,有的卖100多块大洋,但其实它用处并不是很大,它是用来对arm进行硬件仿真用的,平时我们对51程序进行仿真都是软件仿真,这个玩意儿就是把软件仿真的结果同步输出到开发板上,等于是在板子上可以一步一步地调试程序。
我们学习时一般不会编制非常复杂的程序,基本上编制好就烧进芯片里让它上电运行就可以了,大不了再烧一遍。
所以如果只是一般学习的话就不要
买这个仿真器了。
那程序怎么烧进芯片里呢,ARM7提供了一种ISP 下载功能,也就是和51烧程序一样,用一根串口线和学习板的UART 口相连即可,用的串口线也和51是一样的也是USB转RS232线,不过对ARM7来说,它不会自动进行ISP下载,需要先按下复位不放,然后让P0.14脚接低电平再松开复位,最后松开P0.14(这是对LPC2103来说,不同arm可能略有差异,不过大同小异),这样就可以像给51烧程序一样给arm烧程序了。
至于编程语言,当然是C了,汇编了解一些即可,不需要非常明白(反正我是很多理解不了)。
学习51我们都有一个感受,就是对sfr操作比较多,其实51的一些复杂功能就是通过对这些特殊功能寄存器进行配置赋值以达到不同目的的,arm也是一样,只是这些负责不同外设功能的sfr(暂且这样叫吧)更多,关系更复杂,但其核心思想是不变的,理解了这一点,你的arm7就基本会了一半了,剩下的就是实践与再实践了。
下边说一下arm7的一些常识,我们都知道51的存储器结构式哈佛结构,也就是它存储程序和存储数据的空间是分开的,有不同的指令分别对程序和数据进行操作,而arm7的存储结构是冯诺依曼结构,即数据和程序不分开,这和PC机是一致的。
还有存储单元,在arm 中,字的长度是32位,半字的长度是16位,字节的长度是8位。
还有arm7的时钟问题,芯片内部的时钟不是完全一样的,像内核与外设之间的时钟频率就可以设置成不同值,这个是通过芯片内部的倍频电路实现的,也就是所谓的锁相环(PLL),这个后边具体说。
总之,学习arm7,就可以把它当做一个32位的单片机来学习,等自己可以随心所欲地操作它的各个硬件并对其工作原理理解深刻以后,可以继续学习更高档的微处理器或在上边跑操作系统。
这章就到此未知,简要介绍了一些关于arm7的基本常识。