猜你喜欢
面向AWorks框架和接口的C编程(上)

面向AWorks框架和接口的C编程(上)

书籍作者:周立功 ISBN:9787512428713
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:8636
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书作为AWorks的基础教材,重点介绍ZLG 在平台战略中所推出的AWorks开发平台。全书分为3部分:第一部分为简介篇,由第1章组成,主要介绍AWorks的基本概念,包括AWorks诞生的背景、AWorks架构及AWorks的重大意义等;第二部分为硬件篇,包括第2~5章,介绍了一系列支持AWorks的核心板及评估底板;第三部分为软件篇,包括第6~ 15 章,重点介绍AWorks中基础服务的使用方法,主要包括常用设备(LED、按键、数码管等)、常用外设(GPIO、PWM、SPI 等)、时间管理、内存管理、OS 内核、文件系统,以及AWBus lite框架,完整展示了AWorks中驱动的实现原理,并在最后介绍了一系列信号采集模块、接口扩展模块、常用外围器件等模块或器件的使用方法。

本书适合从事嵌入式软件开发、工业控制或工业通信的工程技术人员使用,也可作为大学本科、高职高专电子信息、自动化、机电一体化等专业的教学参考书。


作者简介

周立功:周立功单片机发展有限公司总经理,江西理工大学机电学院自动化教研室教授,硕士生导师,嵌入式系统技术方向学科带头人,中国计算机学会高级会员,中国计算机学会嵌入式系统学会(微机专委)理事,中国单片机学会理事。从1981年开始从事单片机与嵌入式系统的应用、开发与推广。在教学实践过程中,为了培养具有较好工程实践能力"零适应期"的大学生,周立功创立了"3+1"嵌入式系统应用创新教学模式。

编辑推荐

代码的优劣不仅直接决定了软件的质量,还将直接影响软件成本。软件成本是由开发成本和维护成本组成的,而维护成本却远高于开发成本,蛮力开发的现象比比皆是,大量来之不易的资金被无声无息地吞没,造成社会资源的严重浪费。为何不将复杂的技术高度抽象呢? 如果实现了就能做到让专业的人做专业的事,AWorks就是在这样的背景下诞生的。由于其中融入了更多的软件工程技术方法,因此就能做到将程序员彻底从非核心域中解脱出来,专注于核心竞争力。

AWorks制定了统一的接口规范,并对各种MCU 内置的功能部件与外围器件进行了高度的抽象,因此无论你选用的是ARM 还是DSP,只要以高度复用的软件设计原则和只针对接口编程的思想为前提,应用软件就可实现“一次编程、终生使用、跨平台”,显然AWorks所带来的z大价值就是不需要重新发明轮子。


前言

AWorks的哲学思想

一、 思维差异

苹果公司之所以能成为全球最赚钱的公司,关键在于其产品的性能超越了用户的预期,并且具备大量可重用的核心领域知识,使综合成本达到了极致。Yourdon和Constantine在《结构化设计》一书中,将经济学作为软件设计的底层驱动力,认为软件设计应该致力于降低整体成本。人们发现软件的维护成本远远高于它的初始成本,这是因为理解现有代码需要花费时间,且容易出错;而改动代码之后,还要进行测试和部署。

在很多时候,程序员不是在编码,而是在阅读程序。由于阅读程序需要从细节和概念上理解,因此修改程序的投入会远远大于最初编程的投入。基于这样的共识,我们考虑一系列事情时,就要不断地总结使之可以重用,这就是方法论的源起。

通过财务数据分析可知,由于早期决策失误和缺乏科学的软件工程方法,我们开发了一些周期长、技术难度大且回报率极低的产品,不仅软件难以重用,而且扩展和维护难度很大,从而导致开发成本居高不下。

由此可见,从软件开发来看,软件工程与计算机科学是完全不同的两个领域的知识,其主要区别在于人,因为软件开发是以人为中心的过程。如果考虑人的因素,软件工程更接近经济学,而非计算机科学。显然,如果我们不改变思维方式,就很难开发出既好卖成本又低的产品。

二、 利润模型

产品的BOM 成本很低,而毛利又很高,为何很多上市公司的年利润却买不起一套房? 房子到底被谁买走了,这个问题值得我们反思!

