本書以ARMCortex?M4為內核的恩智浦(NXP)Kinetis系列微控制器作為硬件平台,從嵌入式軟件工程師的實踐角度出發,闡述了基於MCU的嵌入式軟件開發中的若干細節問題。與目前的入門類書籍中對片上外設及固件庫軟件的說明指導相比,書中對實際開發中的具體問題進行了更為詳細的分析:從零開始搭建軟件開發平台,不僅描述了工程模板的創建,還具體分析了芯片的軟硬件啟動過程,尤其對鏈接過程及典型應用進行了詳述;介紹了幾種典型的嵌入式系統開發框架,根據具體的應用場景選擇程序的組織方式;在低功耗和DMA的相關章節中介紹了降低產品功耗與優化性能的典型做法及思路;而作為運行在單片機上的命令行系統、CMSIS?DSP運算庫及git版本管理系統,都是軟件工程人員常用的功能調試與代碼維護的常用工具,對這些內容也進行了介紹。
楊熙,嵌入式應用工程師,現就職於恩智浦半導體公司。一位電子技術及計算機技術的愛好者,利用業余時間學習了大量電子技術及計算機相關知識,曾開設超核電子嵌入式學習論壇。
蘇勇,嵌入式軟件工程師,現就職於恩智浦半導體公司,主要進行固件庫軟件的開發。從讀研期間參加「飛思卡爾大學計划」項目與Kinetis系列單片機結緣,參與了大量「飛思卡爾」單片機的開發及推廣,曾參加過多本教材的編寫寫工作。同時也是一名電子發燒友,常年混跡於各大電子論壇,喜歡自己DIY電子產品並樂於分享。
目錄
第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.3Flash配置選項
2.3.4復位中斷入口到用戶main函數
2.4分散加載文件
2.5本章 小結
第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
后記
參考文獻
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.3Flash配置選項
2.3.4復位中斷入口到用戶main函數
2.4分散加載文件
2.5本章 小結
第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
后記
參考文獻
網路書店
類別
折扣
價格
-
新書85折$199