嵌入式系统讲义:S3C2410X计数器频率计算
需积分: 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处理器的基本操作,包括指令系统、寻址方式以及简单的编程实践,对于理解和设计嵌入式系统至关重要。
2021-11-06 上传
2009-03-13 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-11-18 上传
Pa1nk1LLeR
- 粉丝: 66
- 资源: 2万+
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析