ARM学习笔记

来源:互联网 发布:npc什么意思网络语言 编辑:程序博客网 时间:2024/05/22 03:07

今年要参加全国大学生电子线路设计竞赛,前段时间都在画PCB板,该画的也都画的差不多了,不过比较郁闷的是画了两块FPGA的核心板,都出了点问题,说出来怕大家笑话,竟然是过孔设置的问题,有几个过孔为了方便布线,把Diameter和Hole Size设置了同样的大小,均为15mil.结果可想而知,被Pcb加工方退回来了,白白浪费了两三天的时间。

最近三四天在学Arm,开发板使用的是ARM7TDMI核心的44B0X。学了几天,感觉Arm不容易上手,对于它的存储器机制还不是很明了,Arm的汇编语言也没细看,只关注C语言编程,还有初始化的那些文件也是云里雾里。可以说还没有入门。话又说回来,Arm 的入门也的确不是一件很容易的事,尤其对于我来说,脑子实在不好使,找个借口吧,呵呵~我相信只要坚持,就一定能学好。还好,和我组队的兄弟比我学的时间长,早就买了开发板,我现在用的就是他的板子,而他就用老师的那个Embest的开发板。有些问题还是可以向他讨教的。

下面是我对Arm的一些重要内容总结与记录(我认为重要的,高手莫笑,呵呵……),这是这两天搜集的东西,以后会慢慢的加上来,索性给它编个号吧,001!okay,但愿接下来的002,003,004……会有一些真正有技术含量的东西贡献给大家。也希望大家能给小弟一些建议,交流交流,这样学起来应该快一点,先谢谢啦!

Arm学习笔记001

1.       ARM7TDMI

指是ARM7核,TDMI分别表示不同的含义:

T:指支持Thumb16位压缩指令集

D:支持片上Debug,使处理器能够停止,以相应调试请求

M:增强型Multiplier,与前代相比,具有较强的性能且产生64位的结果

I EmbededICE硬件,以支持片上断点和观察点

 

2.       ARM7TDMI有七个IO口,71IO Pin

Two 9-bit input/output ports. (Port E and F)

Two 8-bit input/output ports. (Port D and G)

         One 16-bit input/output port. (Port C)

One 10-bit output port. (Port A)

One 11-bit output port. (Port B)

 

3.       ARM7TDMI有七种处理器模式,分别位用户模式,FIQIRQ,SVC,中止,未定义,系统。由CPSR[4:0]表示。

 

4.  什么是CAN总线

CAN 全称为Controller Area Network,即控制器局域网,由德国Bosch 公司最先提出,是国际上应用最广泛的现场总线之一。CAN 是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率、高抗电磁干扰性,而且要能够检测出总线的任何错误。当信号传输距离达10Km CAN 仍可提供高达50Kbit/s 的数据传输速率。CAN 具有十分优越的特点:

A 较低的成本与极高的总线利用率;

     B 数据传输距离可长达10Km,传输速率可高达1Mbit/s

     C 可靠的错误处理和检错机制,发送的信息遭到破坏后可自动重发;

D 节点在错误严重的情况下具有自动退出总线的功能;

E 报文不包含源地址或目标地址仅用标志符来指示功能信息和优先级信息;

由于人为、自然、其它外界环境的影响和人们对公交系统的安全可靠性、真实、实时性的追求,使得我们对通信方式,通信设备有了更高的要求,基于CAN总线的网络则成为我们最佳的选择

       Reference tohttp://blog.tom.com/blog/read.php?bloggerid=244891&blogid=39250

 

5. 使用32intunsinged int局部变量最有效率。

 

6. 变量申明时最好把所以相同类型的变量放在一起定义,这样可以优化存储器布局。

 

7. ATPCS(ARM-Thumb Procedure Call Standard)定义了寄存器组中的{R0~R3}作为参数传递和结果返回寄存器。如果参数数目超过四个,则使用对战进行传递。

 

8. ARM结构体系下编程,最好采用递减至0的方法来设置循环条件。原因是累加法比递减法多了一条指令,这是因为当进行一个非0常数笔记时,必须用专门的CMP指令来执行,而当一个变量与0比较时,ARM指令则可直接利用条件执行的特性(NE)来进行判别。

