-- 會員 / 註冊 --
 帳號:
 密碼:
  | 註冊 | 忘記密碼
站長推薦
NT售價: 240
NT售價: 295
NT售價: 395
NT售價: 225
NT售價: 245

4/25 新書到! 4/19 新書到! 4/11 新書到! 4/8 新書到!
C.G.Next購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopIllustratorAutoCadMasterCamSolidWorksCreoUGRevit
CC++Java遊戲程式Linux嵌入式PLCFPGAMatlabNuke
駭客資料庫搜索引擎影像處理FluentSPSSANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
C#HadoopPythonStm32手機程式CortexLabviewAndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

嵌入式軟件設計入門與進階——基于Kinetis K60/K64

( 簡體 字)
作者:楊熙、蘇勇、劉屹霄類別:1. -> 電腦組織與體系結構 -> 嵌入式系統 -> Cortex
譯者:
出版社:清華大學出版社嵌入式軟件設計入門與進階——基于Kinetis K60/K64 3dWoo書號: 45704
詢問書籍請說出此書號!

有庫存
NT售價: 195

出版日:1/1/2017
頁數:197
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302442073
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
作者序:

譯者序:

前言:



前言


在經典的51單片機時代誕生了許多實用的技術書籍,覆蓋了從硬件架構到軟件應用的方方面面,這些作品培養了大量單片機工程師,對單片機技術的發展提供了非常大的助力。現如今,隨著ARM單片機的興起和繁榮,相關的書籍不斷涌現。然而,從作者的學習經歷來看,目前關于ARM單片機書籍的描述,重點還是放在參考手冊和固件庫上,也就是說,書中的內容直接或間接地來源于單片機原廠的參考手冊或是固件庫。誠然,這些知識對于單片機開發非常重要,它們是使用ARM單片機進行開發的基礎。但是,隨著ARM單片機的普及和開發門檻的降低,單片機工程師們對ARM技術書籍的需求遠不止于此,在實踐中,還有更廣闊的空間需要探索。本書作者曾經也是單片機開發的初學者,經過了多年對ARM單片機的學習和實踐,在不斷解決問題的過程中,積累了一些心得和體會。這些源自于實踐的經驗,不同于手冊中已有的內容,更多的是通過實驗和具體的應用而進行的總結,具有比較高的實用價值,對具體的項目應用有直接的參考意義。
本書由來
提及作者學習ARM單片機的過程,就不得不聊一點飛思卡爾杯智能汽車比賽的經歷。2011年,作者(其中之一)帶隊參加第六屆“飛思卡爾”杯智能車比賽(電磁組),開始在項目中使用K60單片機,這是由飛思卡爾半導體公司推出的全球首款基于ARM CortexQM4內核的單片機,在之后的幾年里廣為流行。
作者在參加比賽的過程中受益頗多,在明確的項目目標(更快、更穩)的驅動下,將所有相關的知識整合起來,全面地解決小車系統中的每一個具體問題,這剛好是一個完整的單片機工程師從入門到成熟的學習過程。在制作和調試小車的過程中,僅僅依賴芯片手冊的信息不足以解決所有問題,更多的問題還需要搜集信息、思考、測試、再思考、再測試的反復過程才能取得最終的解決方案。這些通過實踐積累下來的經驗總結是最寶貴的財富。早年對開發問題的總結,也催生了撰寫一本關于開發單片項目經驗書籍的念頭。
參加工作后,作者有幸繼續使用Kinetis系列單片機的開發平臺進行單片機系統軟件的設計工作。作為常年工作在Kinetis微控制器底層驅動和操作系統接口層的應用工程師,本著進一步對芯片功能的使用和理解的目的,將近幾年在工作崗位和項目中的技術細節整理出來。為了方便使用Kinetis產品的廣大讀者和應用工程師,作者對各類實際工作中看似模棱兩可的功能性配置過程做了較為詳細的解釋,從系統上電啟動的最初步驟到進入應用系統之后的環節都進行了較為詳細的演示,這樣做的目的是為了方便讀者在遇到一些未知的故障時能夠通過本書中講解的內容快速將故障定位,從而縮短產品開發周期,為應用開發奠定基礎。同時本書還介紹了嵌入式軟件開發過程的一些輔助工具,通過對這些工具的了解可以幫助讀者在單片機開發工作中錦上添花。

本書特色
本書從NXP Kinetis系列產品的綜合介紹開始,對Kinetis芯片的一些功能細節做了較為詳細的介紹。書中引用了作者團隊開發和使用多年的CHK開源Kinetis產品驅動庫,讀者可以自行在網絡上下載并使用,這些完全免費。CHK開源驅動軟件庫開發至今多年,在業界有著較好的口碑,可以幫助有MCU開發經驗的用戶幾乎零時間進入Kinetis產品的應用開發工作,到目前為止,CHK軟件庫已經可以支持多個系列Kinetis的衍生型號開發,其他一些子型號只要稍加修改便可使用。
嵌入式軟件設計入門與進階——基于Kinetis K60/K64


