嚴(yán)海蓉,北京工業(yè)大學(xué)嵌入式軟件與系統(tǒng)系副教授,國家級教學(xué)團(tuán)隊骨干成員。長期從事嵌入式系統(tǒng)和嵌入式微處理器應(yīng)用系統(tǒng)等方面的科研與教學(xué)工作,為本科生和研究生開設(shè)了“嵌入式微處理器原理及應(yīng)用”、“嵌入式操作系統(tǒng)”等課程。曾被評為國家專利局最佳校園發(fā)明獎優(yōu)秀指導(dǎo)教師、北京工業(yè)大學(xué)優(yōu)秀碩士學(xué)位論文指導(dǎo)教師,并獲得北京市優(yōu)秀教學(xué)成果二等獎。獨立編寫了《嵌入式操作系統(tǒng)原理與應(yīng)用》一書,發(fā)表學(xué)術(shù)論文30余篇,授權(quán)專利7項。
第1章 緒論
1.1 微處理器定義
1.2 ARM發(fā)展歷程
1.3 ARM體系結(jié)構(gòu)與特點
1.4 處理器選型
1.4.1 嵌入式微處理器選型的考慮因素
1.4.2 嵌入式微處理器選型示例
第2章 ARM核體系結(jié)構(gòu)
2.1 寄存器
2.2 ALU
2.3 存儲部件
2.4 中斷控制
2.5 總線
2.6 外圍接口I/O
2.7 流水線
2.8 ARM協(xié)處理器接口
第3章 ARM指令集
3.1 指令簡介
3.2 ARM尋址方式
3.2.1 數(shù)據(jù)處理指令的操作數(shù)的尋址方式
3.2.2 字及無符號字節(jié)的Load/Store指令的尋址方式
3.2.3 雜類Load/Store指令的尋址方式
3.2.4 批量Load/Store指令的尋址方式
3.2.5 協(xié)處理器Load/Store指令的尋址方式
3.3 Cortex指令集
3.3.1 數(shù)據(jù)傳送類指令
3.3.2 數(shù)據(jù)處理指令
3.3.3 其他計算類指令
3.3.4 飽和運(yùn)算
3.3.5 無條件跳轉(zhuǎn)指令
3.3.6 標(biāo)志位與條件轉(zhuǎn)移指令
3.3.7 IF-THEN指令塊
3.3.8 Barrier隔離指令
3.3.9 其他一些有用的指令
3.3.10 對內(nèi)存的互斥訪問
3.4 偽指令
3.5 內(nèi)嵌匯編
第4章 Cortex-M3特性
4.1 特殊功能寄存器
4.2 中斷建立全過程的演示
4.3 復(fù)位序列
4.4 中斷咬尾
4.5 晚到異常
4.6 位帶操作
4.7 互斥訪問
第5章 C語言與匯編語言混編
5.1 ATPCS與AAPCS
5.2 嵌入式C編寫與編譯
5.3 C語言與匯編語言混編規(guī)范
5.3.1 內(nèi)嵌匯編
5.3.2 匯編程序中訪問C全局變量
5.3.3 C語言與匯編語言的相互調(diào)用
5.4 C語言與匯編語言混編實踐
5.4.1 Keil使用和STM32固件庫
5.4.2 建立自己的第一個Keil程序
第6章 STM32輸入/輸出
6.1 pin配置
6.1.1 單獨的位設(shè)置或位清除
6.1.2 外部中斷/喚醒線
6.1.3 復(fù)用功能
6.1.4 軟件重新映射I/O復(fù)用功能
6.1.5 GPIO鎖定機(jī)制
6.1.6 輸入配置
6.1.7 輸出配置
6.1.8 復(fù)用功能配置
6.1.9 模擬輸入配置
6.2 輸入/輸出基本概念(寄存器、輸入/輸出類型)
6.2.1 基本概念
6.2.2 寄存器詳解
6.2.3 復(fù)用I/O配置寄存器
6.2.4 通用I/O和AFIO使用的配置步驟
6.3 通用I/O鎖定機(jī)制
6.4 系統(tǒng)時鐘
6.4.1 時鐘配置
6.4.2 時鐘輸出的使能控制
6.5 輸入/輸出常用固件庫函數(shù)
6.5.1 GPIO_Delnit函數(shù)
6.5.2 GPIO_AFIODelnit函數(shù)
6.5.3 GPIO_Init函數(shù)
6.5.4 GPIO_StructInit函數(shù)
6.5.5 GPIO_ReadInputDataBit函數(shù)
6.5.6 GPIO_ReadlnputData函數(shù)
6.5.7 GPIO_ReadOutputDataBit函數(shù)
6.5.8 GPIO_ReadOutputData函數(shù)
6.5.9 GPIO_SetBits函數(shù)
6.5.1 0GPIO_ResetBits函數(shù)
6.5.1 1GPIO_WriteBit函數(shù)
6.5.1 2GPIO_Write函數(shù)
6.5.1 3GPIO_PinLockConfig函數(shù)
6.5.1 4GPIO_EventOutputConfig函數(shù)
6.5.1 5GPIO_EventOutputCmd函數(shù)
6.5.1 6GPIO_PinRemapConfig函數(shù)
6.5.1 7GPIO_EXTILineConfig函數(shù)
6.6 GPIO控制LED燈
6.6.1 硬件設(shè)計
6.6.2 軟件設(shè)計
6.7 GPIO控制蜂鳴器
6.7.1 硬件設(shè)計
6.7.2 軟件設(shè)計
6.8 跑馬燈實驗
6.8.1 硬件設(shè)計
6.8.2 軟件設(shè)計
6.9 LCD1602驅(qū)動
6.9.1 硬件設(shè)計
6.9.2 軟件設(shè)計
第7章 串行通信模塊與中斷程序
7.1 接口與通信標(biāo)準(zhǔn)
7.1.1 I2C接口
7.1.2 通用同步/異步收發(fā)器(USART)
7.1.3 串行外設(shè)接口(SPI)
7.1.4 控制器區(qū)域網(wǎng)絡(luò)(CAN)
7.1.5 通用串行總線(USB)
7.2 串口USART實例
7.3 掃描鍵盤
7.4 繼電器
7.5 脈寬調(diào)制
7.6 步進(jìn)電動機(jī)
第8章 STM32帶操作系統(tǒng)編程
8.1 RAM、Flash啟動
8.2 小型操作系統(tǒng)sTM32移植
8.2.1 μCOS-Ⅱ內(nèi)核簡介
8.2.2 開始移植
8.2.3 程序開發(fā)模式討論
第9章 綜合案例
9.1 硬件連接方式
9.2 驅(qū)動軟件編寫
9.2.1 串口通信
9.2.2 數(shù)據(jù)采集
9.2.3 小車的方向控制
9.2.4 小車的速度控制
9.3 Z-Stack軟件框架
9.3.1 任務(wù)調(diào)度
9.3.2 ZigBee無線傳輸系統(tǒng)開發(fā)
9.4 計算機(jī)端程序開發(fā)
附錄A STM32F10x.h中的定義
附錄B LCD1602程序