找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3392|回复: 4
打印 上一主题 下一主题
收起左侧

2013年学习ARM单片机总结

[复制链接]
跳转到指定楼层
楼主
ID:59284 发表于 2014-3-2 17:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天是ARM部分的第一讲,重点是从构造、两种工作状态、两种存储模式、七种工作模式方面来开始ARM部分的学习,让我们对于ARM有个大体的认识。

1、ARM处理器的两种工作状态
    ARM状态(32位,字方式指令)和Thumb状态(16位,半字方式指令),在两个工作状态之间转换不影处理器模式和寄存器内容,发生异常是 总是在ARM状态下进行处理。

2、ARM处理器的七种工作模式
    用户、系统、快中断、中断、管理、中止、未定义。除用户模式以外,其他均为特权模式,在特权模式下可以自由切换处理器模式。除了用户、系统模式外,其他五种模式为异常模式,用户、系统模式不能由异常进入。

3、寄存器
    31个通用32位寄存器,6个状态寄存器
    R13作为堆栈指针。在ARM指令集中没有以特殊方式使用R13的指令,但在Thumb指令集中存在使用R13的指令
    R14为链接寄存器。在结构上有两个特殊功能:
                                       1)每种模式下,用于保存子程序返回地址
                                       2)发生异常时,用于保存异常返回地址
   (R14)当发生异常嵌套时,这些异常之间可能会发生冲突
    解决方法:入栈(地址、数据)
              跳转模式
   (R15)避免使用STR和STM指令保存R15,如有需要,应先计算出芯片偏移量

4、异常的进入和退出
    异常的处理 :①保护现场,入栈(讲CPSR寄存器内容存入IRQ标式SPSR寄存器)
                 ②关中断
                 ③用户中断服务子程序
                 ④出栈
                 ⑤开中断(清中断标志)

5、九种寻址方式
    寄存器寻址,立即寻址,寄存器移位寻址,寄存器间接寻址,基址寻址,多寄存器寻址,堆栈寻址,块拷贝 寻址,相对寻址

6、keil的安装和设置
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:59284 发表于 2014-3-2 17:48 | 只看该作者
今天是ARM部分的第二讲,相对于之前一节课的关于ARM的简要介绍来说,今天的重点便是关于ARM指令的讲解和一些实例代码的阅读。
  
ARM指令总体可以分为6类:
①跳转指令
②数据处理指令
③状态寄存器指令
④存储器指令
⑤交换指令
⑥软中断,相对于以前学的C语言的指令来说,ARM指令就显得复杂的多,不仅仅是指令数量比较多,而且同样的指令在添加不同的指令条件以后,对于指令的执行有一定的影响,所以在对于ARM实例程序的阅读的时候,必须注意在各个指令之后所跟的指令条件。

在对ARM指令有一定了解之后,便是KEIL软件的运用,将要阅读的程序添加到KEIL中,对其进行加载和执行,这不仅可以阅读程序熟悉指令,还能在同时让我们了解KEIL软件各种功能的使用,同时还能更为细致的观察程序在运行的过程中各个寄存器的内容的变化,或你指定的地址的内容变化。
回复

使用道具 举报

板凳
ID:59284 发表于 2014-3-2 17:49 | 只看该作者
今天是开始ARM学习的第三天,与之前不同的是今天不在是不停的学习各种指令纸上谈兵,而是真正的拿到MINI2440开发板实物,所以相比之前的学习,今天很是兴奋,但是这股兴奋劲也没能持续多久,在之后的开发板与电脑的连接中,却遇到了各种问题无法解决,让人头痛不已。

除了MINI2440开发板与电脑的连接,还对于用汇编来控制开发板的LED的点亮,主要是要学会查询S3C2440使用手册,同时还要会看MINI2440开发板的原理图,从而找到相对应的引脚。今天一天都过的十分忙碌,一大部分时间都花在了开发板和电脑的连接上,才发现自己知识的储备还是太少,遇到很多问题都不能解决,还得花不少时间去月的相关的书籍来充实自己。
回复

使用道具 举报

地板
ID:59284 发表于 2014-3-2 17:50 | 只看该作者
今天已经是进入ARM学习的第四讲,我们也结束了中断寄存器的学习,进入看门狗部分学习

1.中断产生:①按键②外部电平③定时器,ADC,LCD④系统软中断
2.中断处理流程:
①中断控制器汇集各类外设发出的中断信号
②CPU保存当前程序运行的环境,调用中断服务程序ISR来处理中断
③在ISR中识别哪类中断
④清除中断

3.中断服务子程序原则
①程序尽量短
②中断无入参也无返回值
③实现信号的全局变量

4.流水线的误差需要修正返回地址

5.分散加载
当嵌入式系统在仿真环境下调试完毕,脱机运行时,要将源程序编译连接成可执行代码烧写到ROM中,CPU取指令,数据都要调用ROM,其间得加入等待周期来降低总线速率用以满足访问慢速ROM

6.分散加载注意点
①每个分散加载文件必须包含一个根区,每个根区加载地址等于运行地址
②每个引导区至少包含一个执行区,每个执行区必须包含多个代码段或数据段,一个引导区可以包含多个执行区,但每个执行区只属于一个引导区

7.看门狗定时器工作原理
在看门狗定时器内部存在一个递减计数器,当计数器为0时,便会自动重启控制器,但在其计数器递减至0前,将其递减计数器重新设置一下,那么就不会执行重启操作

8.时间计算
t_watchdog=1/[PCLK(50M)/(Prescaler+1)/Division_factor]
回复

使用道具 举报

5#
ID:60025 发表于 2014-3-26 11:56 来自手机 | 只看该作者
每天更新吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表