由于目前市面上已經有較多關于恩智浦Kinetis系列單片機的書籍,但大多是針對入門學習者或是剛接觸Kinetis單片機的工程師,著重偏向外設模塊介紹,如簡單的GPIO使用、點亮小燈等。再例如串口通信,只是介紹收發數據的相關寄存器,然后以打印或接收一些串口數據作為示例,強調快速見效。而本書主要面向具有一定經驗的嵌入式開發者,根據作者實際的開發經驗,在書中總結了一些使用Kinetis控制器進行嵌入式軟件開發過程中用到的實用技術,以“第一視角”講述一線工程師的應用心得,實用價值高。另外,本書內容絕不只限于Kinetis系列控制器,其中很多是所有嵌入式開發工程師經常碰到的問題。本書對技術點的描述深入細致,內容豐富,是一本可讀性強的讀物。
在內容的組織形式上,本書并未采用傳統教科書式的順序結構,而是以主題組織材料,將每個章節整理成一個個“技術小品”。每個“技術小品”相當于是一個解決問題的小故事,將相關信息放在一起說明中心問題,這種內容組織的方式直接來源于作者在項目開發過程中整理的開發筆記。這樣做,對于讀者而言,也可以減輕閱讀壓力,每閱讀完一個章節,就可以了解到一個主題。對于閑暇時間有限的單片機工程師來說,這樣組織內容的方式非常便于利用零星的時間進行閱讀。
本書讀者對象
本書主要面向有一定編程基礎的嵌入式MCU工程師、高校師生、創客以及所有熱愛嵌入式技術的朋友們。本書特別介紹了大量關于Kinetis系列產品的入門及應用知識,包括常用外設的編程方法、寄存器,以及飛思卡爾系列單片機一些特有的功能等,這些知識對于想了解該系列產品的朋友來說具有很好的參考價值。

特別提醒讀者的是,鑒于本書完稿之時正處于飛思卡爾半導體公司和恩智浦半導體合并過程中,所以以前的“飛思卡爾Kinetis系列”在本書出版時已經更替為“恩智浦(NXP) Kinetis”系列。

CHKQLIB Kinetis驅動固件庫是由本書作者自行開發的針對Kinetis的底層驅動庫,支持數十種Kinetis微控制器型號,使用簡單并配套詳細的使用例程,可以幫助用戶以極短的時間入手Kinetis系列微控制器的應用編程,大大縮短開發周期,CHKQLIB驅動庫已經開發多年,歷經時間檢驗,穩定可靠。它與目前NXP官方的SDK 2.0互為補充,SDK 2.0側重與以芯片為中心,大而全的設計驅動API,而CHKinetis固件庫則以應用為中心來設計驅動API,講究實用簡單,砍掉了一些不常用的外設功能。API也比官方的SDK 2.0少很多。目前,CHKinetis依然在持續更新中。讀者可以前往開源中國(OS China)進行下載,地址鏈接如下:http://git.oschina.net/yandld/CHQKQLib。
本書的作者團隊來自于單片機開發領域,包括面向產品的應用軟件工程師以及致力于提供固件庫服務的系統軟件工程師,由于常年與程序代碼和開發板為伍,但是作為技術書籍的作者尚顯文筆生疏,書中所用描述之辭,如有不當之處懇請見諒。
僅以此書獻給曾經的飛思卡爾和一代藉由“飛思卡爾”智能車比賽成長起來的年輕工程師們!

作者
2016年5月







內容簡介:

本書以ARM CortexQM4為內核的恩智浦(NXP)Kinetis系列微控制器作為硬件平臺,從嵌入式軟件工程師的實踐角度出發,闡述了基于MCU的嵌入式軟件開發中的若干細節問題。與目前的入門類書籍中對片上外設及固件庫軟件的說明指導相比,書中對實際開發中的具體問題進行了更為詳細的分析:從零開始搭建軟件開發平臺,不僅描述了工程模板的創建,還具體分析了芯片的軟硬件啟動過程,尤其對鏈接過程及典型應用進行了詳述; 介紹了幾種典型的嵌入式系統開發框架,根據具體的應用場景選擇程序的組織方式; 在低功耗和DMA的相關章節中介紹了降低產品功耗與優化性能的典型做法及思路; 而作為運行在單片機上的命令行系統、CMSISQDSP運算庫及git版本管理系統,都是軟件工程人員常用的功能調試與代碼維護的常用工具,對這些內容也進行了介紹。
本書可作為通信工程、電子信息工程、計算機、微電子等專業相關課程的教材,也可供具有專業背景并有一定C語言及嵌入式開發基礎的在校大學生、研究生以及對嵌入式技術感興趣的讀者參考。
目錄:

第1章Kinetis平臺概述

1.1ARMQCortex系列簡介

1.1.1ARMCortexQA

1.1.2ARMCortexQR

1.1.3ARMCortexQM

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.7SPIFlash

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本章小結

嵌入式軟件設計入門與進階——基于KinetisK60/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.1DMATCD的配置

6.4.2等待DMA傳輸完成

6.4.3實驗效果

6.5本章小結

第7章DMA在串行通信總線中的應用

7.1通過DMA來進行串口數據收發

7.1.1DMA觸發條件的確定

7.1.2DMATCD的配置

7.2使用DMA進行SPI通信

7.2.1SPI通信的一般模型

7.2.2DMA觸發條件的確定

7.2.3DMATCD的配置

7.3本章小結

第8章DMA實現ADC掃描觸發鏈

8.1從應用案例開始

8.1.1明確需求

8.1.2圍繞ADC的軟觸發特性設計觸發鏈

8.2觸發鏈的設計與實現

8.2.1DMA0Q>ADC0:實現DMA0自動搬運命令字觸發ADC轉換

8.2.2ADC0Q>DMA1:實現ADC轉換完成后觸發DMA1自動搬運

轉換結果

8.2.3PIT0Q>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章使用CMSISQDSP數學運算庫

10.1什么是數字信號處理

10.2浮點運算與定點運算

10.3CMSISQDSP簡介

10.4CMSISQDSP初探

10.4.1DSP庫的分類

10.4.2使用CMSISQDSP庫

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快速平方根(SquareRoot)

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本章小結

后記

參考文獻

序: