书籍详情
嵌入式软件设计入门与进阶:基于Kinetis K60/K64
作者:杨熙,苏勇,刘屹霄 著
出版社:清华大学出版社
出版时间:2016-11-01
ISBN:9787302442073
定价:¥39.00
购买这本书可以去
内容简介
本书以ARM Cortex M4为内核的恩智浦(NXP)Kinetis系列微控制器作为硬件平台,从嵌入式软件工程师的实践角度出发,阐述了基于MCU的嵌入式软件开发中的若干细节问题。与目前的入门类书籍中对片上外设及固件库软件的说明指导相比,书中对实际开发中的具体问题进行了更为详细的分析:从零开始搭建软件开发平台,不仅描述了工程模板的创建,还具体分析了芯片的软硬件启动过程,尤其对链接过程及典型应用进行了详述; 介绍了几种典型的嵌入式系统开发框架,根据具体的应用场景选择程序的组织方式; 在低功耗和DMA的相关章节中介绍了降低产品功耗与优化性能的典型做法及思路; 而作为运行在单片机上的命令行系统、CMSISDSP运算库及git版本管理系统,都是软件工程人员常用的功能调试与代码维护的常用工具,对这些内容也进行了介绍。本书可作为通信工程、电子信息工程、计算机、微电子等专业相关课程的教材,也可供具有专业背景并有一定C语言及嵌入式开发基础的在校大学生、研究生以及对嵌入式技术感兴趣的读者参考。
作者简介
杨熙,嵌入式应用工程师,现就职于恩智浦半导体公司。 一位电子技术及计算机技术的爱好者,利用业余时间学习了大量电子技术及计算机相关知识,曾开设超核电子嵌入式学习论坛 。苏勇,嵌入式软件工程师,现就职于恩智浦半导体公司,主要进行固件库软件的开发。从读研期间参加“飞思卡尔大学计划”项目与Kinetis系列单片机结缘,参与了大量“飞思卡尔”单片机的开发及推广,曾参加过多本教材的编写写工作。同时也是一名电子发烧友,常年混迹于各大电子论坛,喜欢自己DIY电子产品并乐于分享。【媒体评论】评论【目录】目录第1章Kinetis平台概述1.1ARMCortex系列简介1.1.1ARM CortexA1.1.2ARM CortexR1.1.3ARM CortexM1.2恩智浦(NXP)Kinetis系列MCU简介1.2.1Kinetis产品家族介绍1.2.2Kinetis系列芯片的命名规则及选型1.3开发平台硬件电路分析1.3.1MCU1.3.2复位1.3.3时钟1.3.4调试接口1.3.5LED1.3.6串口1.3.7SPI Flash1.4软件环境搭建1.4.1MDK安装下载1.4.2串口驱动1.4.3Jlink驱动安装1.4.4下载本书的示例代码1.5编译实例HelloWorld工程1.6新建工程1.7本章小结第2章从零开始2.1样例程序2.2芯片上电2.3启动软件系统2.3.1分配堆和栈的空间2.3.2中断向量表2.3.3 Flash配置选项2.3.4复位中断入口到用户main函数2.4分散加载文件2.5本章小结嵌入式软件设计入门与进阶——基于Kinetis K60/K64第3章链接命令文件3.1命令方式存在的链接配置参数3.2创建sct文件模板3.3SCF应用——直接在RAM中调试程序3.4SCF应用——将程序复制到RAM中执行3.5本章小结第4章嵌入式系统软件的典型开发框架4.1概述4.2裸机嵌入式系统的组成4.3典型的裸机软件系统实现框架4.3.1基本的超循环结构4.3.2使用中断的前后台结构4.3.3完全依赖中断的事件驱动系统4.3.4状态机驱动系统4.4本章小结第5章低功耗应用设计5.1概述5.2K64中的低功耗模式介绍5.3功耗状态机模型的运作5.3.1进入STOP模式操作序列5.3.2退出STOP模式操作序列5.3.3中断进入STOP模式5.4低功耗所涉及的模块详解5.4.1ARM核的系统控制寄存器5.4.2系统模式控制器5.4.3低功耗模式下的频率限制5.4.4低漏唤醒单元5.5低功耗应用开发典型模式5.6K64低功耗编程心得5.7本章小结第6章DMA的基本概念6.1DMA的基本概念6.2DMA的工作原理6.3K64的DMA介绍6.3.1TCD6.3.2主循环和子循环6.3.3eDMA通道请求使能开关6.3.4DMA的触发源6.3.5DMA传输完成的判断6.3.6关于SMOD和DMOD周期性地址传输6.3.7关于DREQ位6.4使用DMA实现内存间搬运的实例6.4.1DMA TCD的配置6.4.2等待DMA传输完成6.4.3实验效果6.5本章小结第7章DMA在串行通信总线中的应用7.1通过DMA来进行串口数据收发7.1.1DMA触发条件的确定7.1.2DMA TCD的配置7.2使用DMA进行SPI通信7.2.1SPI通信的一般模型7.2.2DMA触发条件的确定7.2.3DMA TCD的配置7.3本章小结第8章DMA实现ADC扫描触发链8.1从应用案例开始8.1.1明确需求8.1.2围绕ADC的软触发特性设计触发链8.2触发链的设计与实现8.2.1DMA0>ADC0: 实现DMA0自动搬运命令字触发ADC转换8.2.2ADC0>DMA1: 实现ADC转换完成后触发DMA1自动搬运转换结果8.2.3PIT0>DMA0: 实现PIT0定期触发DMA0控制转换的节奏8.2.4见缝插针,自定义更加丰富的操作接口8.3本章小结第9章使用命令行来帮助开发9.1概述9.2Shell的引入9.2.1单片机中的Shell9.2.2单片机Shell的输入和输出9.3简单的Shell软件设计9.3.1构建Shell命令结构体9.3.2获取输入命令9.3.3解析命令9.3.4调用对应的函数并返回结果9.4应用实例9.5本章小结第10章使用CMSISDSP数学运算库10.1什么是数字信号处理10.2浮点运算与定点运算10.3CMSISDSP简介10.4CMSISDSP初探10.4.1DSP库的分类10.4.2使用CMSISDSP库10.5基础数学函数10.5.1向量绝对值运算10.5.2向量加法运算10.5.3向量点积10.5.4向量(元素)乘积10.5.5逆向量(反向量)10.5.6向量平移10.5.7向量扩围10.6快速功能函数10.6.1快速余弦函数(Cosine)10.6.2快速正弦函数(Sine)10.6.3快速平方根(Square Root)10.7本章小结第11章专业的软件版本控制系统——git11.1git的诞生11.1.1git的诞生11.1.2git的核心——数据库11.1.3远程数据库和本地数据库11.2git入门笔记11.2.1下载安装git11.2.2初始化代码仓库11.2.3添加文件并提交修改11.2.4增删改查git仓库中的文件11.2.5退回到某一个commit11.2.6使用远程仓库11.2.7克隆远程库11.3本章小结后记参考文献
目录
第1章Kinetis平台概述
1.1ARM Cortex系列简介
1.1.1ARM Cortex A
1.1.2ARM Cortex R
1.1.3ARM Cortex M
1.2恩智浦(NXP)Kinetis系列MCU简介
1.2.1Kinetis产品家族介绍
1.2.2Kinetis系列芯片的命名规则及选型
1.3开发平台硬件电路分析
1.3.1MCU
1.3.2复位
1.3.3时钟
1.3.4调试接口
1.3.5LED
1.3.6串口
1.3.7SPI Flash
1.4软件环境搭建
1.4.1MDK安装下载
1.4.2串口驱动
1.4.3Jlink驱动安装
1.4.4下载本书的示例代码
1.5编译实例HelloWorld工程
1.6新建工程
1.7本章小结
第2章从零开始
2.1样例程序
2.2芯片上电
2.3启动软件系统
2.3.1分配堆和栈的空间
2.3.2中断向量表
2.3.3 Flash配置选项
2.3.4复位中断入口到用户main函数
2.4分散加载文件
2.5本章小结
嵌入式软件设计入门与进阶——基于Kinetis K60/K64
第3章链接命令文件
3.1命令方式存在的链接配置参数
3.2创建sct文件模板
3.3SCF应用——直接在RAM中调试程序
3.4SCF应用——将程序复制到RAM中执行
3.5本章小结
第4章嵌入式系统软件的典型开发框架
4.1概述
4.2裸机嵌入式系统的组成
4.3典型的裸机软件系统实现框架
4.3.1基本的超循环结构
4.3.2使用中断的前后台结构
4.3.3完全依赖中断的事件驱动系统
4.3.4状态机驱动系统
4.4本章小结
第5章低功耗应用设计
5.1概述
5.2K64中的低功耗模式介绍
5.3功耗状态机模型的运作
5.3.1进入STOP模式操作序列
5.3.2退出STOP模式操作序列
5.3.3中断进入STOP模式
5.4低功耗所涉及的模块详解
5.4.1ARM核的系统控制寄存器
5.4.2系统模式控制器
5.4.3低功耗模式下的频率限制
5.4.4低漏唤醒单元
5.5低功耗应用开发典型模式
5.6K64低功耗编程心得
5.7本章小结
第6章DMA的基本概念
6.1DMA的基本概念
6.2DMA的工作原理
6.3K64的DMA介绍
6.3.1TCD
6.3.2主循环和子循环
6.3.3eDMA通道请求使能开关
6.3.4DMA的触发源
6.3.5DMA传输完成的判断
6.3.6关于SMOD和DMOD周期性地址传输
6.3.7关于DREQ位
6.4使用DMA实现内存间搬运的实例
6.4.1DMA TCD的配置
6.4.2等待DMA传输完成
6.4.3实验效果
6.5本章小结
第7章DMA在串行通信总线中的应用
7.1通过DMA来进行串口数据收发
7.1.1DMA触发条件的确定
7.1.2DMA TCD的配置
7.2使用DMA进行SPI通信
7.2.1SPI通信的一般模型
7.2.2DMA触发条件的确定
7.2.3DMA TCD的配置
7.3本章小结
第8章DMA实现ADC扫描触发链
8.1从应用案例开始
8.1.1明确需求
8.1.2围绕ADC的软触发特性设计触发链
8.2触发链的设计与实现
8.2.1DMA0 >ADC0: 实现DMA0自动搬运命令字触发ADC转换
8.2.2ADC0 >DMA1: 实现ADC转换完成后触发DMA1自动搬运
转换结果
8.2.3PIT0 >DMA0: 实现PIT0定期触发DMA0控制转换的节奏
8.2.4见缝插针,自定义更加丰富的操作接口
8.3本章小结
第9章使用命令行来帮助开发
9.1概述
9.2Shell的引入
9.2.1单片机中的Shell
9.2.2单片机Shell的输入和输出
9.3简单的Shell软件设计
9.3.1构建Shell命令结构体
9.3.2获取输入命令
9.3.3解析命令
9.3.4调用对应的函数并返回结果
9.4应用实例
9.5本章小结
第10章使用CMSIS DSP数学运算库
10.1什么是数字信号处理
10.2浮点运算与定点运算
10.3CMSIS DSP简介
10.4CMSIS DSP初探
10.4.1DSP库的分类
10.4.2使用CMSIS DSP库
10.5基础数学函数
10.5.1向量绝对值运算
10.5.2向量加法运算
10.5.3向量点积
10.5.4向量(元素)乘积
10.5.5逆向量(反向量)
10.5.6向量平移
10.5.7向量扩围
10.6快速功能函数
10.6.1快速余弦函数(Cosine)
10.6.2快速正弦函数(Sine)
10.6.3快速平方根(Square Root)
10.7本章小结
第11章专业的软件版本控制系统——git
11.1git的诞生
11.1.1git的诞生
11.1.2git的核心——数据库
11.1.3远程数据库和本地数据库
11.2git入门笔记
11.2.1下载安装git
11.2.2初始化代码仓库
11.2.3添加文件并提交修改
11.2.4增删改查git仓库中的文件
11.2.5退回到某一个commit
11.2.6使用远程仓库
11.2.7克隆远程库
11.3本章小结
后记
参考文献
1.1ARM Cortex系列简介
1.1.1ARM Cortex A
1.1.2ARM Cortex R
1.1.3ARM Cortex M
1.2恩智浦(NXP)Kinetis系列MCU简介
1.2.1Kinetis产品家族介绍
1.2.2Kinetis系列芯片的命名规则及选型
1.3开发平台硬件电路分析
1.3.1MCU
1.3.2复位
1.3.3时钟
1.3.4调试接口
1.3.5LED
1.3.6串口
1.3.7SPI Flash
1.4软件环境搭建
1.4.1MDK安装下载
1.4.2串口驱动
1.4.3Jlink驱动安装
1.4.4下载本书的示例代码
1.5编译实例HelloWorld工程
1.6新建工程
1.7本章小结
第2章从零开始
2.1样例程序
2.2芯片上电
2.3启动软件系统
2.3.1分配堆和栈的空间
2.3.2中断向量表
2.3.3 Flash配置选项
2.3.4复位中断入口到用户main函数
2.4分散加载文件
2.5本章小结
嵌入式软件设计入门与进阶——基于Kinetis K60/K64
第3章链接命令文件
3.1命令方式存在的链接配置参数
3.2创建sct文件模板
3.3SCF应用——直接在RAM中调试程序
3.4SCF应用——将程序复制到RAM中执行
3.5本章小结
第4章嵌入式系统软件的典型开发框架
4.1概述
4.2裸机嵌入式系统的组成
4.3典型的裸机软件系统实现框架
4.3.1基本的超循环结构
4.3.2使用中断的前后台结构
4.3.3完全依赖中断的事件驱动系统
4.3.4状态机驱动系统
4.4本章小结
第5章低功耗应用设计
5.1概述
5.2K64中的低功耗模式介绍
5.3功耗状态机模型的运作
5.3.1进入STOP模式操作序列
5.3.2退出STOP模式操作序列
5.3.3中断进入STOP模式
5.4低功耗所涉及的模块详解
5.4.1ARM核的系统控制寄存器
5.4.2系统模式控制器
5.4.3低功耗模式下的频率限制
5.4.4低漏唤醒单元
5.5低功耗应用开发典型模式
5.6K64低功耗编程心得
5.7本章小结
第6章DMA的基本概念
6.1DMA的基本概念
6.2DMA的工作原理
6.3K64的DMA介绍
6.3.1TCD
6.3.2主循环和子循环
6.3.3eDMA通道请求使能开关
6.3.4DMA的触发源
6.3.5DMA传输完成的判断
6.3.6关于SMOD和DMOD周期性地址传输
6.3.7关于DREQ位
6.4使用DMA实现内存间搬运的实例
6.4.1DMA TCD的配置
6.4.2等待DMA传输完成
6.4.3实验效果
6.5本章小结
第7章DMA在串行通信总线中的应用
7.1通过DMA来进行串口数据收发
7.1.1DMA触发条件的确定
7.1.2DMA TCD的配置
7.2使用DMA进行SPI通信
7.2.1SPI通信的一般模型
7.2.2DMA触发条件的确定
7.2.3DMA TCD的配置
7.3本章小结
第8章DMA实现ADC扫描触发链
8.1从应用案例开始
8.1.1明确需求
8.1.2围绕ADC的软触发特性设计触发链
8.2触发链的设计与实现
8.2.1DMA0 >ADC0: 实现DMA0自动搬运命令字触发ADC转换
8.2.2ADC0 >DMA1: 实现ADC转换完成后触发DMA1自动搬运
转换结果
8.2.3PIT0 >DMA0: 实现PIT0定期触发DMA0控制转换的节奏
8.2.4见缝插针,自定义更加丰富的操作接口
8.3本章小结
第9章使用命令行来帮助开发
9.1概述
9.2Shell的引入
9.2.1单片机中的Shell
9.2.2单片机Shell的输入和输出
9.3简单的Shell软件设计
9.3.1构建Shell命令结构体
9.3.2获取输入命令
9.3.3解析命令
9.3.4调用对应的函数并返回结果
9.4应用实例
9.5本章小结
第10章使用CMSIS DSP数学运算库
10.1什么是数字信号处理
10.2浮点运算与定点运算
10.3CMSIS DSP简介
10.4CMSIS DSP初探
10.4.1DSP库的分类
10.4.2使用CMSIS DSP库
10.5基础数学函数
10.5.1向量绝对值运算
10.5.2向量加法运算
10.5.3向量点积
10.5.4向量(元素)乘积
10.5.5逆向量(反向量)
10.5.6向量平移
10.5.7向量扩围
10.6快速功能函数
10.6.1快速余弦函数(Cosine)
10.6.2快速正弦函数(Sine)
10.6.3快速平方根(Square Root)
10.7本章小结
第11章专业的软件版本控制系统——git
11.1git的诞生
11.1.1git的诞生
11.1.2git的核心——数据库
11.1.3远程数据库和本地数据库
11.2git入门笔记
11.2.1下载安装git
11.2.2初始化代码仓库
11.2.3添加文件并提交修改
11.2.4增删改查git仓库中的文件
11.2.5退回到某一个commit
11.2.6使用远程仓库
11.2.7克隆远程库
11.3本章小结
后记
参考文献
猜您喜欢