<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式產品開發的基本流程和注意事項

工程師進階筆記 ? 來源: 圓錐的布袋 ? 2024-01-26 11:08 ? 次閱讀

俗話說,只會寫代碼的工程師不是好的工程師,這句話不是沒有道理的,初學者可能不理解,但過來的老司機肯定知道。 一款產品如果需要長期維護、銷售,肯定避免不少開發文檔。這里給大家講述一下開發嵌入式產品常見的文檔:

1)產品需求文檔:描述產品的特性

2)功能需求文檔:描述產品必須具備的功能

3)工程說明文檔:描述系統實現的方法和滿足需求的手段

4)硬件說明文檔:對有關硬件進行描述

5)軟件或固件說明文檔:描述特定處理器下設計微程序以及固件的方法

6)測試說明文檔:描述必須測試的項目和驗證系統正常運行的方法

需求定義

需求定義用來描述產品的基本功能,對于公司來說,需求一般由該公司的市場銷售部門或該公司的主要客戶來制定;而對小公司或愛好者(就像armjishu.com里的愛好者一樣),技術人員可以自己負責定義需求,并撰寫成文檔。

通常需求定義是圍繞以下幾個因素而來:

1)系統的用途(定義需要系統實現的各種功能)

2)實際輸入輸出是何種方式實現的(為元器件的選型做參考)

3)系統是否需要操作界面(涉及軟件層操作系統的選型)

其實對小型的嵌入式產品來說,定義需求是非常關鍵的,因為需求清楚了,就可以避免后續開發過程中出現的諸如隨機存儲器(RAM)容量不足或所選的CPU速度不能滿足處理的需要等一系列問題。

下面舉個簡單的實際例子,供大家來參考:

系統描述:用于從化溫泉的水泵換水系統電源輸入:使用來自于變壓器的9V~12V直流電水泵功率:375W。

1)使用單相交流電機,由機械電氣進行控制

2)如果溫泉池處于低水位,則輸入開關閉合信號,以禁止水泵繼續運行

3)用戶可以自由設置水泵運行或關閉的時間長度

4)除了自動設置控制外,還需要提供一種人工裝置來允許維護人員靈活控制水泵進行維修

5)水泵開啟/關閉/人工干預的時間可以30分鐘為單位,在30分鐘到23小時的范圍內進行調節

6)顯示設備可以指示水泵的開關狀態,剩余時間,以及水泵是否處于人工干預模式

7)具備監視低水位的功能,并顯示在屏幕上

