序
遥想十几年前,开发ARM的人都知道并会用一套经典的工具――ADS,那时的开发是简单的,大家交互起来也顺利得多,当然也不像今天有这么多人使用ARM的处理器。自从ARM放弃了ADS品牌,转而开发新的工具套件,工程师能用的调试工具突然多了起来。我们经常能在书店看到十几种的工具书籍,进而带来的问题是我们的学习过程复杂了,开发经验不容易复用,选取一个好工具也变得雾里看花一般。
究其原因,ARM处理器以及大家用它设计的系统指数级地复杂化,调试验证的要求和难度上升到了前所未有的高度,我们需要在简单易用和功能强大间追求一个平衡。乍一看这两者是矛盾的,但这恰恰是我们今天所有电子设计的根本目的。作为处理器设计厂家,有相当的进阶级功能只有在ARM自己的工具中才得到支持。这很好理解,其他的工具厂家难以了解深入的处理器设计,既然不能把功能做到极致,那么就追求简单吧。这就造成了这么多年来ARM工具和其他工具在功能和体验上的明显差别。我们能说得清楚哪一种更好吗?
我们的困惑在于ARM一直没有一本关于自己工具的权威书籍问世,以帮助广大用户提高学习和使用效率。这样的混沌状态终于有了改变。ARM公司重新梳理自己的工具理念,用DS系列工具代替了并不成功的RVDS系列,在保持功能强大的前提下,尽可能地增强自动识别和配置,达到简单易用的目的。同时,本书的出现也使我们倍感欣慰。这是一本学习的教材,这是一本用户手册,这是一种经验分享,这也是传教布道的经文。
愿亲爱的读者们能通过本书获取想要的知识技能,把自己的创新用于九天九地,也衷心感谢本书的作者们。
ARM中国区FAE总监刘澍
前言
ARM DS-5推向市场已经有些年头了,这是一款功能强大、基于ARM处理器的嵌入式开发工具,可以帮助开发人员完成从代码管理和编译、底层的bootloader和驱动代码的调试到Linux/Android上层应用程序的调试和整个系统性能优化等一系列工作。
将DS-5的使用编写成书,既属偶然,又有其必然。因为在我对客户进行现场技术支持时,发现还有不少朋友对DS-5的使用和其功能特色比较陌生,这促使我去将DS-5的使用整理成文档,加上市场上介绍DS-5的书籍非常少,并且ARM内部还没有出过类似的书籍,于是我开始按照写书的要求编写相关的材料。
本书的内容材料大部分来源于ARM官方发布的英文文档,同时加入了现场支持时的经验总结、碰到的问题及其解决方案,真正做到理论和实践相配合。
本书全面介绍了DS-5的功能和使用,特别适合从事底层驱动、Linux和Android嵌入式开发的人员。全书共11章,分为以下4个部分:
(1)第1~4章是DS-5的使用入门篇,系统介绍了DS-5的基本功能和硬件JTAG调试器DSTREAM的安装和使用,介绍了在Windows和Linux环境下许可证的申请和管理,最后给出一个DS-5的快速使用实例。
(2)第5~7章是DS-5的使用进阶篇,进一步阐述了DS-5使用方法,分别介绍如何完成对裸机系统、Linux内核和驱动程序、Linux/Android应用程序的调试和跟踪,重点介绍如何控制程序的运行和调试嵌入式系统,基本覆盖开发过程中常见的调试问题和技术手段,因此希望开发者能理解和掌握这部分内容,在使用DS-5调试的过程中随时查阅。
(3)第8章和第9章是DS-5的高级篇,详细介绍了ARM CoreSight调试系统,包括CoreSight系统中各个组件的功能和典型的CoreSight系统设计,介绍了DS-5自带的PCE工具(平台配置编辑器)和探测CoreSight系统,并生成适合DS-5调试使用的数据库,对数据库中的主要文件进行了详细阐述。
(4)第10章和第11章是实战篇,将前面各章介绍的技术在实际的ARM开发板上进行实战演练,内容包括U-Boot、Linux内核和设备驱动、Linux应用程序的调试、Streamline的使用方法、对整个系统的性能剖析和DS-5使用过程中常见的问题及解决办法。
在本书编写过程中,单位的领导和同事们给予我恒久的关心、鼓励和支持;Paul Black给予我深层次的培训;深圳米尔科技有限公司鼎力相助,完成第10章和第11章的写作;我的妻子和女儿给予我鼓励和支持,在此一并表示感谢。
由于编写时间紧迫,加之作者水平有限,书中难免有疏漏和错误之处,敬请广大读者评批指正。
刘照华于ARM上海
2015年9月