成功的企业除了愿景、使命和价值观之外,其核心指标就是利润。作为开发人员,最大的痛苦之一就是很难精准地开发出好卖的产品。因为很多企业都不知道利润是如何来的,所以有必要建立一个利润模型,即“利润=需求-设计”。需求是致力面向AWorks框架和接口的C编程(上)?

于解决“产品如何好卖”的问题,设计是致力于解决“如何降低成本”的问题。代码的优劣不仅直接决定了软件的质量,还将直接影响软件成本。软件成本是由开发成本和维护成本组成的,而维护成本却远高于开发成本,蛮力开发的现象比比皆是,大量来之不易的资金被无声无息地吞没,造成社会资源的严重浪费。为何不将复杂的技术高度抽象呢? 如果实现了就能做到让专业的人做专业的事,AWorks就是在这样的背景下诞生的。由于其中融入了更多的软件工程技术方法,因此就能做到将程序员彻底从非核心域中解脱出来,专注于核心竞争力。

三、 核心域和非核心域

其实一个软件系统封装了若干领域的知识,其中有一个领域的知识代表了系统的核心竞争力,则这个领域就称为“核心域”,而其他领域就称为“非核心域”。虽然更通俗的说法是“业务”和“技术”,但使用“核心域”和“非核心域”更严谨。非核心域就是别人的领域,比如,底层驱动、操作系统和组件,即便你有一些优势,那也是暂时的,竞争对手也能通过其他渠道获得。虽然非核心域的改进是必要的,但不充分,还是要在核心域上深入挖掘,让竞争对手无法轻易从第三方获得。因为只有在核心域上深入挖掘,达到基于核心域的复用,才是获得和保持竞争力的根本手段。

要达到基于核心域的复用,有必要将核心域和非核心域分开考虑。因为过早地将各个领域的知识混杂,会增加不必要的负担,从而导致开发人员腾不出脑力思考核心域中更深刻的问题。由于核心域与非核心域的知识都是独立的,解决问题的规模一旦变大,而人脑的容量和运算能力又有限,就会顾此失彼,故必须分而治之。

四、 共性与差异性

如果没有ARM 公司的IP授权模式,那么在设计MCU 时势必会消耗大量来之不易的财富。虽然ARM 公司的规模相对来说不大,但是毫不影响ARM 成为一个伟大的企业,其为人类做出的贡献是有目共睹的。

尽管如此,如果没有软件的支持,那么硬件就是一坨废铁。由于需求五花八门,人们尽管也做出了巨大的努力,期望最大限度地降低开发成本,但期望的实现有,却遥遥无期,无法做到高度地重用人类通过艰苦努力积累的知识。由于商业利益的驱使,伟大企业的不伟大之处,是企图将客户绑在他们的战车上,让竞争对手绝望,大凡成功的企业无不如此。有没有破解的办法呢? 有,那就是“共性与差异性分析”抽象工具。实际上,不管是基于何种内核的MCU,也不管是哪家公司的OS,其设计原理都是一样的,只是实现方法和实体(硬件和程序)不一样,但只要将其共性抽象为统一接口,差异性用特殊的接口应对即可。

基于此,我们不妨做一个大胆的假设。虽然PCF85063、RX8025T 和DS1302来? AWorks的哲学思想自不同的半导体公司,但其共性都是RTC实时日历时钟芯片,即可高度抽象共用相同的驱动接口,其差异性可用特殊的驱动接口应对。虽然FreeRTOS或μC/OS Ⅱ或sysBIOS、Linux、Windows各不相同,但它们都是OS,多线程、信号量、消息、邮箱、队列等是其特有的共性,显然QT和emWin同样可以高度抽象为GUI框架。也就是说,不管是什么MCU,也不管是否使用操作系统,只要修改相应的头文件,即可复用应用代码。

由此可见,无论选择何种MCU 和OS,只要AWorks支持它,就可以在目标板上实现跨平台运行。因为无论何种OS,它只是AWorks的一个组件,针对不同的OS,AWorks都会提供相应的适配器,那么所有的组件都可以根据需要互换。

由于AWorks制定了统一的接口规范,并对各种MCU 内置的功能部件与外围器件进行了高度的抽象,因此无论你选用的是ARM 还是DSP,只要以高度复用的软件设计原则和只针对接口编程的思想为前提,应用软件就可实现“一次编程、终生使用、跨平台”,显然AWorks所带来的最大价值就是不需要重新发明轮子。