如果需要商用,那么除了上面給出的功能要求外,其設計文檔中還要包括電磁干擾(EMI)和電磁兼容性(EMC認證、安全認證以及使用環境(包括環境溫度、濕度、鹽霧腐蝕等)等方面的需求。

實際上,以上的需求確定之后,接下來就是要考慮選擇一款合適的CPU來滿足和實現系統的功能,那么我們就要將上述7點用戶能夠理解的需求轉化成我們專業領域的需求,轉化如下,大家可以參考一下:

●a.處理或更新輸入輸出信號的速率究竟需要多快?

解釋:目前嵌入式處理器的主頻一般都在幾十兆到幾百兆不等,單片機的主頻一般是幾十兆,Arm處理器可以到幾百兆;我們主要看這個產品是否需要對大量數據進行處理,或是否需要對緩沖區進行頻繁操作,是否有類似的占用CPU資料的工作要做,這就決定我們要選擇一款合適的處理器來讓該產品得到最佳的性能。

●b.是否可使用單片集成電路(專用IC)或FPGA來完成數據處理?

解釋:如果可以的話,就不一定要選擇處理器來做,用這些專業芯片就能替代。

●c.系統是否有大量的用戶輸入輸出操作(如對開關和顯示設備進行頻繁操作)?

解釋:如果有的話,要在處理器選型的時候考慮這些因素,選擇一款能夠滿足以上要求的CPU。

●d.系統與其他外部設備之間需要使用何種接口?

解釋:這也是需要評估處理器的一個關鍵問題,選擇具備這些接口功能的處理器會方便于我們的電路設計以及軟件編程。

●e.設計完成后是否有可能需要進行改動,或在設計過程中系統需求是否可能出現變化?我們的設計是否能適應系統需求的變化?

解釋:要避免選擇的處理器剛好滿足當前要求,這樣當以后事務要求逐漸提高,處理器性能如果還有一定空間的話,那么就可以重用目前的產品;第二個就是要選擇不會即將停產的芯片,很多處理器用得很廣乏,可以借鑒的資料也很多,但是很可能這款芯片已經在市場上流行很長時間了,芯片廠商已經推出更新換代的替代品了,如果你選擇了這款芯片,很可能1,2年后就買不到這款處理器芯片了,導致不得不重新選擇新的處理器,重新設計產品,這樣的既耗費時間,金錢,更消耗人力,延誤市場的戰機。

處理器的選擇

2.1 需要使用的I/O管腳數量

多數處理器都是使用內存和外部管腳來控制輸入輸出設備的,通常處理器都會有內置ROM和RAM的,如果內置的內存就已經滿足需要,那么處理器就可以節省產生引用外部存儲器信號的引腳,這樣處理器可為輸入輸出提供較多的設備管腳(某些處理器支持外部RAM或ROM的使用,但對外部存儲器進行訪問時,處理器一般需要占用8條到10條I/O管腳)。

還有,有些處理器帶有專用的內部定時時鐘,這類時鐘也需要使用一個端口管腳來實現某些定時功能;某些處理器中還具有漏極輸出和高電流輸出能力,可以方便的直接驅動繼電器或電磁鐵線圈,而不再需要額外驅動硬件的支持。

當對處理器I/O管腳進行計數時,我們一定要把使用處理器內部功能(如串行接口和定時器等)時限制使用的某些管腳考慮在內。

2.2需要使用的接口數量

嵌入式處理器的主要功能是與應用環境中的硬件進行交互操作,這不僅需要外部硬件對接口具有實時處理能力,而且還要求處理器必須以足夠快的速度對接口數據進行有效處理。

舉例來說,AT91RM9200是ATMEL公司出品的一款工業級Arm9微處理器,它基于Arm920T核心,處理速度可達200MIPS,同時處理器內部配置了USB、Ethernet、支持RS485紅外串口、IIC、SPI、SSC等輸出接口,其目的是更方便的利用這些接口開發出嵌入式產品。

需要注意的是,由于許多處理器具有的局限性沒有在處理器技術資料中給予足夠的說明,因此一定要仔細閱讀處理器的指標說明。例如,在閱讀資料的過程中發現,該資料可能會說明其串行接口可以在最高波特率下工作,但仔細研究該處理器的指標數據時,可能會發現并非該串口接口的所有操作模式都可以在最大波特率下運行。

深入了解并明確接口要求的方法:可以自己動手編寫一些程序來對接口進行實際測試,以確認某種處理器是否可以滿足應用的要求;因為,確認某個處理器是否可以滿足接口要求并非是一件簡單的任務。

2.3需要使用的內存容量

決定內存容量的大小是嵌入式產品設計過程中的一個基本步驟,如果對所需內存容量估計過高,那么我們就有可能會選擇成本較高的解決方案;反之,如果低估了所需內存容量,就有可能因系統需要重新設計而導致項目不能按時完工。

●a.RAM和ROM的區別:

存儲器分為隨機存儲器(RAM)和只讀存儲器(ROM)兩種。其中ROM通常用來固化存儲一些生產廠家寫入的程序或數據,用于啟動電腦和控制電腦的工作方式。而RAM則用來存取各種動態的輸入輸出數據、中間計算結果以及與外部存儲器交換的數據和暫存數據。設備斷電后,RAM中存儲的數據就會丟失。

●b.隨機存儲器(RAM)的選擇:

RAM容量的預測是比較直觀的,我們只需把所有變量數目與所有內部緩沖區的容量以及先入先出(FIFO)隊列長度和堆棧長度直接相加,就能得到所需RAM容量的總數。

如果所需內存容量超出這類處理器的尋址范圍,那么只能通過增加外部RAM來滿足需求;然而,增加外部RAM的同時將會占用一定數量的I/O管腳來對擴展內存進行尋址,這種擴展往往會影響到處理器來實現應用的初衷。

需要注意的一個問題是,某些微處理器限制RAM的使用,這種限制的目的是為了借用部分內存存儲器作為內部寄存器組使用。除了以上因素外,所使用的開發語言也對所需RAM容量有一定的影響,某些效率較低的編譯程序可能會占用大量寶貴的RAM空間。

●c.只讀存儲器(ROM)的選擇:

系統所需ROM的大小應該是系統程序代碼與所有基于ROM的數據表容量之和。預測所需ROM空間容量比較困難的部分是預測程序代碼的長度,解決這類問題的方法只能是隨著經驗的逐步積累來提高預測精度。

然而,最重要的并不是精確計算程序的代碼長度,而是要清楚地估算代碼長度的上限。根據經驗,如果80%的ROM空間被代碼占用的話,那么就太擁擠了,除非能確保系統需求不會有任何變化,否則至少要為可能發生的變化保留足夠的備用ROM空間。

在多數情況下,我們可以試著在ROM中寫入一部分程序代碼,以便觀察代碼占用空間的情況,對于帶有內部ROM的微處理器系統來說,系統程序都只能占用有限的程序存儲器空間。

d.經驗之談:

ROM與RAM使用情況相類似,程序代碼長度與所選用的開發語言有關。舉例來說,使用匯編語言編制的程序要比使用C語言編制的程序占用少得多的空間。

對于追求低成本的小型系統來說,一般不提倡使用高級程序設計語言;這是因為雖然高級語言在使用、調試以及維護方面來的比較容易,但同時這類語言需要占用更多的內存空間和大量的處理器時鐘周期。

如果開發語言選擇不當,其后果可能是把一個簡單、低成本的單片機系統變為一個需要使用配置若干兆字節RAM空間的64位嵌入式處理器系統。

2.4需要使用的中斷數量

中斷的主要用途是向中央處理器通報當前發生的某類特殊事件,這類事件包括諸如定時器超時事件、硬件引發的事件等。

需要強調的是,多數系統設計師經常過多地使用中斷功能,實際上,中斷的主要作用只是中斷現行程序的執行,中斷最適用于必須要求中央處理器立即提供服務的事件。

在需要設計和使用中斷的情況下,一定要首先確認實際需要的中斷數量,然后必須考慮到系統內部占用的中斷資源,如果需要使用的中斷資源超出了處理器可以接收的中斷數量,我們就應借助于某些特殊手段來減少所需中斷信號的數量。

2.5實時處理方面的考慮

實時處理是一個涉及范圍很廣的題目,其主要內容與系統的處理速度有密切聯系,實時事件是嵌入式微處理器需要關注的主要任務。

例如:處理器跟串口進行通信時,通常通過上層軟件(為了保證實時性,進行任務切換的時間足夠短),然后再占用處理器去執行從串口拿數據的任務,并且要保證處理器的速率比串口速率快,那么處理器可以以最快的速度反應并處理串口的相關的任務,這樣就可以達到最大的實時性;

另一方面,如果處理器本身就內置了串口控制器、或DMA、或LCD的控制器等,那么它就可以保證直接使用這些處理器內置的接口去控制串口、液晶屏等對象,以達到最大的實時性能。

2.6廠商是否提供好的開發工具和環境

選擇一款新的處理器,很可能就要使用一個新的開發工具和開發環境,包括軟件的編譯環境等;對于開發日程安排比較緊張的項目來說,開發人員往往無法抽出專門的時間來研究,熟悉新的開發工具,從而也無法全面掌握開發工具的使用技巧。

并且,有的開發工具價格也比較昂貴,而且很可能只能從制造商那里購買,還有仿真工具也是需要付費的,這些對我們在選擇一款處理器的時候,是都應該考慮進去的成本因素。

2.7處理器速度方面的考慮

主要考慮幾個細節問題:

1)處理器速度與處理器時鐘之間的關系

