单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ARM系列系统程序开发要点(共45页pdf下载)

[复制链接]
跳转到指定楼层
楼主
ARM®系列微处理器作为全球16/32 位 RISC 处理器市场的领先者, 在许多领域内得到了成功的应用。近年来,ARM 在国内的应用也得到了飞速的发展,越来越多的公司和工程师在基于 ARM 的平台上面开发自己的产品。

  与传统的 4/8位单片机相比,ARM 的性能和处理能力当然是遥遥领先的,但与之相应,ARM 的系统设计复杂度和难度,较之传统的设计方法也大大提升了。本文旨在通过讨论系统程序设计中的几个基本方面,来说明基于 ARM 的嵌入式系统程序开发的一些特点,并提出和解决了一些常见的问题。

  文章分成几个相对独立的章节刊载。第一部分讨论基于 ARM 的嵌入式程序开发和移植过程中的一些基本概念。

1.嵌入式程序开发过程

  不同于通用计算机和工作站上的软件开发工程,一个嵌入式程序的开发过程具有很多特点和不确定性。其中最重要的一点是软件跟硬件的紧密耦合特性。


  这是两类简化的嵌入式系统层次结构图。由于嵌入式系统的灵活性和多样性,上面图中各个层次之间缺乏统一的标准,几乎每一个独立的系统都不一样。这样就给上层的软件设计人员带来了极大地困难。第一,在软件设计过程中过多地考虑硬件,给开发和调试都带来了很多不便;第二,如果所有的软件工作都需要在硬件平台就绪之后进行,自然就延长了整个的系统开发周期。这些都是应该从方法上加以改进和避免的问题。

  为了解决这个问题, 工程和设计人员提出了许多对策。 首先在应用与驱动 (或API)这一层接口,可以设计成相对统一的一些接口函数,这对于具体的某一个开发平台或在某个公司内部,是完全做得到的。这样一来,就大大提高了应用层软件设计的标准化程度,方便了应用程序在跨平台之间的复用和移植。

  对于驱动/硬件抽象这一层,因为直接驱动硬件,其标准化变得非常困难甚至不太可能。但是为了简化程序的调试和缩短开发周期,我们可以在特定的 EDA工具环境下面进行开发,通过后再进行移植到硬件平台的工作。这样既可以保证程序逻辑设计的正确性,同时使得软件开发可平行甚至超前于硬件开发进程。

  我们把脱离于硬件的嵌入式软件开发阶段称之为“PC 软件”的开发,可以用下面的图来示意一个嵌入式系统程序的开发过程。




  在“PC 软件”开发阶段,可以用软件仿真,即指令集模拟的方法,来对用户程序进行验证。在 ARM 公司的开发工具中,ADS®内嵌的 ARMulator 和RealView®  开发工具中的 ISS,都提供了这项功能。在模拟环境下,用户可以设置 ARM 处理器的型号、时钟频率等,同时还可以配置存储器访问接口的时序参数。程序在模拟环境下运行,不但能够进行程序的运行流程和逻辑测试,还能够统计系统运行的时钟周期数、 存储器访问周期数、 处理器运行时的流水线状态 (有效周期、等待周期、连续和非连续访问周期)等信息。这些宝贵的信息是在硬件调试阶段都无法取得的,对于程序的性能评估非常有价值。

  为了更加完整和真实地模拟一个目标系统,ARMulator 和 ISS 还提供了一个开放的 API 编程环境。用户可以用标准 C 来描述各种各样的硬件模块,连同工具提供的内核模块一起,组成一个完整的“软”硬件环境。在这个环境下面开发的软件,可以更大程度地接近最终的目标。

  利用这种先进的 EDA 工具环境,极大地方便了程序开发人员进行嵌入式开发的工作。当完成一个“PC 软件”的开发之后,只要进行正确的移植,一个真正的嵌入式软件就开发成功了。 而移植过程是相对比较容易形成一套规范的流程的,其中三个最重要的方面是:

完整的pdf格式文档51黑下载地址(共45页):
基于ARM的嵌入式系统程序开发要点.zip (484.74 KB, 下载次数: 12)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ly830102624 发表于 2018-11-29 10:09 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

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