開發一般PC機軟件與嵌入式應用的區別 收藏
剛剛參加工作的時候我從事的是嵌入式應用系統的開發,后來又經歷了長達10年的PC機應用軟件的開發,直到最近,才又返回來進行嵌入式系統的開發,對于這兩種軟件開發的區別頗有一點心得。
總的來說,嵌入式開發與一般計算機軟件開發的區別如下:
1、終端軟件把大量的功能集中在一個程序中,代碼規模非常大,源代碼動輒幾M、幾十M、甚至上百M;而嵌入式系統一般把功能分散在不同的硬件模塊中,使用分散的程序是先系統功能,雖然整個系統功能點很多,但是具體到某個硬件模塊,則代碼一般都比較少,基本上是幾十到幾百K;
2、終端軟件運行在PC機上,一般來說編寫代碼的時候是不用考慮內存和效率的問題(特殊情況除外);而嵌入式系統所使用的CPU從8位機到32位機都有,很多時候都會考慮到系統內存和代碼運行效率的問題;
3、終端軟件大多數是訪問數據庫,使用網絡來互相通信;而嵌入式系統一般是訪問硬件,使用串口、HDLC、USB、網絡等多種通信方式;
4、終端軟件的操作界面主要是圖形界面,使用鍵盤、鼠標或者其它外設進行操作;而嵌入式系統一般是提供一些接口供終端軟件訪問,不直接提供操作界面;
5、終端軟件編寫使用的語言多種多樣,不下幾十種;而嵌入式系統最常用的語言就是C和匯編;
6、終端軟件開發、調試的工具都很強大,不需要額外的硬件支持;而嵌入式系統調試,一般都需要有硬件的仿真器來幫助調試,使用起來比較復雜,有時候出問題還需要確定是代碼的問題還是仿真器的問題;
7、終端軟件開發在網上可以查到大量的資料,有很多的源代碼可以參考或者直接使用;而嵌入式系統一般只能查到廠商提供的芯片資料,具體的應用系統因為硬件不同,查找到的資料和源代碼基本上只能參考,而不能直接使用;
8、終端軟件調試遇到問題一般不用考慮硬件故障,基本上是軟件問題;而嵌入式系統遇到問題首先要確定是硬件問題還是軟件問題,這個問題從系統的開發一直到最后的維護階段都是一直存在的;
9、終端軟件有時可以通過升級硬件來提升系統的性能,不需要另外修改軟件;而嵌入式系統要提升性能,首先考慮的方法就是修改軟件算法或者削減不必要的功能,因為嵌入式系統如果要修改硬件,必然要導致軟件的修改,跟重新開發一個軟件的工作量差不多(因為這個問題的存在,現在才有了嵌入式操作系統,可以減輕一些軟件移植的工作量);
本文來自CSDN博客,轉載請標明出處:file:///F:/我的文檔/網頁文件/開發一般PC機軟件與嵌入式應用的區別%20-%20Rainman的專欄%20-%20CSDN博客.mht