例:單片機8031為例,由該處理器可以適應12MHz頻率的輸入時鐘,因此就可以認為它是一個速度為12MHz的處理器了嗎?不是,實際上,由于該處理器內部邏輯電路執行每條指令需要多種不同頻率的時鐘脈沖,因此該處理器內部時鐘電路要對輸入的12MHz時鐘12分頻處理;最終為處理器提供的只是1MHz主頻。

有的時候,80MHz主頻的處理器(80MHz輸入時鐘,80MHz執行速度)要比200MHz主頻的處理器(200MHz輸入時鐘,50MHz執行速度)執行速度要快得多。

2)處理器指令系統

如果不需要執行復雜數學運算的應用,那么RISC指令集的處理器要快;如果執行比較復雜的操作,則CISC指令集的處理器速度要更快。

3)芯片結構體系

現在有的芯片是將多個不同功能的核封裝到一個芯片IC中,定制某種特定的功能,比如DSP,其中包括用于實現數字解碼、乘法運算的硬件乘法器和移相器等;然而,這類處理器也由其自身局限,往往在執行某些普通操作之前必須要使用額外的指令來把RAM中的數據放入內部寄存器,相比之下,一般處理器只允許對RAM中的數據進行直接訪問。

2.8 只讀存儲器(ROM)的選擇

