嵌入式系统设计与开发期末考试复习
嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)期末考試復(fù)習(xí)
- STM32學(xué)習(xí)筆記
- 第一章:嵌入式系統(tǒng)概述
- 1.嵌入式系統(tǒng)概念,應(yīng)用與特點(diǎn)
- 2.嵌入式系統(tǒng)的硬件(CPU,外設(shè))
- 3.主要嵌入式軟件系統(tǒng)(應(yīng)用及OS)
- 4.嵌入式系統(tǒng)的發(fā)展趨勢
- 第二章:ARM Cortex-M3微處理器基礎(chǔ)
- 1.CM3微控制器簡介
- 2.CM3存儲格式類型
- 3.CM3處理器組件
- 4.CM3指令系統(tǒng)
- 5.CM3寄存器組織
- 6.CM3存儲映射與位帶操作
- 7.CM3異常與中斷
- 8.STM32F10系列的GPIO
- 第三章:嵌入式開發(fā)環(huán)境
- 第四章:STM-32平臺開發(fā)基礎(chǔ)
- 使能時鐘
- 使能時鐘例子
- GPIO學(xué)習(xí)
STM32學(xué)習(xí)筆記
考試在即,在CSDN上借鑒了一些大佬的文章以及書本內(nèi)容,整理成筆記
第一章:嵌入式系統(tǒng)概述
1.嵌入式系統(tǒng)概念,應(yīng)用與特點(diǎn)
問:什么是嵌入式系統(tǒng)?有什么特點(diǎn)?應(yīng)用在哪些領(lǐng)域?
嵌入式是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能,可靠性,成本,體積,功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)
特點(diǎn):(1)專用性強(qiáng)(2)嵌入性強(qiáng)(3)可剪裁性好(4)可靠性高(5)系統(tǒng)內(nèi)核小(6)一般是實(shí)時系統(tǒng)(7)極其關(guān)注成本(8)有功耗約束
應(yīng)用領(lǐng)域:工業(yè)制造,過程控制,通信,儀器,儀表,汽車,輪船,航空等領(lǐng)域
嵌入式系統(tǒng)由軟件和硬件部分組成
(1)硬件:嵌入式處理CPU,輸入輸出設(shè)備
(2)軟件:驅(qū)動程序DRV,操作系統(tǒng)OS,應(yīng)用軟件app
2.嵌入式系統(tǒng)的硬件(CPU,外設(shè))
(1)嵌入式系統(tǒng)組成:嵌入式處理器,外設(shè),操作系統(tǒng),應(yīng)用軟件等。
(2)嵌入式處理器通常分為以下幾類:
嵌入式微控制器(MCU)
嵌入式微處理器(EMPU)
嵌入式DSP處理器(EDSP)
嵌入式片上系統(tǒng)(SOC)
典型的嵌入式處理器:(1)ARM(2)MIPS(3)PowerPC(4)x86(5)Motorola68000
(3)外設(shè)的分類
外圍設(shè)備按功能分為三種:存儲設(shè)備,通信設(shè)備和顯示設(shè)備
3.主要嵌入式軟件系統(tǒng)(應(yīng)用及OS)
嵌入式軟件系統(tǒng)分為嵌入式操作系統(tǒng)和應(yīng)用軟件兩大類,核心是嵌入式操作系統(tǒng)
(1)嵌入式操作系統(tǒng)
傳統(tǒng)的經(jīng)典RTOS,嵌入式Linux操作系統(tǒng),Android系統(tǒng),WindowsCE嵌入式操作系統(tǒng),uc/OS-II實(shí)時操作系統(tǒng)
(2)嵌入式應(yīng)用軟件
嵌入式支撐軟件,應(yīng)用程序
4.嵌入式系統(tǒng)的發(fā)展趨勢
(1)嵌入式開發(fā)是一項(xiàng)系統(tǒng)工程
(2)網(wǎng)絡(luò)化,信息化的要求
(3)網(wǎng)絡(luò)互聯(lián),移動互聯(lián)成為必然趨勢
(4)精簡系統(tǒng)內(nèi)核,算法,降低功耗和軟硬件成本
(5)提供友好的多媒體人機(jī)交互界面
第二章:ARM Cortex-M3微處理器基礎(chǔ)
1.CM3微控制器簡介
CM3微控制器是一種嵌入式微控制器,支持兩種工作模式:線程模式和處理模式,有兩種工作狀態(tài):Thumb狀態(tài)和調(diào)試狀態(tài)
2.CM3存儲格式類型
(1)大端格式:字?jǐn)?shù)據(jù)中的高字節(jié)存儲在低地址,而低字節(jié)存儲在高地址
(2)小端格式:與大端模式相反
3.CM3處理器組件
CM3處理器系統(tǒng)的主要模塊包括:
(1)處理器內(nèi)核
(2)嵌套向量中斷控制器NVIC
(3)總線矩陣
(4)存儲器保護(hù)單元MPU
(5)系統(tǒng)調(diào)試組件和調(diào)度端口
(6)喚醒中斷控制器WIC
內(nèi)核結(jié)構(gòu)(1)采用Thumb-2指令集架構(gòu)的子集(2)采用哈佛處理器架構(gòu)(3)采用三級流水線+分支預(yù)測
哈佛結(jié)構(gòu):一種將程序中指令和數(shù)據(jù)分開存儲的存儲器結(jié)構(gòu),是一種并行存儲體系結(jié)構(gòu)
普林頓結(jié)構(gòu):一種將程序指令存儲器和數(shù)據(jù)存儲器合并在一起的存儲器結(jié)構(gòu)
三級流水線:取指->解碼->執(zhí)行,無論處理器處于何種狀態(tài),PC總是指向“正在取值”指令的地址
4.CM3指令系統(tǒng)
(1)數(shù)據(jù)傳送指令
(2)數(shù)據(jù)處理指令
(3)子程序調(diào)用和無條件跳轉(zhuǎn)指令
5.CM3寄存器組織
CM3擁有R0-R15通用寄存器以及一些特殊功能寄存器
(1)通用寄存器
低寄存器:R0-R7,能夠被指定通用寄存器的所有指令訪問,復(fù)位后初始值不可預(yù)知
高寄存器:R8-R12,可以被指定通用寄存器的所有32位指令訪問
堆棧寄存器SP:R13,作為SP自動與字對齊,對應(yīng)兩個不會被同時訪問的寄存器SP_main和SP_process
鏈接寄存器LR:R14,執(zhí)行分支指令時存儲一個返回地址
程序計(jì)數(shù)器PC:R15,指向當(dāng)前的程序地址
(2)特殊功能寄存器
狀態(tài)寄存器
中斷屏蔽寄存器
控制寄存器
6.CM3存儲映射與位帶操作
(1)存儲器映射
ARM Cortex-M3只有一個單一固定的存儲器映射,支持4GB存儲空間
(2)位帶操作
位帶區(qū)和位帶別名區(qū)的對應(yīng)關(guān)系(計(jì)算)
7.CM3異常與中斷
當(dāng)正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之為異常,處理器允許多個異常同時發(fā)生,將按固定的優(yōu)先級進(jìn)行處理。
廣義的異常包括內(nèi)核異常和外部中斷,內(nèi)核異常是可預(yù)知的,對于內(nèi)核來說是同步的,而外部中斷是不可預(yù)知的,對于內(nèi)核是異步的。
在STM32中,正常的程序執(zhí)行流程發(fā)生暫時停止的情形,統(tǒng)稱為異常,而由外部事件導(dǎo)致的程序執(zhí)行流程改變的情形也可稱為中斷,因此,異常的概念包含了中斷,或者說,中斷是一種特殊的異常
8.STM32F10系列的GPIO
通用輸入/輸出口GPIO是一個靈活的由軟件控制的數(shù)字信號,每個GPIO都代表一個連接到CPU特定引腳的一個位,GPIO端口的每一位都可以有多種模式:4種輸入模式:輸入浮空,輸入上拉,輸入下拉,模擬輸入,4種輸出模式:開漏輸出,推免式輸出,推免式復(fù)用功能,開漏復(fù)用功能。
第三章:嵌入式開發(fā)環(huán)境
交叉編譯,開發(fā)工具
交叉編譯是指在某個平臺上用交叉編譯器編譯出可在其他平臺上運(yùn)行的代碼的過程
第四章:STM-32平臺開發(fā)基礎(chǔ)
重點(diǎn):
1.GPIO原理即程序設(shè)計(jì),包括流水燈和八段數(shù)碼管
2.按鍵原理與程序設(shè)計(jì)中斷原理與中斷程序設(shè)計(jì)
3.串口通信原理與程序設(shè)計(jì)
4.定時器與看門狗原理及程序設(shè)計(jì)
使能時鐘
什么是時鐘?
時鐘就像一個小小的開關(guān),需要用什么寄存器就得首先打開對應(yīng)的開關(guān),即使能對應(yīng)的時鐘:
為什么要使用時鐘?
讓用戶可以精確地控制,關(guān)閉不需要的設(shè)備,達(dá)到節(jié)省供電的目的。如果不用的就完全關(guān)閉,盡可能降低芯片功耗
STM32時鐘的分類:
使能時鐘例子
使能AFIO:RCC->APB2ENR|=1<<0;
使能PORTA時鐘:RCC->APB2ENR|=1<<2;
使能PORTB時鐘:RCC->APB2ENR|=1<<3;
使能PORTE時鐘:RCC->APB2ENR|=1<<6;
I/O時鐘屬于APB2控制
GPIO學(xué)習(xí)
通用輸入/輸出口GPIO是一個靈活的由軟件控制的數(shù)字信號,每個GPIO都代表一個連接到CPU特定引腳的一個位。
STM32 IO簡介:STM32F103VBT6一共有五組輸入輸出端口(I/O口,簡稱IO),分別是GIPOA,GPIOB,GPIOC,GPIOD,GPIOE,每個IO口有16個IO,一共80個IO端口
GPIO端口的四種輸入模式:浮空輸入,上拉輸入,下拉輸入,模擬輸入
四種輸出模式:開漏輸出,推免式輸出,開漏復(fù)用功能,推免式復(fù)用功能
幾個比較常用的配置:0x4表示模擬輸入模式,0x3表示推免輸出模式,0x8表示上拉/下拉輸入模式,0xB表示復(fù)用輸出。
STM32的每個I/O口都由7個寄存器控制:2個32位端口配置寄存器CRL和CRH;2個32位的數(shù)據(jù)寄存器IDR和ODR;1個32位的置位復(fù)位寄存器BSRR;1個16位的復(fù)位寄存器BRR;1個32位的鎖存寄存器LCKR;最常用的有4個:CRL/CRH/IDR/ODR;因此通常情況下只需要配置好以上四個寄存器就可以了。而CRH和CRL作用是完全一樣的,只不過CRH控制的是高8位的IO而CRL控制的是低8位的
IDR是查看引腳電平狀態(tài)用的寄存器,ODR是引腳電平輸出的寄存器。
例如要設(shè)置PORTC的第11位為上拉輸入,第12位為推免輸出
示例代碼:
流水燈程序:
#include"stm32f10x_map.h" //定義STM32寄存器 #define GPIOB_CRL((unsigned long int *)0x40010C00) #define GPIOB_ODR((unsigned long int *)0x40010C0C) #define GPIOB_CRH((unsigned long int *)0x40011804) #define GPIOB_ODR((unsigned long int *)0x4001180C) //以下用位帶方式定義PE的第八個IO口 u32* PE08=(u32*)(0x42000000+(0x4001180C-0x40000000)*32+8*4) int delay(int Time) { //延時函數(shù),通過循環(huán)空操作實(shí)現(xiàn)一定的時間延時unsigned short t,i,j;for(t=0;t<Time;t++)for(i=0;i<1000;i++)for(j=0;j<1000;j++);return 0; } void main() { RCC->APB2ENR|=1<<0;//使能AFIO RCC->APB2ENR|=1<<3;//使能PORTB時鐘 RCC->APB2ENR|=1<<6;//使能PORTE時鐘 AFIO->MAPR=0x02000000; //初始化IO端口參數(shù) *GPIOB_CRL&=0xFFFF0FFF;//將3位置0 *GPIOB_CRL&=0x00003000;//PB.3推免輸出 *GPIO_ODR|=0x00000008;//PB.3輸出高,8的二進(jìn)制表示為1000,故第三位輸出高 *GPIOE_CRH&=0x33333333;//PE.8-15推免輸出 *GPIOE_ORD|=0x0000FF00;//PE.8-15輸出高,一個十六進(jìn)制的數(shù)可以表示為4位2進(jìn)制數(shù),因此FF所處的位置剛好在8-15位 delay(5); while(1) { *PE08=1;//LED1亮 delay(2); *PE08=0;//LED1滅 delay(2); *GPIOE_ODR=0X00000200;//LED2 delay(2); *GPIOE_ODR=0X00000400;//LED3 delay(2); *GPIOE_ODR=0X00000800;//LED4 delay(2); *GPIOE_ODR=0X00001000;//LED5 delay(2); *GPIOE_ODR=0X00002000;//LED6 delay(2); *GPIOE_ODR=0X00004000;//LED7 delay(2); *GPIOE_ODR=0X00008000;//LED8 delay(2); } }總結(jié)
以上是生活随笔為你收集整理的嵌入式系统设计与开发期末考试复习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机基础知识——基础入门(一)
- 下一篇: 使命召唤12服务器系统,《使命召唤12: