本書結構合理,內容系統(tǒng)全面,從嵌入式系統(tǒng)概述、ARM CortexM3微處理器、ARM CortexM3開發(fā)工具和環(huán)境、STM32基礎入門等方面介紹了嵌入式系統(tǒng)的原理與具體應用,可作為高等院校計算機專業(yè)、電類專業(yè)、自動化以及機電一體化專業(yè)本科生的教材和參考書,也可供希望了解和掌握嵌入式系統(tǒng)的技術人員學習參考。
ARM微處理器已遍及工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡系統(tǒng)、無線系統(tǒng)等市場,而本書介紹的CortexM3處理器是ARM公司推出的首款基于ARMv7M架構的處理器,十分具有代表性。本書結構合理,內容系統(tǒng)全面,從嵌入式系統(tǒng)概述、ARM CortexM3微處理器、ARM CortexM3開發(fā)工具和環(huán)境、STM32基礎入門等方面介紹了嵌入式系統(tǒng)的原理與具體應用,可作為高等院校計算機專業(yè)、電類專業(yè)、自動化以及機電一體化專業(yè)本科生的教材和參考書,也可供希望了解和掌握嵌入式系統(tǒng)的技術人員學習參考。
采用ARM技術知識產(chǎn)權(IP)的微處理器,即我們通常所說的ARM微處理器,已遍及工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡系統(tǒng)、無線系統(tǒng)等各類市場,基于ARM技術的微處理器應用占據(jù)了32位RISC微處理器90%以上的市場份額,ARM技術正在逐步滲入我們生活的各個方面。 ARM已成為嵌入式的代名詞,學習嵌入式就是學習ARM。 ARM Cortex系列提供了一個標準的體系結構來滿足以上各種技術的不同性能要求,其包含的處理器是基于ARMv7架構的三個分工明確的部分。A部分面向復雜的尖端應用程序,用于運行開放式的復雜操作系統(tǒng);R部分針對實時系統(tǒng);M部分為成本控制和微控制器的應用提供優(yōu)化。 面對豐富多彩的嵌入式世界,我們該如何選擇學習的內容與形式呢? ARM公司1985年開發(fā)出全球第1款商業(yè) RISC 處理器,ARM7于1993年推出,之后還有ARM9、ARM11,得到大量運用。2004年開始推出更新的ARM Cortex-M3、A8、A9、A15,取代ARM7、ARM9、ARM11,廣泛運用在嵌入式領域中。 Cortex-M3是首款基于ARMv7-M架構的處理器,是行業(yè)領先的 32 位處理器,適用于具有高確定性的實時應用,是專門為了在微控制器、汽車車身系統(tǒng)、工業(yè)控制系統(tǒng)和無線網(wǎng)絡等對功耗和成本敏感的嵌入式應用領域實現(xiàn)高系統(tǒng)性能而設計的,它大大簡化了編程的復雜性,使ARM架構成為各種應用方案(即使是簡單的方案)的上佳選擇。 因此我們可以先開始學習ARM Cortex-M3,它取代8位/16位單片機和ARM7已經(jīng)成為必然;接下來還可以進一步選擇學習ARM9或者ARM Cortex-A8。 為了更好地進行嵌入式教學,我們應該積極動手實踐,可以自己設計制作一塊基于ARM CortexM3的STM32實驗/開發(fā)板。 筆者于2010年3月設計了基于STM32F103VBT6的AS05型STM32SS實驗板,2013年9月又設計了基于STM32F103VET6的AS07型STM32 ARDUINO實驗板,用于自己的學習與教學中。如果有需要本教材中的實驗/開發(fā)板和程序,請與作者聯(lián)系。 筆者2011年9月編寫了本書初稿,經(jīng)過7年的教學實踐,逐步修改完善。
第1章嵌入式系統(tǒng)概述(1)
1.1嵌入式系統(tǒng)的定義(3)
1.1.1嵌入式系統(tǒng)的定義(3)
1.1.2嵌入式系統(tǒng)的結構與組成(4)
1.1.3嵌入式系統(tǒng)的發(fā)展與趨勢(5)
1.2ARM公司與ARM處理器(6)
1.2.1英國ARM公司(6)
1.2.2ARM微處理器(7)
1.2.3ARM典型微處理器簡介(10)
1.3思考與練習(13)
1.4課外閱讀(13)
第2章ARM CortexM3微處理器 (14)
2.1ARM CortexM3概述(14)
2.1.1ARM的CortexM3核心內嵌閃存和SRAM(16)
2.1.2內置閃存存儲器(18)
2.1.3CRC(循環(huán)冗余校驗)計算單元(18)
2.1.4內置SRAM(19)
2.1.5FSMC(可配置的靜態(tài)存儲器控制器)(19)
2.1.6LCD并行接口(19)
2.1.7嵌套的向量式中斷控制器(NVIC)(19)
2.1.8外部中斷/事件控制器(EXTI)(19)
2.1.9時鐘和啟動(20)
2.1.10自舉模式(21)
2.1.11供電方案(21)
2.1.12供電監(jiān)控器(21)
2.1.13電壓調壓器(21)
2.1.14低功耗模式(22)
2.1.15DMA(22)
2.1.16RTC(實時時鐘)和后備寄存器(22)
2.1.17定時器和看門狗(23)
2.1.18I2C總線(24)
2.1.19通用同步/異步收發(fā)器(USART)(24)
2.1.20串行外設接口(SPI)(25)
2.1.21I2S(芯片互聯(lián)音頻)接口(25)
2.1.22SDIO(25)
2.1.23控制器區(qū)域網(wǎng)絡(CAN)(25)
2.1.24通用串行總線(USB)(25)
2.1.25通用輸入/輸出接口(GPIO)(26)
2.1.26ADC(模擬/數(shù)字信號轉換器)(26)
2.1.27DAC(數(shù)字/模擬信號轉換器)(26)
2.1.28溫度傳感器(26)
2.1.29串行單線JTAG調試口(SWJDP)(26)
2.1.30內嵌跟蹤模塊(ETM)(27)
2.2STM32F103xx引腳定義(27)
2.2.1引腳分布圖(27)
2.2.2STM32F103xx引腳定義(27)
2.3存儲器映像(29)
2.4I/O端口靜態(tài)特性(31)
2.5訂貨代碼(32)
2.6思考與練習(33)
目錄嵌入式系統(tǒng)原理與實踐基于CortexM3(STM32)(上冊)第3章ARM CortexM3開發(fā)工具和環(huán)境(34)
3.1軟件開發(fā)環(huán)境(34)
3.1.1RealView MDK的安裝(34)
3.1.2STM32下載編程軟件Flash Loader 的安裝(36)
3.1.3STM32硬件仿真器驅動程序的安裝(36)
3.1.4USB轉串口驅動的安裝(37)
3.1.5藍牙硬件和軟件的安裝(43)
3.2STM32實驗板(44)
3.2.1STM32最小系統(tǒng)板(44)
3.2.2Nucleo實驗板(44)
3.2.3AS07型STM32實驗板(46)
3.2.4ST官方STM3210EEVAL評估板(52)
3.3ST的庫函數(shù)(53)
3.3.1ST的庫函數(shù)的版本(53)
3.3.2ST的V2.0.1庫函數(shù)(53)
3.3.3ST的V2.0.1庫函數(shù)的工程模板和范例程序(54)
3.3.4ST的V2.0.3庫函數(shù)(60)
3.3.5ST的V2.0.3庫函數(shù)的工程模板和范例程序(60)
3.3.6ST的V3.0.0庫函數(shù)(60)
3.3.7ST的V3.0.0庫函數(shù)的工程模板和范例程序(61)
3.3.8ST的V3.5.0庫函數(shù)(62)
3.3.9ST的V3.5.0庫函數(shù)的工程模板和范例程序(62)
3.4思考與練習(63)
第4章STM32基礎入門 (64)
4.1GPIO的結構及編程應用(64)
4.1.1GPIO概述(64)
4.1.2GPIO寄存器(65)
4.1.3GPIO庫函數(shù)(69)
4.1.4復用功能I/O(AFIO)和調試配置(71)
4.1.5AFIO寄存器(72)
4.1.6GPIO編程應用(73)
4.2STM32的實驗過程(86)
4.2.1新建工程(86)
4.2.2編寫源程序并添加到該工程中(93)
4.2.3編譯、鏈接、調試源程序(98)
4.2.4仿真、調試程序,下載并運行驗證程序(104)
4.2.5使用ST庫函數(shù)范例和工程模板編程應用(117)
4.3STM32的復位與時鐘(117)
4.3.1STM32的復位(117)
4.3.2STM32的時鐘(117)
4.3.3RCC寄存器(119)
4.3.4RCC庫函數(shù)(124)
4.3.5RCC編程應用(126)
4.4STM32的中斷和事件(137)
4.4.1嵌套向量中斷控制器(137)
4.4.2外部中斷/事件控制器(EXTI)(140)
4.4.3NVIC和EXTI庫函數(shù)(140)
4.4.4中斷編程應用(145)
4.5STM32的串口通信USART(158)
4.5.1USART概述(159)
4.5.2USART寄存器(160)
4.5.3USART庫函數(shù)(161)
4.5.4USART編程應用(162)
4.6思考與練習(166)