ARM7
文章平均质量分 51
Suagr
这个作者很懒,什么都没留下…
展开
-
LPC2103学习之GPIO
不写作业写博客 直接切入正题 LPC2103关于引脚的寄存器有两个PINSEL0与PINSEL1,都是32位宽度。 PINSEL0与PINSEL1寄存器的每两位控制一个引脚的功能,则一个脚最多有4种功能。其中PINSEL0控制着P0.0到P0.15的引脚。PINSEL1控制着P0.16到P0.31的引脚。 PINSEL寄存器的设置只需两个步骤。一找到要设置的引脚。二原创 2011-12-02 22:10:13 · 5737 阅读 · 4 评论 -
ARM架构与体系学习(二)——3级流水线
看到汇编中很多关于程序返回与中断返回时处理地址都很特别,仔细想想原来是流水线作用的效果。所以,决定总结学习下ARM流水线。ARM7处理器采用3级流水线来增加处理器指令流的速度,能提供0.9MIPS/MHz的指令处理速度。PS:MIPS(Million Instruction Per Second)表示每秒多少百万条指令。比如0.9MIPS,表示每秒九十万条指令。MIPS/MHz表示原创 2012-04-18 00:44:07 · 22893 阅读 · 6 评论 -
我终于也碰到volatile这个问题了
以前上ARM课,老师讲到volatile这个关键字时,主要是说他用到更硬件相关的地方。比如我们看到很多关于硬件的头文件的时候,寄存器的定义都是几乎都是volatile与内存地址相结合,因为我们时刻想要的是寄存器的最新值,而volatile这个关键字的作用就是告诉编译器不要对它声明的变量进行优化,每次读取操作都要获得它的最新值。以上就是我在遇到volatile新的问题之前对于volati原创 2012-04-15 21:53:53 · 1438 阅读 · 0 评论 -
对自己学习ARM的一些担忧
学习ARM7和UCOS-II有一段时间了,虽然会进行一些编程,熟悉外设的使用。但是我仍然感觉自己对于ARM的认识很浅显,老师早期给我们说的要熟悉ARM架构与体系,以后换另一款ARM就你能轻手上手,而自己目前能做到的就是编程而已,就拿ZLG那个模版来说,我对它的实现现在都不是很清楚,ARM的启动代码也没有看过明白它到底是干什么的,所以总是感觉有点空空心虚的感觉。所以,我决定还是要熟悉下ARM体系与结原创 2012-04-16 19:06:42 · 1316 阅读 · 0 评论 -
uc/OS-II下ARM7定时器捕获实现红外解码
今天下午的时候,调试努力之下,终于把红外解码弄出来了。其实以前有次比赛的时候就已经用到了红外,只是那次用的是51单片机,用的是外部中断和延时检测脉宽来进行解码,因为51的时钟这些比较简单,所以解码很容易就正确了。但是现在换到了ARM7平台下,由于对它的不是很熟悉,怎么用普通语句实现精确延时对我来说是个难点。最后考虑用两个方案来实现红外的解码。方案一是用外部中断加定时器延时检测脉宽进行解码,但是结果原创 2012-04-16 02:18:29 · 2201 阅读 · 0 评论 -
ADS1.2使用心得贴
个人认为要想学学好软件编程,熟悉IDE等开发环境也是必不可少的,能事半功倍。所以决定以后把使用各种软件中遇到的收获写下来,免得时间久了忘了。心得1:比如今天我在用ADS1.2调试环境时就遇到了个问题,每次DEBUG调试,AXD都无法保存我上次的调试环境,害我每次都要重新添加,我想应该会有什么设置来保存我的调试环境吧,最后搜索发现只要进行如下设置即可达到目的。(1)在AXD调试环境里选择原创 2012-04-15 17:08:24 · 1888 阅读 · 0 评论 -
今天写程序遇到的一些问题
第一个问题是如果我先设置好中断向量,然后再进行相关中断的初始化,则一出来就会莫名其明的跳入中断,尽管我还没有打开中断。最后把中断初始化与中断向量控制设置放在一起,问题解决。第二个问题是,我设定了一个全局变量,在定时器中断里将它由0变为1。奇怪的是在一个判断里,我让这个变量为1就跳出死循环,但是居然调试明明显示全局变量值为1,但仍然跳不出中断。最后在全局变量前面加上volatile关键字,问题解原创 2012-04-14 20:02:04 · 837 阅读 · 0 评论 -
ARM架构与体系学习(三)——ARM处理器状态
ARM7有两套指令系统,分别为ARM指令集和Thumb指令集。ARM指令集为32位长,具有最完整的功能;Thumb指令集为16位长度,能实现ARM指令集的大部分功能。Thumb指令集具有极高的代码密度(平均缩减30%的代码量)。ARM处理器有两个处理器状态与这2套指令集分别对应。以“当前程序状态寄存器CPSR”中的控制位T反映处理器正在操作的状态,即哪种指令集正在执行。T=0时,处原创 2012-04-24 15:35:56 · 1453 阅读 · 0 评论 -
关于ARM堆栈的一些问题
学习ARM寻址方式的时候,里面有种寻址为堆栈寻址。ARM7中的寄存器R13就是作为堆栈指针SP的。堆栈内容的增减,就会影响堆栈指针的移动。这个移动方向与堆栈的生长方向有关。ARM7的有两种堆栈生长方向。1.向上生长 在像堆栈写入数据后,堆栈指针的值变大,也就是向高地址方向生长,这种是递增堆栈。2.向下生长 在像堆栈写入数据后,堆栈指针的值变小,也就是向低地址方向生长,这种是递减原创 2012-04-12 11:18:45 · 5222 阅读 · 1 评论 -
用uc/OS-II实现系统的消息循环
今天,做了uc/OS-II系统的消息循环的实验,写一些收获。先说说消息机制的原理。通过消息循环可以实现基于时间驱动的应用程序,即每一个事件都会产生特定的消息,然后这个消息被发送到某个/某些任务消息队列中,任务读取到消息后作出相应的处理。任务消息队列一般采用FIFO结构,即最先发送的消息任务会最先读取到。用uc/OS实现的系统消息循环感觉类似windows编程的消息机制。系统不断轮询来从原创 2012-03-23 00:33:37 · 1822 阅读 · 0 评论 -
ARM与proteus7.8的联调
我用的软件是KEIL4 MDK3.80和proteus7.8。然后照着网上的有些教程实现,发现行不通,不确定是不是版本的问题,最后自己解决了,把自己的相关设置写在这里,以便以后查阅。其中关于添加仿真驱动还有修改TOOLS文件的方法网上都有。我只是截图我MDK的设置,发现我的就是这里跟别人不太相同。截图1:配置DEBUG选项截图2:配置settings,longgin原创 2012-01-07 22:03:38 · 1412 阅读 · 0 评论 -
综合作业:LPC2103做个PWM音乐播放器
老师已经把ARM7的课给我们上完了,最后布置了四个综合作业让我们做。其中有PWM音乐播放器,电子密码锁,数字钟,PID温控器。我最终决定做音乐播放器,因为电子密码锁和数字钟以前都做过,而PID温控器硬件貌似有点复杂。而音乐播放器则感觉很有趣。先写篇日志在这里,做出来后在这里分享下经验。今天圣诞节,25日,在实验室呆着。做播放器遇到的第一个问题就是如何在FLASH中保存音频文件,网上查资原创 2011-12-24 19:49:02 · 2351 阅读 · 1 评论 -
LPC2103学习之看门狗
晚上的时候,接着学习了LPC2103的看门狗。看门狗的概述:看门狗包括一个4分频的预分频器和一个32位计数器,时钟通过预分频器输入定时器,定时器递减(与其他的定时器有区别哦)。定时器递减的最小值为0XFF,也就是如果你设置一个小于0xFF的值的话,系统装入定时器的也将会是0XFF。所以看门狗的最小间隔为(Tpclk x 4 x256),最大间隔为(Tpclk x 2的32次方 x原创 2011-12-20 21:14:59 · 3101 阅读 · 2 评论 -
LPC2103学习之PLL
很久没来博客了。一直忙考试了,不过一切都结束了,暂时可以继续做自己想做的事情了。今天来实验室继续玩ARM了,学习了2103的PLL部分。总的来说,还是比较简单。当然关于PLL这个硬件的具体实现我还不是很清楚,当初高频没学好喃。。PLL的概述:PLL它本来接收的输入时钟频率范围仅为10MHz~25MHz,然后可以通过一个振荡器(CCO)倍增到范围10MHz~70MHz。倍频器可以是1原创 2011-12-20 19:29:22 · 2346 阅读 · 1 评论 -
LPC2103学习之定时器0和定时器1
这两天学习LPC2103的定时器。开始看前面的寄存器介绍看的有点头晕,一会儿就搞混了。不过当我看到后面用图片描述定时器相关寄存器操作时,一下就明了了。知道应用再看原理后比较明了。 为什么把这两个定时器放到一起,因为它们都是32位的定时器,它们除了外设基地址不同外,其他都相同。说说这两个定时器的特性1.两个32位定时器定时器/计数器各含有一个可编程的32位预分频器;2.计数器或原创 2011-12-06 20:01:35 · 9629 阅读 · 1 评论 -
LPC2103学习之外部中断
今天下午学习了LPC2103的外部中断,相对来说比较简单。只是几个寄存器的操作。 LPC2103有三个外部中断源。分别是外部中断0(EINT0),外部中断1(EINT1),外部中断2(EINT2)。另外LPC2103的10个捕获输入也可以作为外部中断输入,跟外部中断不同之处就是不能将掉电模式下的CPU唤醒。下面的图展示了LPC2103的外部中断系统的结构,看到这个结构,对寄存器的操作一原创 2011-12-04 16:00:50 · 3503 阅读 · 0 评论 -
ARM7与GSM实现的简单的远程控制
最近参加一次校内电子比赛,有个题目就是让做用单片机与GSM的结合实现远程控制,这里的控制是控制两盏220V的灯泡,要求实现单片机的短信的收发。比赛已经完了,这次比赛有学习到不少新东西,写写总结体会(软件方面,因为负责软件部分)。GSM模块选择的是西门子TC35I,网上它的资料比较多。以前有同学买过这个模块,但是直接用GSM模块的话对比赛成绩有影响,所以我们只是买了TC35I和SIM卡插槽,自己原创 2012-06-20 15:50:40 · 2016 阅读 · 2 评论