图书前言

  嵌入式系统及其应用是一个庞大的知识体系,笔者在多年的授课过程中,也很难选择一本合适的书作为本科学生的授课教材。结合课堂讲稿和学生的部分毕业设计内容,以及在学生学习过程中经常遇到的问题,笔者整理成本书——《嵌入式Linux系统开发——基于ARM处理器通用平台》,之所以这么命名,是打破了以前ARM9体系或者ARM11体系的框架。Linux操作系统在ARM9之上的处理器均有较好的兼容,读者稍加修改,代码就能应用,所以命名时就回避了某一款处理器的限定。关于嵌入式有太多的内容可以介绍,本书侧重应用,并结合了当前嵌入式的发展和应用。

  嵌入式系统无疑是当前最热门、最有发展前途的IT应用领域之一。嵌入式系统用在某些特定的专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时还对实时响应等要求很高。特别是随着消费家电的智能化,嵌入式更显重要。像我们平时常见的手机、PDA、电子字典、可视电话、数字相机、数字摄像机、机顶盒、高清电视、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式系统。

  嵌入式系统是软硬结合的产品,嵌入式开发主要分为两类。

  一类是无线电相关专业,例如电子工程、通信工程等专业出身的人,他们主要搞硬件设计,有时需要开发一些与硬件关系最密切的最底层软件(例如BootLoader、Board Support Package)、最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂的软件系统往往力不从心(例如嵌入式操作系统原理和复杂的应用软件等)。

  另一类是软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,也完全可以编写BSP和硬件驱动程序。嵌入式硬件设计完成后,各种功能就全靠软件来实现了。嵌入式设备的增值很大程度上取决于嵌入式软件,设备越智能,系统越复杂,软件的作用越关键,这也是目前的趋势。

  目前,国内外的相关人才都很稀缺。一方面,该领域入门门槛较高,不仅要了解较底层的软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须熟悉硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,该领域较新,发展太快,很多软硬件技术出现时间不长或正在出现(例如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人较少。嵌入式人才稀缺,身价自然就高。嵌入式人才稀少的根本原因可能是大多数人无条件接触该领域,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行开发流程的指导。

  与企业计算等应用软件的开发人员不同,嵌入式领域人才的工作强度通常较低,收入却很高。从事企业应用软件的IT人员,这个用户的系统开发完成后,又要去开发下一个用户的系统,并且每个用户的需求和完成时间都必须按客户要求改变,往往疲于奔命,重复劳动。相比而言,开发嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事,所开发的产品通常是通用的,不会因客户的不同而修改。某一型号的产品开发完成后,往往有较长的一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件开发的人员的工作范围相对狭窄,所涉及的专业技术范围比较小(ARM、RTOS、MPEG、802.11等),随着时间的累积,经验也逐渐累积,可“倚老卖老”,寥寥数语的指导就足够让初入道者琢磨半年。如果从事应用软件开发,可能不同的客户的软件开发平台也完全不同,这会使得开发工作也相对更加辛苦。

  嵌入式开发更注重的是练习,嵌入式系统开发设计最难的是入门,嵌入式系统开发涉及知识较多,初学者很难从纷杂的知识中快速上手学习,现在市面上用于嵌入式开发的学习板比比皆是,价格都比较低廉,读者可以买一款相对通用的开发板,按照书中的操作练习,本书将一步一步引导初学者进行嵌入式开发的学习。任何知识的学习都是由浅入深,由感性认识到理性认识,掌握了前几章的学习,相信读者一定能够掌握嵌入式入门开发的基本要领。

  本书主要由冯新宇编写。此外,本书第11~15章由蒋洪波编写。参与编写的还有杨昕宇、刘宇莹、刘琳、史殿发、孟莹等。

  感谢广州碾展公司的技术支持!

  感谢您选择了本书,希望我们的努力对您的工作和学习有所帮助,也希望您把对本书的意见和建议反馈给我们。

  

  作  者  

  2017年4月