是电脑软体与硬体的综合体.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
是电脑软体与硬体的综合体

Programming Embedded System in C and C++ What is Embedded System? 是電腦軟體與硬體的綜合體,亦可涵蓋機械或其他附屬裝置;整個綜合體設計的目的,在於滿足某種特殊功能. 例如 : ABS,微波爐,PS,PDA,電視,滑鼠…等. C:眾望所歸 C的優點: 跨越各個系統平台. 輕巧而容易學習的語言. 是一個的低階的高階語言. C++的優點: 包含C的優點 加強資料抽象並提供物件導向. 適合於大型研發團隊的崁入式軟體發展 一個典型的崁入式系統 “Hello World” too Hard P2LTCH: Port2 I/O Latch Register 與CPU在同一晶片,所存的是晶 片外八個I/O pin的latch狀態. 崁入式系統軟體開發程序 硬體與軟體的初始化程序 記憶體的種類 測試記憶體 Data bus test Address bus test Chip test 週邊 On-chip peripheral :常用的裝置通常包含在與處理器相同的晶片中. External peripheral:位於處理器旁邊的硬體裝置 Device Driver的設計哲學 Device driver的唯一目的就是要將所有的硬體隱藏. 他應該是整套軟體中唯一能和硬體溝通的窗口. 他能直接讀取或寫入特定裝置控制及狀態暫存器, 如果裝置發生中斷,那ISR也要整合到裝置驅動程 式. 控制暫存器與狀態暫存器 是週邊裝置與崁入式處理器之間的基本介面. 週邊裝置可分別稱為memory-mapped peripheral跟I/O mapped peripheral. Memory-mapped peripheral較易控制. volatile unsigned short *pP2LTCH=(unsigned short*) 0x7200005E; void toggleLed(void) { *pP2LTCH ^= LED_GREEN; // read,XOR,set } 作業系統 要提供虛擬的硬體作業平台,簡化應用程式的編寫. 作業系統可有可無,但適合複雜的崁入式系統. 介紹ADEOS(A Decent Embeded OS) 原始碼不超過1000行,其中有四分之三與硬體平台無關,而且是用C++撰寫,其餘的部份和硬體與處理器的型式有關,用組語寫成. Task 作業系統的任務就是負責協調輪替Task,由他決定那一個Task在那一個時間使用CPU. Scheduler 在作業系統中負責要挑選要執行那個Task,並且管理各個Task優先程度的機制.有 FIFO , Shorest First , Round Robin …等. 多數崁入式系統需要Priority-based排程原則,所以需要有scheduling point. Scheduling point是scheduler檢查各個Task的優先程度的時間點. scheduling point通常在:建立task及刪除task及 clock tick. Context Switch 由一個Task切換到另一個Task的程序 因為實際的切換程序與處理器有關,所以這部分 的程式碼以組語來編寫. Task Synchronization 使用Mutex來保護多個task所共享的資料, 讀取或修改Mutex之前必須先關閉中斷. 系統整合 * * 記憶體 處理器 輸入 輸出 Intel 80188EB 崁入式處理器 P2LTCH:0100 0000 Intel 80188EB 崁入式處理器 P2LTCH:0000 0000 綠色LED 紅色LED C/C++ C/C++ 組語 compiler compiler assembler Object code Object code Object code Linker Relocation code 定位器 可執行檔 Reset: ;Reset Code ;(in assembly) Jmp hw_init Hw_init: ;Hardware ;Initialization ;(in assembly) … Jmp startup Startup: ;Startup Code ;(in assembly) … Call main Main() { /*the C/C++ code Start her

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档