多數工程項目在其開發階段一般使用可擦寫可編程只讀存儲器(EPROM)或快速存儲器(Flash Memory);這類可擦寫可重復寫入存儲器的主要優點是可多次使用。一旦產品研制完畢,就可以用一次寫入設備(OTP)來取代EPROM存儲器,一次性寫入器件的外觀與封裝幾乎與EPROM完全一樣,惟一不同之處就是其表面沒有擦出窗口,并且價格要比EPROM低很多。

但是,另外一種情況,如果該產品今后需要升級固件,或在線編程,那么我們還是應該選擇可擦寫可編程的存儲器。

還有一種是非易失的存儲器,例如制造一臺電視機,就有可能需要該設備具有記憶上次觀看最后一個頻道的功能,即使在切斷電源后,該頻道信息也不會丟失。

總結:所以,根據不同的產品選擇不同的存儲器也是一門很講究的學問。

2.9電源的要求

在某些設計中方案中,電源根本不存在問題,對電源唯一的要求就是可以為電路正常供電;實際上,選擇電源主要要考慮三個方面的問題:

1)要注意設計方案中是否對電源的供電方式有所限制,例如,是否像大多數家用電器那樣需要使用屋內墻上的電源插座供電,或是是使用USB接口供電

2)看系統是否需要使用電池供電方式,如果這樣,我們就要考慮選擇那種對驅動電流要求不高的處理器,然后再為其選擇合適的電池。

3)休眠電流:許多微處理器都支持低功率運行模式,在這種模式下,系統的CPU處理器將處于休眠狀態,同時所有外部設備的電源供電都被暫時切斷,以便減少系統的電能消耗;某些微處理器在這種方式下需要的維持電流極小,但也有一些微處理器在這種方式下并不能節省多少功率;不管怎樣,我們都要對系統在節點模式下的工作時間有一個估測,以便對具體情況選擇使用的電池。

總之,無論哪種情況,我們都要對系統需要的供電總功率做到心中有數。

