资源描述:
《是电脑软体与硬体的综合体》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ProgrammingEmbeddedSysteminCandC++WhatisEmbeddedSystem?是電腦軟體與硬體的綜合體,亦可涵蓋機械或其他附屬裝置;整個綜合體設計的目的,在於滿足某種特殊功能.例如:ABS,微波爐,PS,PDA,電視,滑鼠…等.7/14/20211C:眾望所歸C的優點:跨越各個系統平台.輕巧而容易學習的語言.是一個的低階的高階語言.C++的優點:包含C的優點加強資料抽象並提供物件導向.適合於大型研發團隊的崁入式軟體發展7/14/20212一個典型的崁入式系統記憶體處理器輸入輸出7/
2、14/20213“HelloWorld”tooHardP2LTCH:Port2I/OLatchRegister與CPU在同一晶片,所存的是晶片外八個I/Opin的latch狀態.Intel80188EB崁入式處理器P2LTCH:01000000Intel80188EB崁入式處理器P2LTCH:00000000綠色LED紅色LED7/14/20214崁入式系統軟體開發程序C/C++C/C++組語compilercompilerassemblerObjectcodeObjectcodeObjectcodeLinker
3、Relocationcode定位器可執行檔7/14/20215硬體與軟體的初始化程序Reset:;ResetCode;(inassembly)Jmphw_initHw_init:;Hardware;Initialization;(inassembly)…JmpstartupStartup:;StartupCode;(inassembly)…CallmainMain(){/*theC/C++codeStarthere*/…}23417/14/20216記憶體的種類記憶體RAM混合型ROMDRAMSRAMFlashN
4、VRAMEPROMPROMMaskedEEPROM7/14/20217測試記憶體DatabustestAddressbustestChiptest7/14/20218週邊On-chipperipheral:常用的裝置通常包含在與處理器相同的晶片中.Externalperipheral:位於處理器旁邊的硬體裝置7/14/20219DeviceDriver的設計哲學Devicedriver的唯一目的就是要將所有的硬體隱藏.他應該是整套軟體中唯一能和硬體溝通的窗口.他能直接讀取或寫入特定裝置控制及狀態暫存器,如果裝置發
5、生中斷,那ISR也要整合到裝置驅動程式.7/14/202110控制暫存器與狀態暫存器是週邊裝置與崁入式處理器之間的基本介面.週邊裝置可分別稱為memory-mappedperipheral跟I/Omappedperipheral.Memory-mappedperipheral較易控制.volatileunsignedshort*pP2LTCH=(unsignedshort*)0x7200005E;voidtoggleLed(void){*pP2LTCH^=LED_GREEN;//read,XOR,set}7/14
6、/202111作業系統要提供虛擬的硬體作業平台,簡化應用程式的編寫.作業系統可有可無,但適合複雜的崁入式系統.介紹ADEOS(ADecentEmbededOS)原始碼不超過1000行,其中有四分之三與硬體平台無關,而且是用C++撰寫,其餘的部份和硬體與處理器的型式有關,用組語寫成.7/14/202112Task作業系統的任務就是負責協調輪替Task,由他決定那一個Task在那一個時間使用CPU.運作中(Running)備妥(Ready)等待中(Waiting)7/14/202113Scheduler在作業系統中負
7、責要挑選要執行那個Task,並且管理各個Task優先程度的機制.有FIFO,ShorestFirst,RoundRobin…等.多數崁入式系統需要Priority-based排程原則,所以需要有schedulingpoint.Schedulingpoint是scheduler檢查各個Task的優先程度的時間點.schedulingpoint通常在:建立task及刪除task及clocktick.7/14/202114ContextSwitch由一個Task切換到另一個Task的程序因為實際的切換程序與處理器有關,
8、所以這部分的程式碼以組語來編寫.7/14/202115TaskSynchronization使用Mutex來保護多個task所共享的資料,讀取或修改Mutex之前必須先關閉中斷.7/14/202116系統整合“HelloWord“Task負責閃爍LED的TaskLEDDriverTimerDriverADEDSOS串列埠Driver硬體平台軟體硬體7/14/202117