ARM应用技术是抛去操作系统,面向ARM自身的应用技术,总的来讲可以分为三部分:ARM体系结构应用、ARM最小系统应用和ARM外设(外围接口)应用。ARM体系结构应用包含比较多的模块,下面逐个解析。

    ARM体系结构-MMU应用,MMU负责逻辑地址和虚拟地址到物理地址的映射,并提供地址空间访问的授权,CPU的地址操作,并不是直接的操作物理地址,而是通过MMU转接。如CPU操作一个寄存器,它操作的是逻辑地址,逻辑地址通过MMU操作实际的寄存器物理地址,就是说假设这个寄存器物理地址是0x80000000,那么逻辑地址是0xFF000000的话,CPU操作0xFF000000就是操作寄存器本身,添加这种机制就可以定制地址空间的权限,对某些地址空间进行保护或者监控对非法地址空间的操作。在多进程系统中,通过MMU可实现内存地址空间的复用,这就是虚拟内存的概念,在PC机中你可能有么一这个概念,PC机的虚拟内存比物理内存要大很多,在这样的机制下,1号进程和2号进程就可以用不同的虚拟地址空间存放可执行程序区,而在1号进程(Flashget)和2号进程(TTplayer)实际执行的过程中,它们的可执行程序,是可以通过MMU映射到相同的物理内存空间,这样就可以节省内存,并且通过页的管理模式可以执行比内存本身还要大的程序,和PC机一样,ARM的MMU同样的功能。这里有三个概念物理地址、逻辑地址和虚拟地址,它们是通过MMU相互转换的。

    ARM体系结构-APM应用电源管理是ARM的重要组成部分,其实不止ARM,其它的处理器应用(包括x86应用)都在讲究绿色概念,节省电能是绿色的主题之一;另外,手持设备中应用的ARM讲究续电能力,如待机时间多长,连续通话时间多长,连续播放视频多少小时,连续播放歌曲多少小时,这些都和电源管理有关系。电源管理是个大的概念,需要硬件和软件(包括驱动、系统和应用)的配合,ARM体系结构内部的电源管理只是其中的一部分,在体系结构内部的电源管理包括CPU的管理和模块的管理,CPU的管理就是常说的休眠(Sleep)、待机(Idle)、深度休眠(Deep Sleep)、唤醒(Normal)等状态的切换,每种状态管理的策略不一样,总的来讲就是对CPU频率(关断、频变)、SDRAM刷新时钟、模块时钟源、CPU电压等的综合管理;模块的管理就是接口模块的电源和时钟源的管理,比如当前不使用LCD接口就可以把LCD接口clock源切断或者把LCD接口模块的电源Power Off ;其它不用的接口或者当前不用的接口都可以用这种方法来做电源管理。

    ARM体系结构-PLL应用,ARM有丰富的接口,不同的接口需要的数据速率标准不一样,导致需要的时钟源不一样,另外钟振或晶体提供的时钟频率也有成本和精度的问题,外部过高时钟源PCB裸露走线也会导致EMI(电磁辐射)/EMC(电磁兼容性)问题,所以就需要PLL模块。PLL有(整数)倍频功能,可以提供高频的时钟,PLL有变频功能,可以提供非整数倍的升频功能,也可以提供非整数倍的降频功能,当然也能提供整数倍的分频功能。PLL就是用来做这些事情。(数字电路每个模块要工作必须有一个Clock输入)

    ARM体系结构-WatchDog应用,很多ARM处理都提供内部WatchDog,内部WatchDog通常称为软件看门狗,可以用来监控软件的运行和接口模块的数据接收,如果软件运行有问题就重起系统(硬件),但通常这种软件看门狗是有缺陷的,如果硬件挂死,特别是内部WatchDog(寄存器配置失效)挂死,是没办法做到重起系统(硬件)的。所以在做WatchDog设计时不推荐使用内部WatchDog,而是采用外扩硬件看门狗,当然外扩硬件看门狗也需要编写程序(通常使用GPIO),并且需要良好的设计(需要设计成对硬件的监控能力,通常检测的是一个信号,选择合适的检测的信号要看你的设计硬件平台),如过设计没能有效的检测合适的信号,那同样和使用ARM内部WatchDog一样没有太大差异,不能做到硬件挂死情况下的系统重起。