五、 生态系统

如果仅有OS和应用软件框架,要构成生态系统,这是远远不够的。在万物互联的时代,一个完整的IoT 系统,还包括传感器、信号调理电路、算法和接入云端的技术,可以说异常复杂,包罗万象。这不是一个公司拿到需求就可以在几个月之内完成的,需要长时间的大量积累。

ZLG集团(ZLG集团目前包含两个子公司:广州致远电子有限公司和广州周立功单片机科技有限公司,后文将ZLG集团简称为ZLG,两个子公司分别简称为致远电子和周立功单片机)在成立之初就做了长远的布局,并没有将自己定位于芯片代理或设计,也没有将自己定位于仪器制造,更没有将自己定位于方案供应商,而是随着时间的推移和时代的发展,经过艰苦的努力自然而然地成为了“工业互联网生态系统”的领导品牌。这不是刻意为之的,而是通过长期的奋斗顺理成章的结果。

ZLG通过“芯片+AWorks”设计了高附加值的模块、板卡和高端测量仪器,通过有线和无线通信接口接入ZWS(ZLG Web Services) IoT云端处理系统,实现了大数据处理,构成工业互联网生态系统。

ZLG的商业模式既可以销售硬件,也可以销售平台,还可以针对某个特定的行业提供系统服务于终端用户。与此同时,ZLG 将在全国50所大学建立工业互联网生态系统联合实验室,通过产学研的模式培养人才服务于工业界,还将通过天使投资打造ZLG 系,帮助更多的人取得更大的成功,推动“中国制造2025”计划的高速发展。

六、 专家与通才

任何一个组织和系统的成功都离不开专家和通才的鼎力配合与奋斗。这12年面向AWorks框架和接口的C编程(上)?一路走来很不容易,但欣慰的是AWorks生态系统的开发,培养了一些专家和核心骨干人才。我深深地体会到卓越人才的价值,多么高的评价都不为过,所以今后我的主要工作就是寻找和发现卓越人才,为他们提供一个衣食无忧的,能够静下心来创新的平台,大家共同努力改变这世界的某一小部分。欢迎自我推荐或读者向我推荐有理想有抱负的人才,如果你有心就一定能找到我。

七、 丛书简介

这套丛书命名为《嵌入式软件工程方法与实践丛书》,目前已经完成《程序设计与数据结构》《面向AMetal框架和接口的C编程(上)》,后续还将推出《面向AWorks框架和接口的C编程(下)》《面向AMetal框架和接口的LoRa编程》《面向AWorks框架和接口的C++编程》《面向AWorks框架和接口的GUI编程》《面向AWorks框架和接口的CAN 编程》《面向AWorks框架和接口的网络编程》《面向AWorks框架和接口的EtherCAT编程》《嵌入式系统应用设计》等图书,最新动态详见www.zlg.cn(致远电子官网)和www.zlgmcu.com(周立功单片机官网)。

周立功

2018年5月4日


目录

第一部分 简介篇

第1章 AWorks简介 ………………………………………………………………… 2

第二部分 硬件篇

第2章 Cortex M 系列无线核心板 ……………………………………………… 16

第3章 ARM9、DSP、Cortex A系列核心板 ……………………………………… 34

第4章 ARM9、Cortex A无线核心板 …………………………………………… 78

第5章 ARM9、Cortex A工控主板……………………………………………… 114

第三部分 软件篇

第6章 通用设备接口……………………………………………………………… 128

第7章 通用外设接口……………………………………………………………… 165

第8章 时间管理…………………………………………………………………… 241

第9章 内存管理…………………………………………………………………… 262

第10章 实时内核 ………………………………………………………………… 288

第11章 文件系统 ………………………………………………………………… 351

第12章 AWBus lite总线框架 ………………………………………………… 392

第13章 深入理解AWBus lite ………………………………………………… 413

第14章 信号采集及接口扩展模块 ……………………………………………… 471

第15章 常用外围器件 …………………………………………………………… 506

参 考 文 献…………………………………………………………………………… 580


短评

无字天书

2018-12-23 08:56:09

用来学习提高的

2018-11-29 17:53:59

此用户未填写评价内容

2018-11-28 11:52:11