2.10設備工作環境的要求

環境要求主要內容是考慮溫度,濕度等;如果系統必須在溫度范圍較大的環境下運行,諸如用于軍事設備或汽車的控制系統,那么處理器可選擇的范圍就要小得多;

并且由于大范圍溫度變化的設備通常比較昂貴,因此在設計過程中就不能再根據一般工業級器件的價格來制定預算。

2.11 使用周期成本

如果我們的產品是mp3,在一般情況下,可以不必考慮在用戶現場對mp3程序進行修改的問題,也不用為是否可以得到設備備件而著急,這是因為mp3是一種消費產品;

換句話說,如果我們的產品是價值幾萬塊的工業設備并且需要常年不斷地運行,那么我們在產品設計過程中就必須從長計議了:

a.首先,我們需要選擇一種處理器或存儲體系結構都可以升級的器件

b.考慮到程序升級的可能,我們還要選擇較大容量的內存

c.最后要注意的則是所選處理器是否可以長期供貨,這一點的重要性遠遠大于處理器的價格

除了上面的考慮之外,使用周期成本也是在設計之初要考慮的因素??偟膩碚f,生產的部件越多,則可以接受的前期開發成本也就越大。如果產品是mp3,我們可能會選擇一個低價微處理器,同時投入一大筆錢來開發控制mp3的軟件。

但如果我們的產品是價格昂貴的工業用設備,那么在產品的使用期內,該設備的銷售量將只有幾百臺,毫無疑問,開發這種產品最重要的就是降低開發成本(降低開發成本而不是硬件成本?。。。?;除此之外,工業產品的成本也不像家用電器或消費電子產品那么敏感。綜上所述,開發工業產品當然要選擇一種便于進行開發并且有助于縮短開發過程的處理器。

2.12 處理器相關資料是否豐富

如果該款處理器在市場上已經用得很廣了,那么我們可以獲取更多的相關資料,觀察人家的產品是如何使用處理器的,也能在網絡上找到不少的相關的設計資料以及相關技術主題,這樣就進一步降低了技術門檻,確保了使用該處理器做產品可行性,減低了風險;

反之,如果是廠商全新推出的處理器,因為市場上還沒有可以借鑒的產品,我們就只能從全英文的芯片手冊開始閱讀,了解這款芯片,這樣開發周期不僅變長,而且不可預知的風險也很大。

開發成本的預測和估計

大多數項目或產品都有專人負責預測整個過程的開發成本,對于任何項目來說,其開發成本主要包括人力和材料開銷。

預測開發成本在很大程度上需要根據經驗,這也是為什么大型公司一般指定有經驗的高級工程師來完成這一任務的原因,除了人力和材料的開銷之外,總結下來,還有以下的開銷:

1)人力成本(開發人員、管理人員、銷售人員、其他行政等輔助人員)的開銷

2)材料(硬件物料和損耗,有時候需要投幾次PCB版才把產品穩定下來)的開銷

3)開發系統和開發工具軟件的開銷

4)硬件工具的開銷(例如示波器、仿真器等)

對于整個項目來說,上述的開銷將直接可能導致產品成本增加,其中人力成本最為關鍵,尤其是在中國,呵呵。

產品開發設計文檔(需要包括硬件和軟件兩個方面)

4.1 硬件文檔撰寫思路

1)首先是需求定義或產品規格

如果這些是產品最終目標的話,那么產品對硬件和軟件的要求就是技術方案的最終目標;對硬件和軟件的要求是從定義用戶界面和系統功能開始的。

2)其次,根據需求,系統整體定義文檔中給出硬件接口的具體定義:

定義硬件最有效的方法是從需求開始描述,由于硬件必須支持系統定義的所有功能,因此硬件定義是與系統說明不可分割的;

