第一章 本书学习方法
为了让读者能够更好地学习和使用本书,本章将介绍本书的学习方法。 本章分为如下几个小节: 1.1 本书学习顺序 1.2 本书参考资料 1.3 本书编写规范 1.4 本书代码规范 1.5 例程资源说明 1.6 学习资料查找
1.1 本书学习顺序 为了让读者更好地学习和使用本书,我们做了以下几点考虑: 1, 坚持循序渐进的思路讲解,从基础到入门,从简单到复杂; 2, 将知识进行分类介绍,简化学习过程; 3, 将板卡硬件资源介绍独立成一个文档《DNK210硬件参考手册.pdf》。 因此,读者在学习本书的时候,我们建议:先通读一遍《DNK210硬件参考手册.pdf》,对板卡的硬件资源有个大概的了解,然后从本书的基础篇开始,再到实验篇,循序渐进,逐一攻克。 对于初学者,更是要按照以上建议的学习路线进行学习,不要跳跃式学习,因为本书中的知识是环环相扣的,如果没有掌握前面的知识,就去学习后面的知识,就会学的非常吃力。 对于已经有了一定单片机基础的读者,就可以跳跃式地学习,学习效率,当然了,若是遇到不懂的知识点,也得查阅前面的知识点进行巩固。
1.2 本书参考资料 本书主要参考的资料有如下两份文档: 《Kendryte 规格书》(https://github.com/kendryte/kendryte-doc-datasheet.git) 《裸机SDK编程指南》(https://github.com/kendryte/kendryte-doc-standalone-programming-guide) 这两份文档均是嘉楠科技针对Kendryte K210提供的文档,可以通过上方链接下载,也可以在我们A盘资料找到,存放路径是:A盘àKendryte K210参考资料à对应手册文件夹。前者是Kendryte K210的技术规格书,该规格书主要向硬件设计者提供Kendryte K210的硬件参数信息,当然,软件开发者也是有必要了解这些参数信息的。 后者是嘉楠科技针对裸机SDK开发项目提供的文档,该文档非常详细地对Kendryte K210内部资源进行介绍和讲解,并提供了丰富的API函数和开发案例。裸机SDK编程指南在我们后续实验中都会用到,是开发者入门裸机SDK开发必看的文档之一,建议大家提前下载保存。 以上提及的两份文档也是读者在学习本书的过程中必不可少的参考资料,读者可以在A盘àKendryte K210参考资料中找到这两份文档。
1.3 本书编写规范 本书通过数十个例程,为读者详细介绍了Kendryte K210的绝大多数功能,涵盖所有外设模块的使用,按照知识结构,本书分为两大篇章:基础篇和实验篇。 基础篇,共五章,主要是一下基础知识介绍,包括芯片、开发方式介绍以及开发环境搭建等,这些章节在结构上没有共性,但相互有关联,即:必须先学习前面的知识,才能更好地学习后面的知识。 实验篇,共三十三章,主要介绍了Kendryte K210在裸机SDK开发环境下如何使用各种功能和应用的开发。这些章节在结构上比较有共性,一般分为四个部分,如下: 1,外设功能介绍 2,硬件设计 3,程序设计 4,运行验证 外设功能介绍,简单介绍具体实验章节使用到的硬件外设和对应的SDK驱动程序库,让读者对实验章节中涉及的软硬件原理和API函数有一个基本的了解,便于后面的程序设计。 硬件设计,包括实验例程实现的功能说明、使用的硬件资源及其原理图。读者可以清晰地了解实验章节中的实验例程要实现什么功能、用到的哪些硬件资源、各个硬件资源之间的连接原理图如何。这样有利于程序的设计与实现。 程序设计,主要介绍本章实验例程中的程序部分,一般包括: 驱动介绍、关键代码分析、 main 函数讲解等三部分。 运行验证,是实验章节中的实践部分,在完成程序设计之后,运行设计的程序,并观察是否能够按照预期的现象进行功能,形成一个闭环。
1.4 本书代码规范 为了提高读者编写代码的质量,本书对代码风格进行了统一,详细的代码规范说明文档,请参考A盘à入门资料à【正点原子】嵌入式单片机 C代码规范与风格.pdf,对于初学者务必好好地学习一下这份文档。 下面总结几个代码编写规范的关键点: 1, 所有函数、变量名称,非特殊情况,一般使用小写字母; 2, 注释使用Doxgen风格,除屏蔽外,一律使用“/* */”的方式进行注释; 3, 代码统一使用4个空格进行缩进; 4, 每两个函数之间,一般有且只有一个空行; 5, 相对独立的程序块之间,使用一个空行隔开; 6, 全局变量的命名一般使用“g_”开头,全局指针变量的命名使用“p_”开头; 7, “if”、“for”、“while”、“do”、“case”、“switch”、“default”等语句单独占一行,并且无论其有多少行执行语句,都加上“{}”。
1.5 例程资源说明 DNK210开发板所附带的配套资料中包含了多达34个基于裸机SDK编程的实验例程,这些例程全部是在VSCode开发环境中编写的,所以推荐开发者们采用VSCode开发工具来进行相关的实验操作。这些例程大部分都是原创,并且有着非常详细的注释,代码风格统一、内容循序渐进,非常适合初学者入门学习。 DNK210开发板的SDK版实验例程如下表所示: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 30_face_detect_with_68landmark | | | | | | | | 32_licenseplate_recognization | | | | |
表1.5.1 DNK210 SDK版例程表 从上表中可以看出,正点原子DNK210开发板的SDK版例程基本上涵盖了裸机SDK开发环境下Kendryte K210能实现的大部分基础功能。 并且按照上表中的实验名称可以看出,实验例程的安排都是循序渐进的,从简单且基础的功能开始,一步一步地深入,从简单到复杂,这样更有利于读者学习和掌握,也正因此,正点原子的DNK210开发板是非常适合初学者的。
1.6 学习资料查找 有关Kendryte K210的相关学习资料,可以尝试从以下两个途径进行获取: 1,嘉楠开发者社区资料下载页面的资料 在嘉楠开发者社区中的资料下载中心中,提供了Kednryte K210的部分相关资料,其网页链接为https://developer.canaan-creative.com/resource,在该链接里提供了Kendrryte K210的软件SDK、硬件设计参考、编程指南、编译工具链和IDE等资料,如下图所示: 图1.6.1 嘉楠开发者社区的资料下载页面 2,Kendryte GitHub主页的资料 Kendryte K210官方的很多软件、文档等资料都在Github上开源,其网页链接为https://github.com/kendryte,在Kendryte的GitHub主页里可以找到许多Kendryte K210相关的软件、文档等相关的开源仓库,如下图所示: 图1.6.2 Kendryte的GitHub主页 |