(作者 冯青华 信庭嵌入式工作室-主管 Blog:http://blog.csdn.net/fqheda )

<转载请注名来路>

信庭嵌入式工作室-ARM应用技术之体系结构应用(中)相关推荐

  1. 32位ARM嵌入式处理器的调试技术

    32位ARM嵌入式处理器的调试技术 https://blog.csdn.net/bekars/article/details/611072 摘要:针对32位ARM处理器开发过程中调试技术的研究,分析了 ...

  2. 【嵌入式】ARM技术博客汇总

    00. 目录 文章目录 00. 目录 01. 开发环境 02. ARM汇编 03. ARM裸板 04. 内核驱动 05. 项目实践 06. 问题专区 07. 参考链接 08. 附录 01. 开发环境 ...

  3. 嵌入式linux实时化技术,嵌入式Linux实时化技术

    引言 Linux支持PowerPC.MIPS.ARM.DSP等多种嵌入式处理器,逐渐被用于多种关键性场合.其中实时多媒体处理.工业控制.汽车电子等特定应用对Linux提出了强实时性需求.Linux提供 ...

  4. 嵌入式MODEM通迅技术

    摘要: 现今,市面上生产的各种嵌入式Modem可通过公众电话交换网络(PSTN)实现数据的传输功能,包括标准的串行和并行的接口,具有同步和异步的通信数据传输格式,支持多种Modem标准协议--V.92 ...

  5. 嵌入式知识-ARM裸机-学习笔记(9):SD卡启动详解(S5PV210)

    嵌入式知识-ARM裸机-学习笔记(9):SD卡启动详解(S5PV210) 一.SD卡介绍 1. SD卡背景知识和特点 SD卡.MMC卡.MicroSD.TF卡:这些卡其实内部就是Flash存储颗粒,比 ...

  6. 嵌入式典型ARM处理器介绍以及分类

    笔者电子信息专业硕士毕业,获得过多次电子设计大赛.大学生智能车.数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究.对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验,共同 ...

  7. 飞凌嵌入式丨2020年技术干货合集大放送!

    亲爱的飞凌用户们 你们好哇 魔幻的2020即将过去 今年有些特殊,有些不容易 回看射雕处,千里暮云平 想必大家都有成长有收获 感谢你们一路以来的支持 2021即将到来 回顾2020 你是不是又博学了呢 ...

  8. 嵌入式:ARM体系结构详解

    文章目录 指令集与指令集架构 主要计算机指令集架构 PC及服务器领域 嵌入式领域 新生代 ARM体系结构的演变 ARM发展的历程 指令集与指令集架构 指令:就是指挥计算机工作的命令,程序就是一系列按一 ...

  9. 【ARM】ARM接口技术

    0开发工具的使用 1安装keil4 2运行MDK411EXE安装 3选择好要安装的目的位置 4安装完成并运行 5安装JLink驱动 6运行测试例程验证开发板是否OK 1自己做一个例子 1新建一个项目 ...

  10. 嵌入式linux的调试技术

    本章介绍了嵌入式linux的调试技术,例如,设置断点.逐步跟踪代码.输出调试信息等. Printk函数用于打印内核调试信息,运行在内核空间,printf函数运行在用户空间.Printk文件是一个简单的 ...

最新文章

  1. (转)flash的Socket通讯沙箱和安全策略问题
  2. delphi dbgrid 焦点 行号_安庆东进北扩发展超乎想象,谁会成为城市新格局里的人居焦点?...
  3. mysql5.0源码安装_linux小白 mysql5.0源码安装配置
  4. 【小试牛刀】短信验证码(随机数)的生成实现
  5. 关于深度学习,我们4年时间写了一本1400页的全栈手册
  6. RAC-DG 安装总结
  7. fastJson、Jackson对象转json串不使用驼峰方法和json转对象
  8. 聊一聊数学中的基本定理(四)——微积分基本定理
  9. 国内自主研发的游戏引擎一览
  10. html调用rpst 源码_前段播放 流媒体(RTMP,RTSP,HLS)
  11. U盘格式化后容量变小了恢复教程
  12. Python—Pytest+Allure定制报告
  13. 手把手带你可视化分析NBA首轮球队表现及火勇对决前瞻!
  14. 微信端H5页面调用分享接口
  15. 《关于费尔巴哈的提纲》 马克思主义哲学中人的本质
  16. 安卓图像更新学习总结
  17. 大盘点 | 性能最强的目标检测算法
  18. 为什么曾经优秀的老员工被辞退了?
  19. python mlagent 安装
  20. Java Exer0905 玩家1、2互相攻击,直至一方生命值小于零,战斗结束,三局两胜,公布胜方。for循环、while循环、三元运算符、if-else、Scanner

热门文章

  1. 外包公司是做什么的?
  2. PCB学习笔记——原理图编译与检查
  3. 大数据的七大核心具体价值
  4. 打开 .mpp文件的一种方法
  5. 【问题记录】Win10笔记本电脑禁用自带键盘的方法
  6. 二维数组传参,用int指针接收
  7. 【计算机网络】—什么是蜂窝移动网络?
  8. Hello JSP!——指令元素之page篇(最后有疑问求解,感激不尽)
  9. 网页如何设置背景图片
  10. 漫谈程序员(十三)健康程序猿系列之男人晚睡的7大危害