例如,我們設計一個定時器(事先需求說明定時器不能與個人電腦連接,故無法使用CRT顯示時間),我們只有兩種選擇:一種是使用發光二極管LED),另一種是使用液晶顯示器件(LCD);盡管LCD的顯示效果比較好,但考慮到定時器要常年位于戶外,并且早期LCD顯示器不能在低溫下工作,最終還是選擇LED設備(這整個過程描述了我們硬件選型時的一個思路,這個是密切跟需求掛鉤的)。

3)一旦完成了系統整體說明文檔,就開始進行系統設計:

首先要對硬件說明的內容進行細化,包括添加能讓工程師理解的設計意圖,以及軟件工程師圍繞硬件進行程序設計時需要使用的硬件信息等。

完成硬件電路板說明文檔后,我們還要在該文檔中增加一個用來描述系統的原始要求的前言部分,包括說明方案的設計思路和方法,除此之外,還要附上軟件工程師用來對硬件進行控制所需的各類信息,這類信息主要包括如下內容(軟件工程所需信息):

●內存和I/O端口地址(如果需要,還可以提供內存映射圖)

●可用內存容量

●狀態寄存器每一位的定義

●每個端口管腳的用途

●外部設備的驅動方法(例如,說明輸入定時器電路的時鐘頻率等)

●其他由管軟件人員設計程序需要了解的信息

對于比較復雜的系統來說,硬件文檔中經常使用兩個獨立的部分來進行說明;其第一部分用來描述硬件指標和工作原理,第二部分則主要為軟件人員提供程序設計需要的信息。

4.2軟件文檔撰寫思路

1、軟件文檔與硬件文檔的組織方法類似,軟件要求文檔的主要內容則是定義軟件要實現的功能;一種是在簡單項目設計過程中,軟件定義也可以只對一種電路板使用的軟件給予描述;對較復雜的項目來說,由于參與這種項目的軟件人員分別負責設計驅動不同硬件部分的代碼(同一電路板),因此每個軟件人員可能會為自己的設計代碼指定不同的定義,這類軟件說明需要提供下列的內容:

(1)論述包括需求定義、工程指標、硬件參數等實施項目需要的內容
(2)說明軟件之間、處理器之間或處理器與其內部器件之間使用的通信協議:其內容應包括對緩沖區接口機制、命令/應答協議、信號控制等協議的具體說明。
(3)借助流程圖、偽代碼或者其他可能的方法來描述軟件的實現方法和過程

2、軟件與硬件所考慮的不同之處(此經驗方便技術總監或其他相關管理者參考,因為無論是多高深的技術管理者,要么是硬件出身,要么是軟件出身,要么就是非技術出身)

a.軟件的靈活性遠遠大于硬件,要讓軟件人員搞清楚某個軟件的內部格式是非常困難的任務,解決的辦法:詳細定義其他程序員需要了解的編程接口具體內容,以及其他工程人員在實施開發項目過程中需要使用的技術細節信息。

b.軟件工程師只有在收到硬件說明文檔后,才有可能知道如何對系統硬件進行操作;而硬件人員一般不需要了解軟件程序的技術細節。

c.由于軟件易于更改,因此程序內容經常會按銷售人員提供的要求發生變更,在某些情況下,軟件文檔的內容無法及時反映程序的最新變化。

d.軟件經常是工程項目最后完成的部分,因此其文檔也經常因時間不夠而欠缺完整。實際上,軟件文檔是否詳細、完整,在某種程度上是與公司或客戶的要求有關的。例如,軍事或國家工程一般要求開發商就其所有軟件實現的功能提供全面詳細的文檔

e.有個潛規則,對軟件的要求越復雜,則需求的正確可能性就越小,這個是經驗之談了,我們需要把準需求這個準繩來做文章,而不是陷入個人主義以及對軟件要求而憑空發揮自己不切實際的想象。

