版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
教材實驗指導(dǎo)書課后輔導(dǎo):二教306室QQ:191458401zhangsx程安排/p/zhangsxnet作業(yè)實驗考勤考試課堂提問課程活動:論文、競賽、科研項目考試實驗時間安排實驗地點:辦公樓7層嵌入式實驗室
一二三四五六1-2
FPGA原理電科111-2實驗(10~17周)嵌入式系統(tǒng)電子111實驗(9~16周)3-4
FPGA原理電科111-22108嵌入式系統(tǒng)電子111-22108
嵌入式系統(tǒng)電子111-23504FPGA原理電子111-25506
5-6
FPGA原理電子112實驗(10~17周)FPGA原理電子111-23204
FPGA原理電科111-231047-8FPGA原理電子111實驗(10~17周)嵌入式系統(tǒng)電子111-23001
嵌入式系統(tǒng)電子112實驗(9~16周)9-10
嵌入式系統(tǒng)電子111-22604
/嵌入式系統(tǒng)相關(guān)網(wǎng)站山東工商學(xué)院電子信息系嵌入式系統(tǒng)基礎(chǔ)知識張守祥zhangsx@第一章1.2嵌入式系統(tǒng)的組成1.1嵌入式系統(tǒng)概述主要內(nèi)容1.4嵌入式系統(tǒng)開發(fā)概述1.3嵌入式操作系統(tǒng)舉例1.5嵌入式程序設(shè)計和分析1.7數(shù)據(jù)結(jié)構(gòu)1.6C語言的位運算嵌入式系統(tǒng)開發(fā)、研究和學(xué)習(xí)現(xiàn)狀1
嵌入式系統(tǒng)是當(dāng)今電子信息產(chǎn)業(yè)最熱門的研究學(xué)習(xí)領(lǐng)域之一,有著廣大的學(xué)習(xí)研發(fā)用戶群和潛力巨大的市場。不僅有微處理器芯片,還有用于學(xué)習(xí)和研發(fā)的各種配套的軟件開發(fā)包。2
嵌入式系統(tǒng)要和各個不同行業(yè)的應(yīng)用相結(jié)合,要求更多的計算機以外的專業(yè)知識,其開發(fā)人員往往是各個應(yīng)用領(lǐng)域的專家。因此開發(fā)工具的易學(xué)、易用、可靠、高效是基本要求。3
目前底層系統(tǒng)和硬件平臺已經(jīng)相對比較成熟,實現(xiàn)各種功能的芯片應(yīng)有盡有,巨大的市場需求給我們提供了學(xué)習(xí)和開發(fā)嵌入式技術(shù)的機遇。zhangsx@8嵌入式系統(tǒng)應(yīng)用9什么是嵌入式系統(tǒng)嵌入式系統(tǒng)是一種應(yīng)用系統(tǒng),它至少包含一個可編程的計算機(通常是某種形式的微控制器、微處理器或數(shù)字信號處理芯片),且使用該系統(tǒng)的人一般并未意識到該系統(tǒng)是基于計算機的。zhangsx@10嵌入式系統(tǒng)運行模式SoC傳感器執(zhí)行器人機界面上位機嵌入式系統(tǒng)嵌入式系統(tǒng)開發(fā)模式嵌入式系統(tǒng)嵌入式系統(tǒng)開發(fā)模式仿真器宿主機SoC傳感器執(zhí)行器人機界面zhangsx@13簡單的嵌入式應(yīng)用簡單的嵌入式應(yīng)用不需要使用操作系統(tǒng)當(dāng)系統(tǒng)上電后,main函數(shù)將被調(diào)用,首先初始化,然后進入循環(huán)直到系統(tǒng)停電或者出現(xiàn)重大錯誤。超級循環(huán)voidmain(void){
X_init();//初始化 While(1)X();//實現(xiàn)的功能}zhangsx@14簡單的嵌入式應(yīng)用開發(fā)過程簡單的嵌入式應(yīng)用的開發(fā)過程在個人電腦上配置交叉開發(fā)環(huán)境安裝開發(fā)板(評估板)和仿真器編寫程序,交叉編譯調(diào)試軟、硬件利用仿真器將軟件燒到開發(fā)好的系統(tǒng)中進行現(xiàn)場運行測試15復(fù)雜的嵌入式系統(tǒng)應(yīng)用開發(fā)確定需求根據(jù)需求選擇合適的硬件硬實時/軟實時系統(tǒng)?什么處理器?哪些輔助硬件?選擇嵌入式操作系統(tǒng)選擇開發(fā)平臺編程語言、軟件開發(fā)工具實際的開發(fā)平臺包括硬件開發(fā)平臺、操作系統(tǒng)、編程語言以及軟件開發(fā)工具zhangsx@16編寫并優(yōu)化代碼一般在主機系統(tǒng)上進行開發(fā)和優(yōu)化工作。代碼優(yōu)化主要在軟件執(zhí)行速度和軟件尺寸之間取得平衡,滿足嵌入式系統(tǒng)對速度和存儲空間的限制。在嵌入式開發(fā)中,一般需要避免使用大型的軟件庫,避免使用遞歸編程,減少堆棧的消耗。在模擬器或者開發(fā)板上調(diào)試復(fù)雜的嵌入式系統(tǒng)應(yīng)用開發(fā)開發(fā)模式首先在通用計算機上編寫程序,然后通過交叉編譯生成目標(biāo)平臺上可以運行的二進制代碼格式,最后再下載到目標(biāo)平臺上的特定位置上運行。
宿主機(Host)宿主機的軟硬件資源比較豐富,不但包括功能強大的操作系統(tǒng)(如Windows和Linux),而且還有各種各樣優(yōu)秀的開發(fā)工具(如WindRiver的Tornado、Microsoft的EmbeddedVisualC++等),能夠大大提高嵌入式應(yīng)用軟件的開發(fā)速度和效率。
目標(biāo)機(Target)它可以是嵌入式應(yīng)用軟件的實際運行環(huán)境,也可以是能夠替代實際運行環(huán)境的仿真系統(tǒng),但軟硬件資源通常都比較有限。嵌入式系統(tǒng)交叉開發(fā)特點一般包括交叉編譯器、交叉調(diào)試器和系統(tǒng)仿真器,其中交叉編譯器用于在宿主機上生成能在目標(biāo)機上運行的代碼,而交叉調(diào)試器和系統(tǒng)仿真器則用于在宿主機與目標(biāo)機間完成嵌入式軟件的調(diào)試。嵌入式系統(tǒng)交叉開發(fā)工具嵌入式系統(tǒng)交叉開發(fā)過程首先利用宿主機上豐富的資源和良好的開發(fā)環(huán)境開發(fā)和仿真調(diào)試目標(biāo)機上的軟件。然后通過JTAG、串口或以太網(wǎng)絡(luò)連接將交叉編譯生成的目標(biāo)代碼傳輸并裝載到目標(biāo)機上。并在監(jiān)控程序或者操作系統(tǒng)的支持下利用交叉調(diào)試器進行分析和調(diào)試。最后目標(biāo)機在特定環(huán)境下脫離宿主機單獨運行?!?/p>
加快軟件開發(fā)進度
★
降低硬件調(diào)試成本
★
降低學(xué)習(xí)入門門檻軟件仿真技術(shù)——軟件仿真的優(yōu)點zhangsx@21嵌入式系統(tǒng)的實時性嵌入式系統(tǒng)一般具有實時的特點。
所謂實時系統(tǒng)是指在這種系統(tǒng)中,一個優(yōu)先級高的任務(wù)能夠得到立即的、沒有延遲的服務(wù),不需要等待任何其他優(yōu)先級低的任務(wù),一旦它得到CPU的使用權(quán),將一直執(zhí)行直到工作結(jié)束或者出現(xiàn)更高級別的進程。為了滿足這樣的需求,嵌入式操作系統(tǒng)必須具有高效的中斷處理能力和高效的IO能力CPU CentralProcessingUnit 中央處理器DSP DigitalSignalProcessor 數(shù)字信號處理器MCU MicroControlUnit 微控制器MPU MicroProcessorUnit 微處理器
CPU、MCU、MPU、DSP的區(qū)別MCU適合不同信息源的多種數(shù)據(jù)的處理診斷和運算,側(cè)重于控制,由于對體積、功耗、成本、開發(fā)難度等因素考慮一般集成了片上外圍器件,速度不是很高。DSP運算能力強,擅長很多的重復(fù)數(shù)據(jù)運算。MPU是高度集成通用結(jié)構(gòu)的處理器。CPU、MCU、MPU、DSP的區(qū)別型號架構(gòu)資源價格(元)AT89S518051最高頻率33MHz4KBFlash128B內(nèi)部RAM
32個可編程IO引腳兩個16bit的計數(shù)器一個UART口
4STM32F103ARMCortex-M3最高頻率72MHz64KBFlash20KBSRAM
80個可編程IO引腳2個12bit的ADC7通道DMA控制器標(biāo)準(zhǔn)調(diào)試口(SWD和JTAG)
7個定時器USB接口2個I2C接口3個UART2個SPI接口
20S3C2410ARM9最高工作頻率200MHzSDRAM控制器LCD控制器
4通道DMA控制器3個UART2個SPI1個I2C接口IIS音頻接口SDHOST接口2個USB接口8個10bitADC攝像頭接口45OMAP3530ARMCortex-A8+DSP最高工作頻率1G240MHz視頻處理單元支持多種協(xié)議的實時編解碼圖形處理單元
視音頻接口以太網(wǎng)接口DDR控制器USBUART、IrDA、I2C、SPI150單片機與嵌入式系統(tǒng)的價格比較zhangsx@25帶操作系統(tǒng)與不帶操作系統(tǒng)的軟件開發(fā)的區(qū)別一個處理芯片不運行操作系統(tǒng),稱為裸板程序,這個程序直接在板子上運行;基于操作系統(tǒng)的程序,在“別人的基礎(chǔ)上”更快更方便地實現(xiàn)自己的功能。26voidled_init(void){GPBCON=GPB5_out;//將LED對應(yīng)的GPB5引腳設(shè)為輸出}voidled_on(void){GPBDAT&=~(1<<5);}voidled_off(void){GPBDAT|=(1<<5);}單片機LED驅(qū)動程序27
#defineDEVICE_NAME"leds"/*加載模式后,執(zhí)行”cat/proc/devices”命令看到的設(shè)備名稱*/
#defineLED_MAJOR231//主設(shè)備號/*應(yīng)用程序執(zhí)行ioctl(fd,cmd,arg)時的第2個參數(shù)*/
#defineIOCTL_LED_ON0
#defineIOCTL_LED_OFF1//用來指定LED所用的GPIO引腳
staticunsignedlongled_table[]={
S3C2410_GPB5,
S3C2410_GPB6,
S3C2410_GPB7,
S3C2410_GPB8,
};//用來指定GPIO引腳的功能:輸出
staticunsignedintled_cfg_table[]={
S3C2410_GPB5_OUTP,
S3C2410_GPB6_OUTP,
S3C2410_GPB7_OUTP,
S3C2410_GPB8_OUTP,
};LinuxLED驅(qū)動程序28
//*應(yīng)用程序?qū)υO(shè)備文件/dev/leds執(zhí)行open(...)時,就會調(diào)用s3c24xx_leds_open函數(shù)
staticints3c24xx_leds_open(structinode*inode,structfile*file)
{
inti;
for(i=0;i<4;i++){//設(shè)置GPIO引腳的功能:本驅(qū)動中LED所涉及的GPIO引腳設(shè)為輸出功能
s3c2410_gpio_cfgpin(led_table[i],led_cfg_table[i]);
}
return0;
}LinuxLED驅(qū)動程序29LinuxLED驅(qū)動程序//應(yīng)用程序?qū)υO(shè)備文件/dev/leds執(zhí)行ioclt(...)時,就會調(diào)用s3c24xx_leds_ioctl函數(shù)
staticints3c24xx_leds_ioctl(
structinode*inode,
structfile*file,
unsignedintcmd,
unsignedlongarg)
{
if(arg>4)
return-EINVAL;
switch(cmd){
caseIOCTL_LED_ON:
//設(shè)置指定引腳的輸出電平為0
s3c2410_gpio_setpin(led_table[arg],0);
return0;
caseIOCTL_LED_OFF:
//設(shè)置指定引腳的輸出電平為1
s3c2410_gpio_setpin(led_table[arg],1);
return0;
default:
return-EINVAL;
}
}30LinuxLED驅(qū)動程序/*這個結(jié)構(gòu)是字符設(shè)備驅(qū)動程序的核心
*當(dāng)應(yīng)用程序操作設(shè)備文件時所調(diào)用的open、read、write等函數(shù),
*最終會調(diào)用這個結(jié)構(gòu)中指定的對應(yīng)函數(shù)
*/
staticstructfile_operationss3c24xx_leds_fops={
.owner=THIS_MODULE,/*這是一個宏,推向編譯模塊時自動創(chuàng)建的__this_module變量*/
.open=s3c24xx_leds_open,
.ioctl=s3c24xx_leds_ioctl,
};
31LinuxLED驅(qū)動程序
//執(zhí)行insmod命令時就會調(diào)用這個函數(shù)
//
staticint__inits3c24xx_leds_init(void)
{
intret;
/*注冊字符設(shè)備
*參數(shù)為主設(shè)備號、設(shè)備名字、file_operations結(jié)構(gòu);
*這樣,主設(shè)備號就和具體的file_operations結(jié)構(gòu)聯(lián)系起來了,
*操作主設(shè)備為LED_MAJOR的設(shè)備文件時,就會調(diào)用s3c24xx_leds_fops中的相關(guān)成員函數(shù)
*LED_MAJOR可以設(shè)為0,表示由內(nèi)核自動分配主設(shè)備號
*/
ret=register_chrdev(LED_MAJOR,DEVICE_NAME,&s3c24xx_leds_fops);
if(ret<0){
printk(DEVICE_NAME"can'tregistermajornumber\n");
returnret;
}
printk(DEVICE_NAME"initialized\n");
return0;
}32LinuxLED驅(qū)動程序//執(zhí)行rmmod命令時就會調(diào)用這個函數(shù)
staticvoid__exits3c24xx_leds_exit(void)
{
/*卸載驅(qū)動程序*/
unregister_chrdev(LED_MAJOR,DEVICE_NAME);
}/*這兩行指定驅(qū)動程序的初始化函數(shù)和卸載函數(shù)*/
module_init(s3c24xx_leds_init);
module_exit(s3c24xx_leds_exit);zhangsx@33嵌入式系統(tǒng)硬件分類集成電路通用集成電路專用集成電路可編程集成電路74系列FPGA/CPLDASICSoCzhangsx@34嵌入式系統(tǒng)硬件分類嵌入式系統(tǒng)的處理器可以分為:微控制器MCU嵌入式微處理器MPU
數(shù)字信號處理器DSP
可編程芯片F(xiàn)PGA多核處理器MCU開發(fā)趨勢MCU發(fā)展給開發(fā)工具帶來的挑戰(zhàn)集成開發(fā)環(huán)境調(diào)試、跟蹤、分析工具軟件仿真技術(shù)圖形化開發(fā)工具高效編譯工具MCU發(fā)展對工具的挑戰(zhàn)——MCU的發(fā)展趨勢而32位MCU市場增長速度超過了半導(dǎo)體市場其它部分的增長速度8位MCU市場的份額過去幾年時間里則有所下降16位MCU市場的份額增長幅度不大32位MCU的特性:■集成了復(fù)雜的模擬功能;■
大規(guī)模的內(nèi)存、高性能的內(nèi)核;■高度集成和軟件維護方面的優(yōu)勢;■在軟件編程維護方面比8位、16位MCU有著天然的優(yōu)勢;并且提供了更大的尋址空間和更高的處理器性能;■高性價比、低功耗。MCU發(fā)展對工具的挑戰(zhàn)——MCU的發(fā)展趨勢典型的32位MCU:Cortex-M3■哈佛結(jié)構(gòu);■
1.25DMIPS/MHz和0.19mW/MHz;■
Thumb-2指令集以16位的代碼密度帶來了32位的性能;■單周期乘法指令和硬件除法指令;■內(nèi)置了快速的中斷控制器;■優(yōu)越的實時特性;■中斷間的延遲時間降到只需6個CPU周期;■低功耗模式喚醒的時間只需6個CPU周期;■與ARM7TDMI?相比運行速度最多可快35%且代碼最多可節(jié)省45%?;贑ortex-M3的產(chǎn)品:LuminaryMicro公司的Stellaris系列ST公司的STM32系列……Keil
RVDS、MDK
MPLABVisualDSP++
XilinxPlatformStudio
NiosIIIDE
Workbench
IAREWARM
MCU發(fā)展對工具的挑戰(zhàn)——工程師需要什么工具?MULTICodeWarrior怎么選擇?DynamicC高性能的編譯工具—三類編譯工具免費編譯工具—GCC工具商編譯工具—KeilC、WindRiverCompiler、IARCompiler……芯片設(shè)計商編譯工具—RVCT、MPISSDEGNUTools推薦—MCU開發(fā)工具IAREWARMKeilMDKzhangsx@41嵌入式操作系統(tǒng)分類硬實時系統(tǒng)確保系統(tǒng)中的關(guān)鍵任務(wù)在確定的時間得到響應(yīng),不能有失敗的情況,否則會出現(xiàn)嚴(yán)重后果軟實時系統(tǒng)設(shè)計的時候是有響應(yīng)時間要求的,但是偶爾某些任務(wù)的響應(yīng)時間超過這個限制也不會有嚴(yán)重的后果非實時系統(tǒng)無響應(yīng)時間的要求zhangsx@42嵌入式操作系統(tǒng)一覽zhangsx@43常見嵌入式操作系統(tǒng)(第一類)第一類以Wince、Linux、Android為代表屬于大型操作系統(tǒng),擁有內(nèi)核任務(wù)調(diào)度、菜單界面、多媒體、網(wǎng)絡(luò)、文件存儲、外設(shè)驅(qū)動等一系列完善的功能,但這類操作系統(tǒng)屬于非實時操作系統(tǒng),往往用于辦公、娛樂、人機接口等對時間要求不高的場合。此外因為功能太完善,對硬件的要求很高,最低配置CPU需要ARM9200MHz,內(nèi)存需要32MByte,支持MMU內(nèi)存管理單元,標(biāo)配彩屏。zhangsx@44常見嵌入式操作系統(tǒng)(第二類)第二類以VxWorks為代表屬于功能豐富的嵌入式實時操作系統(tǒng),功能豐富。往往用于高實時、高可靠的軍工、航空航天、工業(yè)自動化領(lǐng)域,對硬件要求也比較高。zhangsx@45常見嵌入式操作系統(tǒng)(第三類)第三類以uC/OS-II為代表只有一個搶占式多任務(wù)實時操作系統(tǒng)的任務(wù)內(nèi)核,此外還提供一些內(nèi)核管理的函數(shù)接口及必要的擴展功能,其它的功能庫如菜單界面、網(wǎng)絡(luò)等都需要自己擴展,這類操作系統(tǒng)主要應(yīng)用于中低端小型的項目中,成本要求高,需求多樣,但一般不是很復(fù)雜,實時性有要求,但不苛刻,往往都是消費類或者一般的工業(yè)自動化設(shè)備,比如白色家電的控制系統(tǒng)、小型監(jiān)控、傳感器的測試平臺、儀器儀表、小型工業(yè)自動化領(lǐng)域取代PLC,降低成本等。zhangsx@46uC/OSII免費的公開源碼實時操作系統(tǒng)內(nèi)核提供任務(wù)調(diào)度和管理、時鐘管理、任務(wù)間同步與通信、內(nèi)存管理和中斷服務(wù)等功能最多支持64個任務(wù),分別對應(yīng)優(yōu)先級0~63,其中0為最高優(yōu)先級可剝奪實時多任務(wù)內(nèi)核調(diào)度工作的內(nèi)容分為兩部分:最高優(yōu)先級任務(wù)的尋找和任務(wù)切換幾款典型的嵌入式操作系統(tǒng)介紹zhangsx@47內(nèi)核是針對實時系統(tǒng)的要求來設(shè)計實現(xiàn)的,相對比較簡單,可以滿足較高的實時性要求
但是沒有網(wǎng)絡(luò)功能和文件系統(tǒng),對于像媒體播放、需要網(wǎng)絡(luò)和圖形界面支持的應(yīng)用就比較差uC/OSII幾款典型的嵌入式操作系統(tǒng)介紹zhangsx@48幾款典型的嵌入式操作系統(tǒng)介紹uC/OSIIWindows系列的嵌入式操作系統(tǒng)VxWorks嵌入式Linux幾款典型的嵌入式操作系統(tǒng)介紹zhangsx@49VxWorks嵌入式實時操作系統(tǒng)VxWorks是風(fēng)河(WindRiver)公司開發(fā)的一款商用硬實時操作系統(tǒng)支持主流的32位CPU,包括x86、68K、PowerPC、MIPS、ARM等基于微內(nèi)核結(jié)構(gòu),由400多個相對獨立的,短小精悍的目標(biāo)模塊組成,可裁剪性和可配置性相當(dāng)出色幾款典型的嵌入式操作系統(tǒng)介紹zhangsx@50VxWorks的評價Vxworks是一款非常出色的嵌入式實時操作系統(tǒng),但是它是不公開源碼的商業(yè)化操作系統(tǒng),價格比較高為追求系統(tǒng)的實時性而設(shè)計的,并不是以通用OS為設(shè)計目標(biāo)。去掉了一些OS模塊,因為這些模塊在某種程度上會影響系統(tǒng)的實時性(如在內(nèi)存管理中沒有采用頁面管理模式,采用的是平板式內(nèi)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市場門面租賃合同書
- 文字作品委托代理合同樣本
- 廣告制作安裝合同
- 終止租賃合同案例分析
- 公司合伙經(jīng)營協(xié)議書樣本
- 家庭裝飾協(xié)議書樣本
- 國際貿(mào)易獨家經(jīng)銷協(xié)議范本
- 仿寫標(biāo)題2:舊房回遷房交易協(xié)議
- 涉外許可證合同的保密協(xié)議
- 企業(yè)勞動合同問答
- 人教版小學(xué)數(shù)學(xué)四年級上冊教材分析
- 國家執(zhí)業(yè)醫(yī)師資格考試題庫(針灸學(xué))
- 茅臺紅酒推銷文案策劃案例
- 期中達標(biāo)測試卷(試題)-2024-2025學(xué)年統(tǒng)編版(2024)語文一年級上冊
- 2024年地質(zhì)礦產(chǎn)勘測行業(yè)技能鑒定考試-地質(zhì)錄井技能考試近5年真題集錦(頻考類試題)帶答案
- 五年級上冊小數(shù)四則混合運算練習(xí)100道及答案
- 心衰健康宣教課件
- 2024年廣東省公需課《百縣千鎮(zhèn)萬村高質(zhì)量發(fā)展工程與城鄉(xiāng)區(qū)域協(xié)調(diào)發(fā)展》考試答案
- 鉆孔灌注樁樁工程隱蔽驗收記錄表格及填寫范本
- 起重機吊裝方案.doc
- 安全隱患排查記錄(日周月
評論
0/150
提交評論