目錄
嵌入式軟件
編輯嵌入式軟件是為控制通常不被視為計算機的機器或設備而編寫的計算機軟件,通常被稱為嵌入式系統。它通常是為其運行的特定硬件專門設計的,并有時間和內存限制。該術語有時可與固件互換使用。
一個精確而穩定的特點是,沒有或不是所有的嵌入式軟件的功能是通過人的界面啟動/控制的,而是通過機器界面。
制造商在汽車、電話、調制解調器、機器人、電器、玩具、安全系統、心臟起搏器、電視和機頂盒以及數字手表等電子產品中構建嵌入式軟件。這樣的軟件可以非常簡單,例如在一個有幾千字節內存的8位微控制器上運行的照明控制,適當的處理復雜程度由假定的正確計算框架(基于隨機算法的方法)決定。然而,在路由器、光網絡組件、飛機、導彈和過程控制系統等應用中,嵌入式軟件可能變得非常復雜。
操作系統
編輯與通常使用macOS、Windows或Linux等操作系統的標準計算機不同,嵌入式軟件可能不使用操作系統。當它們使用操作系統時,它們可以從各種操作系統中選擇,通常是實時操作系統。嵌入式軟件的代碼通常用C或C++編寫,但各種高級編程語言,如Java、Python和JavaScript,現在也普遍用于針對微控制器和嵌入式系統。匯編語言也經常被使用,特別是用于啟動和中斷處理。一些軍事和航天項目中使用了ada。
與應用軟件的區別
編輯大多數消費者都熟悉在計算機上提供功能的應用軟件。然而,嵌入式軟件通常不那么明顯,但它的復雜性也不低。與應用軟件不同,嵌入式軟件有固定的硬件要求和能力,添加第三方硬件或軟件受到嚴格的控制。
嵌入式軟件在制造時需要包括所有需要的設備驅動程序,這些驅動程序是為各種硬件設備編寫的。這些設備驅動程序被稱為BSP(板級支持包),形成一個軟件層,包含特定硬件的驅動程序和其他例程,使特定的操作系統(傳統上是實時操作系統,或RTOS)在特定的硬件環境(計算機或CPU卡)中運行,與RTOS本身集成。該軟件高度依賴于CPU和所選擇的特定芯片。大多數嵌入式軟件工程師至少有一些閱讀原理圖和閱讀組件的數據表的知識,以確定寄存器和通信系統的用法。十進制、十六進制和二進制之間的轉換,以及使用位的操作都很有用。
網絡應用經常被用來管理硬件,盡管XML文件和其他輸出可以被傳遞到計算機上顯示。帶有文件夾的文件系統經常被使用,然而SQL數據庫經常不存在。
軟件開發需要使用交叉編譯器,它在計算機上運行,但為目標設備生成可執行代碼。調試需要使用在線仿真器和調試硬件,如JTAG或SWD調試器。軟件開發人員通常可以獲得完整的內核(OS)源代碼。
內存和RAM的大小可能差別很大。有些系統在16KB的閃存和4KB的RAM中運行,CPU運行頻率為8MHz,其他的則與當代計算機相當。這些空間要求導致在C或嵌入式C++中完成的工作比在C++中完成的多。
像BASIC(而例如Parallax Propeller可以使用編譯的BASIC)和Java(Java ME Embedded 8.3可用于例如ARM Cortex-M4、Cortex-M7微控制器和Raspberry Pi和Intel Galileo Gen.
處理器之間的通信協議
編輯以及處理器和其他組件之間的通信是必不可少的。除了直接的內存尋址外,硬件層面的常見協議包括I2C、SPI、串行端口、1-Wire、Ethernets和USB。
為嵌入式系統設計的通信協議可以從InterNiche Technologies和CMX Systems等公司獲得封閉源代碼。開源協議可從uIP、lwip和其他公司獲得。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/189944/