f.我們可以先硬件設計,接著圍繞該硬件編制軟件。雖然實際系統的實現過程可能是軟硬件并行開發,但軟件人員基本上也是圍繞著已經實現的硬件來進行程序設計的;對于更為復雜的系統來說,開發過程可能會出現重復。

例如,某個項目的硬件工程師和軟件工程師可能會坐下來開會,共同決定使用哪種硬件來實現某種功能;軟件人員可能提出需要為數據緩沖區口沖內存容量,也可能要求提供某種外部設備接口,以便充分利用現成接口程序提供的各種驅動代碼。

總的來說,必須在提高軟件開發效率與硬件系統的復雜性與成本之間進行權衡。

嵌入式高手對技術的理解(含辛茹苦這么多年的精華體驗)

有很多人認為:嵌入式系統性能的核心因素是軟件功能,其實,如果按照這種邏輯,系統設計中存在的問題就應由軟件人員來負責;其實這個觀點實際上反映了設計嵌入式產品時如何考慮劃分硬件和軟件各自應實現的功能,也就是這個功能是軟件實現,還是考慮用硬件來實現(硬件實現:需要購買處理該功能的硬件芯片,從而增加成本;軟件實現:無需增加硬件成本,但會占用處理器以及內存的資源)。

例如:我們在這里設計的基于Arm的mp3嵌入式產品,我們可以使用專業的解碼芯片來負責mp3音樂文件的解碼和播放功能,也可以使用另一種方法來解碼mp3語音文件,讓Arm處理器利用軟件控制寄存器來驅動耳機或音響,處理器通過對mp3語音文件解碼之后再將解碼后的數據流按照一定協議格式送給音頻輸出的硬件接口進行播放。

優點:這種方案在硬件方面節省了一個器件,降低了成本,并且該功能還方便調試(因為是軟件實現的)。

缺點:從另一個角度來看,雖然節省了一塊語音解碼芯片,但同時要在三個方面增加成本。

首先,要在程序中增加語音協議解碼的代碼;
其次,可能要把增加ROM來存放語音解碼的協議,這樣可以增加速度;
最后,運行該程序將占用處理器的時間和資源。

其實,話又說回來,對于本案例來說,上述成本的節約并不會引發任何問題,包括驅動程序增加也只需少量的,我們討論這個mp3產品的案例的目的在于說明如何對軟件硬件的功能進行合理劃分。

總的來說,交給軟件實現的功能越多,則產品的成本就越低,當然這就要處理器必須有足夠的處理速度和內存空間來實現設計指定的功能;常言說得好,天下沒有免費的午餐;把功能分配給軟件來實現,會增加軟件的復雜性、開發時間、以及程序的調試時間;然而,隨著處理器的處理能力的不斷提高,可以預見,越來越多的功能將會由軟件來實現。

雖然在軟件中實現各種功能會增加開發成本,但如果把功能移植到硬件中實現,則會增加產品的成本,這類開銷是在構造每個系統組件時不可避免的。在低成本設計方案中,增加任何額外的硬件都會對產品成本產生顯著的影響,因此軟硬件功能劃分就是一個決定產品成本的大問題。在諸如大眾消費產品這一類對成本非常敏感的設計方案中,一般都會把無法通過軟件實現的功能排除在外的。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    18275

    瀏覽量

    222146
  • 嵌入式
    +關注

    關注

    4981

    文章

    18281

    瀏覽量

    288402
  • ROM
    ROM
    +關注

    關注

    4

    文章

    524

    瀏覽量

    84812
  • RAM
    RAM
    +關注

    關注

    7

    文章

    1321

    瀏覽量

    113705
  • 嵌入式處理器

    關注

    0

    文章

    248

    瀏覽量

    30418

原文標題:嵌入式產品開發的基本流程和注意事項

