菜鸟学arm之arm时钟系统与锁相环的学习(基于arm7内核)
- 格式:pdf
- 大小:84.68 KB
- 文档页数:3
ARM学习培训资料(9个doc)6
-- ARM7TDMI(Thumb):这是公司授权用户最多的一项产品,将ARM7指令集同Thumb扩展组合在一起,以减少内存容量和系统成本。
同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。
该产品的典型用途是数字蜂窝电话和硬盘驱动器。
-- Thumb:以16位系统的成本,提供32位RISC 性能,特别注意的是它所需的内存容量非常小
嵌入式ICE调试
由于集成了类似于ICE的CPU内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。
为何选用SAMSUNG S3C44B0进行开发?
目前,ARM7芯片在国内开发的潮流是三星公司的S3C44B0和S3C4510。
这两款芯片各有侧重:前者着力于PDA 应用,芯片内部集成了LCD控制器、SDRAM控制器、2个串行接口控制器、PWM控制器、I2C控制器、IIS控制器、实时时钟、AD转换等丰富的外围控制模块;而S3C4510则是一款针对特定网络应用的CPU,缺少了44B0那么丰富的外围控制模块,但是集成了强大的网络控制模块,能够支持100BASE 的网络接口。
对于一般的用户尤其是初学者来说,S3C44B0无疑是首选,因为丰富的外围接口为系统板集
成各种功能提供了可能,而且,通过外接网络控制芯片,也可以实现各种网络通讯协议。
µC Linux是为没有MMU的
CPU 简化的Linux。
arm处理器的运行原理ARM处理器是一种广泛应用于移动设备、嵌入式系统和低功耗设备的处理器架构。
它的运行原理基于精简指令集计算机(RISC)的设计理念,以提供高效的性能和低功耗消耗。
ARM处理器的运行原理可以分为五个主要方面:指令集、寄存器、流水线、缓存和中断。
ARM处理器采用的是一种精简指令集,即指令的种类相对较少,每条指令的执行时间相对较短。
这使得ARM处理器能够在相同的时钟周期内执行更多的指令,从而提高了处理器的性能。
ARM处理器具有多个寄存器,用于存储和处理数据。
这些寄存器包括通用寄存器、状态寄存器和程序计数器等。
通用寄存器用于存储临时数据和计算结果,状态寄存器用于保存处理器的状态信息,程序计数器用于保存下一条指令的地址。
第三,ARM处理器采用了流水线的执行方式,即将指令的执行过程划分为多个阶段,并同时执行不同指令的不同阶段。
这样可以提高处理器的吞吐量,加快指令的执行速度。
同时,ARM处理器还采用了分支预测和乱序执行等技术,进一步提高了指令的执行效率。
第四,ARM处理器还具有多级缓存结构,用于提高数据的访问速度。
它包括指令缓存和数据缓存,分别用于存储指令和数据。
由于缓存位于处理器内部,访问速度比主存储器快得多。
通过使用缓存,ARM处理器能够减少对主存储器的访问次数,提高数据的读写效率。
ARM处理器还支持中断机制,用于处理外部事件的发生。
当外部事件发生时,处理器会暂停当前的任务,转而处理中断事件。
处理完中断事件后,处理器会返回到之前的任务继续执行。
通过中断机制,ARM处理器能够及时响应和处理外部事件,提高系统的可靠性和稳定性。
ARM处理器的运行原理基于精简指令集计算机的设计理念,通过指令集、寄存器、流水线、缓存和中断等技术,提供高效的性能和低功耗消耗。
这使得ARM处理器成为移动设备、嵌入式系统和低功耗设备的首选处理器架构。
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个问题我一一解答。
我自己在学arm7,不小心在网上看到这篇文章,内容如题,自我感觉他写的不错,因此帖上来供菜鸟们参考,高手就不用看了该文章作者不详,我在此只转载未做任何修改:1.抓住51开发ARM这几个月来我一直都爬在51的问题,自己都有一点笑自己了,用了4个月的时间,来巩固51的原理和程序,还好我自己算是走过来了,自己笨,身边的高才生又看不上51的原理,他们都比较“牛”,说51过时了,你问那个做什么???我比较郁闷!过时吗?我有一点怀疑?他们不愿意说有他们自己的理由,没有人强求,靠自己好了。
我自己个人的观点:51是一个基础,而且还很重要,这是再我看了ARM之后感觉到的。
它可以加速你的ARM学习速度,真得!不相信你试一试好了。
凡是要求一个速度、效率,不要做一些无用功,抓紧身边的每一个一分钟,人是活的,东西(知识、书)是死得,想要做的事情因此就简单了。
2.我在网上看到了一篇很不错的ARM文章,粘贴过来,为了和像我一样在很少有人帮助的情况下,自学ARM 的难兄难弟们。
“ARM怎么入门”。
我不是高手,仍然是菜鸟。
但是回想起自己当时的迷茫,特意写了这篇东西,当作给和我一样的兄弟姐妹的帮助吧。
问这个问题的人多半不是已经工作的工程师,而是和我一样是学生,所以这篇笔记就把看家当成我一样的菜鸟,高手勿怪。
首先声明:本人还没有找工作,事实上处于研究生刚毕业,还没开始找工作的空闲时间,44B0只是兴趣所在,打发时间。
所有看法完全是自己的感受,不代表任何他人。
错了的观点各位帮我纠正。
再次补充:很多朋友看了上面的话就问我为什么研究生毕业了还不找工作:)说是打发时间,其实是因为研究生的时候带了一个项目,申请提前毕业以后项目还有块尾巴,答应导师把项目做完再走:)就这么简单。
男人总点负点责,呵呵以下问题常被问到,我就想到哪说到哪吧。
一首先说说ARM的发展可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。
广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。
ARM7整体框架学习——基于LPC2103(arm7内核)的讲解注:该内容适用于大部分arm7内核的芯片By:小飞胡一般我们学一样东西,都希望对它有个整体的了解,这样心里就比较清楚这个东西有什么、我要学什么,学arm也一样,我们首先要了解下arm的整体框架结构,了解它的资源外设及编程框图,这样才能更好地把握。
本文我将详细的讲解一下arm7的一般结构、硬件外设、功能模块及其作用以及一些入门常识,使你对arm7能有个全面的了解,更好的掌握。
先放个图,这是arm7内核的LPC2103的封装图和方框图正上方是arm内核,左上方是存储部分和高速IO,右上方是系统功能模块和中断控制器,图的下方全是外设。
我们学习时,要学会并能熟练操控各个功能模块,这是最基本的要求,只有这样才能灵活运用各个功能部件以解决实际问题,才能往高层次的处理器应用上靠。
下图是LPC2103的存储器映射,也就是不同存储器对应的逻辑地址。
上边这种类型的地址映射结构属于冯诺依曼结构,也就是统一编址方式,地址和数据不加任何区分地放在存储器中。
还有一种结构叫做哈佛结构,它的数据和程序是分开放的,我们熟悉的51系列单片机就是这种结构。
在arm处理器中,内存单元的大小有3种:字节(8位),半字(16位),字(32位),这个和传统的处理器的概念有所不同。
下边介绍一个概念,大端存储和小端存储:小端和大端是字节寻址存储器字存储的两种方式,根据最低有效字节与相邻较高有效字节相比是存储在较低地址还是较高地址来划分。
小端方式为较低字节存放在较低地址,如图a所示;大端方式则是较低字节存放在较高地址,如图b所示。
因为不同的arm芯片在编程时的存储方式有可能不同,所以使用编程软件时要对大小端进行配置。
以IAR编程软件为例,大小端的设置如图所示:最下边有个选项“Endian mode”,这个就是选择大小端的,下边就是little(小端)和Big(大端),大小端的选择要根据芯片的类型来确定,一般来说选择小端的多些。
arm实训总结ARM实训总结在人工智能和物联网的发展下,嵌入式系统逐渐成为了一个重要的领域。
嵌入式系统是指将计算机硬件和软件嵌入到某个特定的应用中,用于控制和监测特定的设备或系统。
在嵌入式系统中,ARM处理器得到了广泛的应用。
因此,学习ARM处理器的知识和技能成为了嵌入式系统工程师的必备技能之一。
在进行ARM实训时,我们首先需要了解ARM处理器的基本架构和指令集。
ARM处理器采用了精简指令集(RISC)的设计思想,其指令长度为32位,具有丰富的指令集和灵活的编址模式。
在实际应用中,ARM处理器通常采用SoC(System on Chip)的设计,将处理器核心、存储器、外设和接口等功能集成到一个芯片中,从而实现了小型化、低功耗和高性能的特点。
在实际操作中,我们需要使用ARM开发板来进行ARM实训。
常见的ARM开发板有STM32、NXP等。
在进行实际操作前,我们需要配置ARM开发环境。
常见的ARM开发环境有Keil uVision、IAR Embedded Workbench等。
在配置环境后,我们可以编写ARM汇编语言程序,通过编译、链接和烧录等步骤将程序下载到ARM开发板中进行运行。
在进行ARM实训时,我们需要学习和掌握ARM汇编语言的基本语法和指令。
ARM汇编语言具有简洁的语法和丰富的指令集,可以实现各种复杂的功能。
例如,我们可以通过ARM汇编语言实现LED灯的闪烁、蜂鸣器的响声、按键的检测等功能。
在编写ARM 汇编语言程序时,我们需要注意程序的正确性和效率,避免出现死循环、溢出等问题。
在进行ARM实训时,我们还需要学习和掌握ARM中断的相关知识。
ARM处理器支持多种中断类型,包括外部中断、内部中断等。
在实际应用中,我们可以通过中断技术实现按键检测、定时器计数、串口通信等功能。
在编写ARM中断程序时,我们需要注意中断的优先级和处理过程,避免出现中断嵌套、冲突等问题。
在进行ARM实训时,我们还需要学习和掌握ARM外设的驱动程序开发。
Arm电子时钟设计参考文献[1]王勇.嵌入式系统原理与设计[M].杭州:浙江大学大学出版社,2007.[2]耿辉等.S3C44B0X的LCD显示解决方案中国科技论文在线,2007.[3]SAMSUNG公司. S3C44B0X数据手册. ,2006.[4]EL-ARM-830 实验系统的资源介绍,2000.[5]林志琦等.ARM微控制器与液晶屏接口的研究[J].长春大学学报,2010,20(2):71-74.[6]周立功单片机公司. ADS集成开发环境及EasyJTAG仿真器应用,2005.第一章系统设计第一节课题目标及总体方案本课程设计设计一种基于ARM7的嵌入式微处理器S3C44B0X和LCD显示器的电子时钟,实现电子时钟的功能,并在LCD上显示类似的时钟界面;动态显示当前的时间,包括:年、月、日、时、分、秒,时针。
本课程设计主要为软件设计,硬件部分使用EL-ARM-830教学实验箱上的S3C44B0X和LCD模块。
软件部分使用ADS1.2及H-JTAG对源程序进行编译、仿真、调试,下载。
软件设计采用模块化设计方法,分为μC/OS-II系统模块、LCD初始化模块、时钟应用系统模块等,其中,时钟系统应用模块包括时钟计时模块、时钟显示模块等。
各模块之间功能独立,协同完成本课程设计的全部功能。
系统设计框图如图1。
软件件部分时钟应用系统模块时钟计时模块时钟显示模块μC/OS-II系统模块 LCD初始化模块硬件部分S3C44B0X LCD图1 系统设计框图第二节硬件平台简介一、S3C44B0X简介S3C44B0X 微处理器是三星公司研发的基于ARM7TDMI 核的高性能嵌入式处理器,为手持设备和一般类型应用提供了高性价比和高性能的微控制器解决方案。
由于其高性价比以及内嵌了多种接口,在手持设备和消费类电子中得到了广泛的应用。
为了降低成本,S3C44B0X提供了丰富的内置部件,包括:8KB cache、内部SRAM、LCD 控制器、带自动握手协议的2通道UART、4通道DMA、系统管理器(片选逻辑,FP/EDO/SDRAM控制器)、带有PWM功能的5通道定时器,I/O端口,RTC,8通道10位ADC,IIC-BUS接口,IIS-BUS接口,同步SIO接口和PLL倍频器。
ARM7内核的时钟系统与锁相环(PLL)
——基于LPC2103(arm7内核)的讲解
注:该内容适用于大部分arm7内核的芯片
By:小飞胡
Q1906723068
概述:学过51单片机的孩子都知道单片机的时钟频率这个概念,也经常根据频率来做一些定时方面的实验。
是的,51的时钟系统是比较简单的,芯片的时钟频率就等于外部所接晶振的频率,而一个机器周期又等于12个时钟周期,即6拍。
关于51的时钟内容就这么多,关系也很清楚,所以很容易就可以使用。
但对于arm芯片来说,时钟系统是比较复杂的,它有一个专门的时钟管理的部件。
由于arm芯片要求CPU高速工作,但芯片的各个外设又不能速度太快,可见直接把所有部件的时钟同一为单一时钟源显然不合适,有时芯片又要根据不同的工作来改变不同的时钟频率,这就要求芯片内部的时钟是可以认为设定的。
但芯片外接的时钟源或晶振的值一般都是确定的,这怎么解决,下边我要讲的就是这个问题。
我们先来了解一下arm7的晶体振荡器,以LPC系列的为例,其他型号的芯片可以详细查阅相关资料。
晶体振荡器输入端XTAL1可接受1MHz--50MHz占空比为50%的时钟信号,内部振荡电路支持1MHz--30MHz的外部晶体。
如果片内PLL系统或引导装载程序被使用,输入时钟将被限制到10MHz--
25MHz,先看一个图
振荡器输出频率称为Fosc,ARM处理器时钟频率成为cclk.除非使用PLL,否则Fosc和cclk的值相同。
振荡器可以工作在两种模式下:从属模式和振荡模式。
从属模式下,输入时钟信号与一个100pf相连,其幅值不少于200mVrms,X2管脚不连接。
如果选用从属模式,Fosc信号的频率被限制在1MHz--50MHz。
如果器件振荡器工作在振荡模式,Fosc时钟被限制在1MHz--30MHz。
注:以上的一些数值会因不同的型号而不尽相同,具体的数值要根据具体型号的芯片数据手册确定,这里我只是要让你明白其原理与思想。
其实很多事重要的都是想法,只要想法是对的,剩下的就只是去把想法给变为实际行动了,这是比较简单的。