嵌入式系统讲义:S3C2410X计数器频率计算

需积分: 0 0 下载量 51 浏览量 更新于2024-08-17 收藏 1.46MB PPT 举报
"嵌入式系统讲义 - S3C2410X系统结构 - 周国运 - 2007.3" 本文主要介绍了嵌入式系统中的相关知识,特别是关于ARM处理器和其指令系统的应用。在讨论到计数器频率时,提到了以下关键知识点: 1. **计数器频率计算**: 当计数器取值为60时,计数器后的频率可以通过以下公式计算: \[ \text{频率} = \frac{\text{主频率}}{\text{计数值}} \] 例如,若主频率为125,000Hz,计数值为60,则计数器后的频率为: \[ 2083.3Hz = \frac{125,000Hz}{60} \] 2. **方波频率**: 方波频率通常为计数器频率的一半,因为计数器在每个周期翻转一次。因此,当计数器频率为2083.3Hz时,产生的方波频率为: \[ 1042Hz = \frac{2083.3Hz}{2} \] 这表明无法生成精确的1000Hz方波。 3. **ARM指令系统**: ARM指令中的第二操作数(Operand2)可以有三种形式: - 寄存器 - 寄存器移位 - 8位位图立即数 4. **ARM的变址寻址方式**: - 基地址可以是通用寄存器R0到R15中的任意一个。 - 偏移地址可以是12位立即数、寄存器或寄存器移位。 - 总地址的计算方法包括: - 前索引偏移:先使用偏移,后传送数据,可能不修改基地址。 - 后索引偏移:先传送数据,然后修改基地址。 - 相对偏移:寻址地址基于PC(程序计数器),在当前指令的±4KB范围内。 5. **特定指令的应用**: 变址寻址通常应用于以下四条指令: - LDR(加载寄存器) - STR(存储寄存器) - LDM(加载多个寄存器) - STM(存储多个寄存器) 6. **编程实例**: 实例1展示了如何转换存储器中ASCII码的小写字母为大写字母。程序从0x400000地址开始遍历100个单元,通过比较和操作ASCII码实现转换。 实例2则演示了如何比较存储器中两个无符号字数据的大小,并将结果存储在0x400008地址。通过LDR指令加载数据,CMP指令进行比较,然后根据比较结果设置R1寄存器的值。 以上知识内容涵盖了嵌入式系统中ARM处理器的基本操作,包括指令系统、寻址方式以及简单的编程实践,对于理解和设计嵌入式系统至关重要。