文章出處:【微信號:工程師進階筆記,微信公眾號:工程師進階筆記】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    芯片金線包封膠的使用注意事項是什么?

    芯片金線包封膠的使用注意事項是什么?金線包封膠是一種高性能、高粘度的密封膠,廣泛應用于電子、電器、汽車等領域。它具有良好的防水、防潮、防震等性能,能夠保護產品內部零件不受環境影響,提高產品的使用壽命
    的頭像 發表于 01-05 11:29 ?441次閱讀
    芯片金線包封膠的使用<b class='flag-5'>注意事項</b>是什么?

    DC電源模塊有哪些注意事項和使用技巧?

    DC電源模塊有哪些注意事項和使用技巧?
    的頭像 發表于 12-25 13:59 ?245次閱讀
    DC電源模塊有哪些<b class='flag-5'>注意事項</b>和使用技巧?

    電流互感器的使用注意事項

    當談到電流互感器的使用時,有一些重要的注意事項需要我們牢記。在本文中,我們將探討這些注意事項,為您提供詳細和全面的信息。
    的頭像 發表于 12-15 10:34 ?574次閱讀
    電流互感器的使用<b class='flag-5'>注意事項</b>

    pcb板線路腐蝕清洗注意事項

    pcb板線路腐蝕清洗注意事項
    的頭像 發表于 11-24 17:21 ?517次閱讀

    嵌入式軟件的開發流程

    電子發燒友網站提供《嵌入式軟件的開發流程.doc》資料免費下載
    發表于 11-17 14:39 ?0次下載
    <b class='flag-5'>嵌入式</b>軟件的<b class='flag-5'>開發</b><b class='flag-5'>流程</b>

    新版Hi3559AV100開發注意事項

    新版Hi3559AV100開發注意事項
    的頭像 發表于 11-13 09:17 ?341次閱讀
    新版Hi3559AV100<b class='flag-5'>開發</b><b class='flag-5'>注意事項</b>

    FAQ0133外設事件中斷響應流程注意事項

    外設事件中斷響應流程注意事項介紹一種保障回調任務可被精確響應的方法
    發表于 10-23 07:47

    中8位MCU EEPROM使用注意事項

    中穎8位MCU EEPROM使用注意事項
    的頭像 發表于 09-27 15:34 ?496次閱讀
    中8位MCU EEPROM使用<b class='flag-5'>注意事項</b>

    FM33LC0XX開發注意事項

    電子發燒友網站提供《FM33LC0XX開發注意事項.pdf》資料免費下載
    發表于 09-20 09:59 ?1次下載
    FM33LC0XX<b class='flag-5'>開發</b><b class='flag-5'>注意事項</b>

    維諦通信電源NetSure731A61-S4安全注意事項

    在開始操作之前,請仔細閱讀操作指示、注意事項,以減少意外的發生。產品產品手冊中的“小心、注意、警告、危險”事項,并不代表所應遵守的所有安全
    的頭像 發表于 09-01 16:27 ?748次閱讀
    維諦通信電源NetSure731A61-S4安全<b class='flag-5'>注意事項</b>

    直線模組的運行注意事項

    直線模組的運行注意事項
    的頭像 發表于 08-21 17:36 ?892次閱讀
    直線模組的運行<b class='flag-5'>注意事項</b>

    安全光柵選擇注意事項

    安全光柵選擇注意事項
    的頭像 發表于 07-14 10:24 ?550次閱讀
    安全光柵選擇<b class='flag-5'>注意事項</b>

    使用注意事項

    使用注意事項
    發表于 07-07 19:04 ?0次下載
    使用<b class='flag-5'>注意事項</b>

    安全光幕選型方法以及注意事項

    安全光幕選型方法以及注意事項
    的頭像 發表于 07-06 13:59 ?472次閱讀
    安全光幕選型方法以及<b class='flag-5'>注意事項</b>

    安全光幕選型方法以及注意事項

    安全光幕選型方法以及注意事項
    的頭像 發表于 06-28 14:35 ?457次閱讀
    安全光幕選型方法以及<b class='flag-5'>注意事項</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>