9. I2C(InterIntegrated Circuit)总线

是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。

 

10. SPI: Serial peripheral interface

串行外围接口

一种串行传输方式,三线制,网上可找到其通信协议和用法的

3根线实现数据双向传输

11. IIS: Integrate Interface of Sound

 

12. Endian

       我们一般将endian翻译成"字节序。

简而言之:
Big endian machine: It thinks the first byte it reads is the biggest.
Little endian machine: It thinks the first byte it reads is the littlest.
举个例子,从内存地址0x0000开始有以下数据
 0x0000     0x12
 0x0001     0x34
 0x0002     0xab
 0x0003     0xcd
如果我们去读取一个地址为0x0000的四个字节变量,若字节序为big-endian,则读出
结果为0x1234abcd;若字节序位little-endian,则读出结果为0xcdab3412.
如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为

                big-endian        little-endian
0x0000          0x12              0xcd
0x0001          0x23              0xab
0x0002          0xab              0x34
0x0003          0xcd              0x12
x86
系列CPU都是little-endian的字节序,而motorola系列的CPU采用的是big-endian. 

Reference Tohttp://blog.csdn.net/heezhen/archive/2007/04/08/1556940.aspx

 

13. SIO: Super Input Output

超级输入输出芯片(SIO)一般位于主板左下方或者左上方。主要使用的芯片有WinbondITE,它为主板上的标准IO接口提供控制处理功能。这里所说的“超级”是指它集成了PS2键盘、PS2鼠标、串口COM、并口LPT接口等处理功能,而这些接口都是计算机中的慢速IO设备。它们全部位于主板后部右边。它的主要功能包括负责处理从键盘、鼠标、串行接口等设备传输来的串行数据,将它们转换成为并行数据,同时也负责并行接口、软驱接口数据的传输与处理.

 

14. Bank

Bank (内存库) 在内存行业里,Bank至少有三种意思,所以一定要注意。

a.在SDRAM内存模组上,"bank "表示该内存的物理存储体的数量。(等同于

""/Row

bBank还表示一个SDRAM设备内部的逻辑存储库的数量。(现在通常是4bank)。

c.它还表示DIMM SIMM连接插槽或插槽组,例如bank 1 bank A。这里的BANK是内存插槽的计算单位(也叫内存库),它是电脑系统与内存之间数据总线的基本工作单位。只有插满一个BANK,电脑才可以正常开机。举个例子,奔腾系列的主板上,1168线槽为一个BANK,而272线槽才能构成一个BANK,所以72线内存必须成对上。原因是,168线内存的数据宽度是64位,而72线内存是32位的。主板上的BANK编号从BANK0开始,必须插满BANK0才能开机,BANK1以后的插槽留给日后升级扩充内存用,称做内存扩充槽。

 

15. S3C44B0X中断源

     30个中断源,其中26个是单独的,4个外部中断(EINT4/5/6/7)是逻辑“或”的关系,共用同一个中断源,另外两个UART错误中断(UERROR0/1)也是共用同一个中断控制器。

 

疑问:

a.几个中断源同时请求时,根据优先级,高优先级被响应后,低优先级的还会被响应?

答:高优先级被响应,低优先级被抛弃。(lameck

      

b.中断挂起寄存器INTPND,当中断请求产生时,相应的位会被设置为1,该寄存器为只读寄存器,所以在中断服务程序中必须加入对I_ISPCF_ISPC1的操作来清除挂起条件。

 

16. 中断编程步骤

       aIO口设置

              G口的工作模式进行设置,G口是个

       b.外部中断触发模式设置

       c.中断寄存器设置

       d.主程序的编写

       e.中断处理程序编写

 

17. SPUCR

特使的上拉电阻控制寄存器,数据线D[15:0]引脚的上拉电阻能够通过SPUCR寄存器来控制,由于IO端口的特征,在STOP/SL-IDLE模式,数据线上拉电阻可降低功耗。D[31:16]可以通过PUPC寄存器来控制。

 

原创粉丝点击