當前位置:招聘信息大全網 - 求職招聘 - 請問如何像匯編語言壹樣,用C語言把壹個數放在指定的地址?

請問如何像匯編語言壹樣,用C語言把壹個數放在指定的地址?

從事嵌入式開發的有兩種人:壹種是硬件專業的,比如電子工程,通信工程。他們主要從事硬件設計,有時候還要開發壹些和硬件關系最密切的底層軟件,比如BootLoader,板卡支持包(像PC的BIOS,驅動硬件向下,支持操作系統向上),最初級的硬件驅動。他們的優點是對硬件原理非常清楚,缺點是更擅長定義各種硬件接口,但往往無法應對復雜的軟件系統(如嵌入式操作系統原理和復雜的應用軟件)。另壹類是軟件和計算機專業的人,主要從事嵌入式操作系統和應用軟件的開發。如果我們這些軟件學習者很好的掌握了硬件原理和接口,也可以寫BSP和硬件驅動。嵌入式硬件設計出來之後,各種功能都是通過軟件來實現的,嵌入式設備的增值很大程度上依賴於嵌入式軟件,嵌入式軟件占了嵌入式系統最重要的工作(目前很多公司都把硬件設計包給了專門的硬件公司,稍微復雜壹點的硬件都是由臺灣省或者國外的公司來設計,所以國內的硬件設計實力非常薄弱,很多嵌入式公司只負責自己開發軟件, 因為他們都知道,嵌入式產品的區別很大程度上在軟件上,軟件是最“花裏胡哨”去做的),所以我們這些搞軟件的根本不用擔心自己在嵌入式市場的地位。 智能設備和復雜系統越多,關鍵軟件就越重要,這是當前的趨勢。

從事嵌入式軟件開發的優勢在於:

(1)目前這方面的人國內外都比較稀缺。壹方面,非專業的IT人員很難切入這個領域,因為這個領域的進入門檻很高,不僅要了解底層的軟件(如操作系統級、驅動程序級軟件),還要對軟件的專業水平有更高的要求(嵌入式系統在軟件設計上要求更高的時空效率),還要了解硬件的工作原理。另壹方面,由於這壹領域相對較新,目前發展太快,許多軟硬件技術(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等。)已經很久沒有出現了,所以很難找到能掌握這些新技術的人。嵌入式人才稀缺,價值自然高。他們越有經驗,他們的價格就越高。其實嵌入式人才是稀缺的,根本原因可能是大部分人都是無條件接觸,這就需要相應的嵌入式開發板和軟件,以及有經驗的人來指導開發過程。

(2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常較低(但收入不低)。對於搞企業應用軟件的IT企業來說,這個用戶的系統做好了,又要搞下壹個用戶的,每個用戶的需求和完成時間都要根據客戶的要求來改變,往往是疲憊和重復的。相比之下,從事嵌入式系統的公司有自己的產品計劃,按照自己的節奏行事。開發出來的產品壹般都是通用的,不會被不同的客戶修改。壹個產品型號開發出來後,往往會有很長壹段空閑時間(或者只是對軟件做壹些小修),有時間充電休息。另外大家從事嵌入式軟件的工作範圍比較窄,涉及的專業技術範圍就是那些(ARM,RTOS,MPEG,802.11等。).時間久了,這些東西就會越來越有經驗,就會去賣舊書。幾個說明就夠那些新手琢磨半年了。如果妳是搞應用軟件的,也許下壹個客戶會換壹個完全不同的軟件開發平臺,那就苦了。

(3)如果有壹天妳想創業,想做自己的產品,那麽嵌入是個不錯的主意,不像應用軟件那麽容易被盜版。我們有個同學自己也有這種小生意。他沒有詳細問怎麽辦。他每個月買幾千個8位單片機,現在有車有房。還有壹種為餐館開發的PDA(WinCE平臺,可以無線連接到互聯網)。據說市場不錯,餐館可以讓顧客點擊PDA點餐,比較時尚。這些PDA的硬件設計通常由其他公司定制(這被稱為“OEM”)。都是常見的硬件。我們只需要設計出軟件就可以成為我們自己的產品。

從事嵌入式軟件開發的劣勢有:

(1)起點高,使用的技術往往難度較大。如果軟硬件基礎不好,尤其是操作系統級軟件基礎不深,可能不適合此行。

(2)該領域的企業數量遠遠少於企業計算企業。特別是嵌入式小企業多(小企業要自己做產品),知名大公司少(嵌入式大公司主要有英特爾、摩托羅拉、TI、飛利浦、三星、索尼、Futjtum、貝爾-阿爾卡特、意法半導體、中晶、研華、華為、中興、SVA等制造企業)。這些企業習慣性的思維方式是找電子、通信等硬專業的人。

(3)少數公司往往要求碩士以上學歷的人從事嵌入式技術,主要是基於嵌入式技術的難度。但是大部分公司沒有這個要求,只要有經驗就行。

如果學生學習嵌入式系統,顯然應該側重於嵌入式軟件,尤其是嵌入式操作系統,這應該是我們的強項。對於從事嵌入式軟件的人來說,最重要的技術顯然是(其實很多公司的招聘廣告裏都有寫):

(1)掌握主流嵌入式微處理器的結構和原理。

(2)必須掌握嵌入式操作系統。

(3)必須熟悉嵌入式軟件的開發流程,做過至少壹個嵌入式軟件項目。

嵌入式軟件中最重要的課程包括:

(1)嵌入式微處理器結構與應用:這是壹門嵌入式硬件的基礎課程。我們說過,嵌入式軟件是軟硬件的結合體,從事嵌入式軟件的人要充分了解ARM處理器的工作原理和接口技術,包括ARM的匯編指令系統。如果不了解處理器的原理,怎麽控制硬件工作,怎麽寫出最節省內存高速運行的代碼(嵌入式軟件設計特別註重時空效率),怎麽寫驅動程序(驅動程序都是和硬件打交道的)?許多公司在招聘嵌入式軟件人員時,要求熟悉ARM處理器。以後如果同學來公司從事嵌入式軟件開發,公司會給妳壹份設備的硬件說明書(xxx說明書),妳必須能看懂內存分配、端口使用等最基本的指令(就像x86匯編壹樣),否則怎麽設計軟件。有些同學覺得嵌入式處理器課程很枯燥,主要是因為硬件課程比較抽象。有些同學對ARM匯編不感興趣,認為C語言做嵌入式開發就夠了。其實不應該只是把匯編語言當成編程語言,學習匯編主要是為了掌握處理器的工作原理。壹個不熟悉匯編語言的人如何在這個處理器上寫出最好的C語言代碼?在嵌入式開發的壹些關鍵部分,有時候需要寫壹個程序集,比如Bootloader(可能還有BSP)。尤其是在對速度要求極高的場合(比如DSP處理器的高速圖像采集和圖像解壓縮),目前都會用到匯編程序,雖然用的幾率比c小很多,當妳在嵌入式公司工作,看描述原理的手冊時,很多可能都是用匯編來描述的。這是因為很多硬件設計師只會寫或者喜歡用匯編來描述。這個時候妳壹定要懂匯編程序,否則軟硬件人員可能無法溝通。很多嵌入式崗位在招聘時都要求熟悉組裝。

(2)嵌入式操作系統課程

除了WinCE,大部分嵌入式操作系統都具有很強的實時性,所以也可以稱之為實時操作系統。從事嵌入式系統的人,至少要掌握壹個嵌入式操作系統(當然掌握兩個更好),這是所有嵌入式技術中最關鍵的。

目前最重要的RTOS主要包括:第壹種,傳統經典的RTOS:最重要的是Vxworks操作系統及其Tornado開發平臺。由於Vxworks出現的時間稍早,實時性強(據說可以在1ms內響應外部事件請求),內核可以極小(據說可以小到8K),可靠性高,所以在北美,Vxworks占據了嵌入式系統的壹半以上。尤其是在通信設備等實時性要求高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術和Linux類似,主要是C語言開發。Vxworks被貝爾-阿爾卡特、朗訊、華為等通信公司在開發產品時廣泛使用。但是因為價格高,Vxworks在壹些小公司或者產品上用不了。目前很多公司都在轉嵌入式Linux(聽說華為目前也在這麽做)。但無論如何,Vxworks在很長壹段時間內都不會動搖。類似Vxworks的還有RTOS如pSOS、QNX、Nucleus等。

第二類,嵌入式Linux操作系統:Linux除了作為服務器操作系統,最成功的未來是在嵌入式領域的應用。當然原因是免費,開源,支持很多軟件,吸引很多用戶,所以嵌入式產品成本會低。Linux本身不是為嵌入式系統設計的操作系統,也不是微內核,實時性不強。

目前在嵌入式領域應用的Linux系統主要有兩類:壹類是專門為嵌入式系統設計的cut Linux系統,最常用的是uClinux(無MMU功能),目前在應用中占很大份額,可以在ARM7上運行;另壹種是運行在ARM 9上,壹般是Linux 2.4.18內核移植到上面,可以使用更多的Linux功能(當然uClinux也可以運行在ARM 9上)。很多人預測,嵌入式Linux將占嵌入式操作系統的50%以上,這壹點非常重要。缺點是熟悉Linux的人太少,開發難度略大。另外,目前我們可以發現很多教材和很多大學都使用ucOS/II作為教學的實時操作系統。這主要是因為ucOS/II簡單開源,非常適合初學者學習實時操作系統的原理。但由於功能有限,ucOS/II在實際中很少使用。除此之外,熟悉Linux開發不僅在嵌入式領域有用,對於開發Linux應用軟件和加深對操作系統的理解也有幫助,可謂壹舉兩得。據我所知,目前Intel和Philip都在做ARM+LINUX的嵌入式開發,而Fujitum在做自己處理器上的LINUX開發。目前在嵌入式Linux領域,特別難找到以下幾個方面的人:壹個是把Linux移植到新的模型開發版本;第二,會寫Linux驅動的人;第三,熟悉Linux內核縮減和優化的人。但是,LINUX有壹個硬傷,那就是它沒有WINDOWS那樣友好、便捷、美觀的交互界面,否則微軟帝國早就站不住腳了。

第三類,Windows CE嵌入式操作系統:微軟也看到了巨大的嵌入式市場,MS永遠是最好的。WinCE問世不過幾年,但目前已經占據了較大的市場份額,尤其是在PDA、手機、顯示儀表等接口要求較高或發展較快的場合。WinCE目前很流行(據說有個賣工業電腦的公司賣板賣的太好了,給客戶剪WinCE都來不及了)。目前WinCE主要是4.2版本(。NET),開發平臺主要是WinCE Platform Builder。有時,壹些上層應用程序是在EVC環境下開發的。因為WinCE開發是大家比較熟悉的VC++環境,所以我院學過Windows編程課程的同學不會有太大的難度,這也是WinCE容易被人們接受的原因。開發環境方便快捷,加上微軟強大的技術支持,WinCE的開發難度遠低於嵌入式Linux。WinCE最適合急於完成,又不想用嵌入式Linux冒險的開發場合(找嵌入式Linux的人沒那麽好找)。畢竟公司不能像學生壹樣去嘗試,保證開發成功更重要。根據側重點不同,WinCE有兩個特殊版本,壹個是MS PocketPC操作系統專用於PDA(掌上電腦),另壹個是MS SmartPhone操作系統用於智能手機(具有PDA功能的手機),兩者都屬於WinCE平臺。在PDA和手機市場,除了WinCE之外,還有其他知名的PDA嵌入式操作系統,如Palm OS(因其早期出現而聞名)和Symbian等。但在WinCE的強烈沖擊下,Palm和Symbian未來還能有多久?學生學習VC++後學習WinCE是非常方便和自然的。通過學習WinCE,他們還可以了解嵌入式軟件的壹般開發流程,這也適合對Linux有所畏懼的學生。顯然,嵌入式LINUX永遠無法取代WinCE,未來誰會占大份額還很難說。畢竟很多人更願意接受MS這個平臺,就像世界各國政府都在力推Linux很久了,但是妳能看到有多少用戶真正在PC上使用LINUX?據我觀察,LINUX是目前嵌入式平臺上呼聲最高的,但WinCE其實用得更多。嵌入式LINUX可能更多的是壹個有長期產品規劃的公司,做長期考慮降低成本。WinCE和多媒體(比如MPEG技術)是微軟亞洲工程院目前做的比較多的項目領域之壹,現在社會上非常需要精通WinCE的人。現在有WINCE的智能手機,金山詞霸,WORD,EXCEL,REGEDIT等。都有智能手機版本,PC上的MP3和DOC下載時可以自動轉換成智能手機格式,非常酷。可以用Windows CE開發壹些必要的程序,下載到手機上。現在市場上流行PDA智能手機,MS總是財源滾滾。

總結嵌入式操作系統的課程。如果妳覺得自己基礎很深,可以努力學習,可以學習嵌入式Linux。如果妳覺得自己VC++基礎不錯,想快速學習嵌入式開發,自學WINCE是壹個非常好的選擇。

(3)嵌入式開發的相關領域

如果熟悉嵌入式應用的壹些主要領域,這類人更受企業歡迎。主要相關領域包括:

A.數字圖像壓縮技術:這是嵌入式系統最重要和最流行的應用領域之壹。主要是需要掌握MPEG編解碼算法和技術,比如DVD、MP3、PDA、高清電視、機頂盒等都涉及到MPEG高速解碼。

b .通信協議和編程技術:這包括傳統的TCP/IP協議和流行的無線通信協議。首先,大部分嵌入式設備都是接入局域網或者互聯網的,所以首先要掌握TCP/IP協議及其編程,這是首先需要掌握的基礎技術。其次,目前無線通信是大勢所趨,所以掌握無線通信協議和編程也很重要。無線通信協議包括無線局域網通信協議802.11系列、藍牙、移動通信(如GPRS、GSM、CDMA等。).

C.網絡與信息安全技術:如加密技術、數字證書CA以及各種網絡安全設備,包括硬件防火墻、入侵檢測IDS、氣墻、IPS等。,中國在這方面還是沒有自己的優勢。看來我們的陳院長正在向這方面發展。

D.DSP技術:DSP即數字信號處理,DSP處理器通過硬件實現數字信號處理算法,如高速數據采集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬件專業的課程,搞軟件的最好懂。目前DSP人才緊缺。如果妳有信號與系統、數字信號處理等課程的基礎,對學習MPEG編解碼原理會很有幫助。

(4)嵌入式開發的相關硬件基礎。

對於軟件工程專業的學生來說,重要的是從事嵌入式軟件開發,比如數字電路、計算機組成原理、嵌入式微處理器結構等硬件課程。此外,匯編語言、C/C++數據結構算法,尤其是操作系統等軟件基礎課程也很重要。我們的主要目的是了解硬件的工作原理,但重點應該是嵌入式軟件,尤其是操作系統級的軟件,這將是我們的優勢。我們有些研究生是電子與通信專業的,在模擬電路和單片機方面有很好的基礎,非常適合學習嵌入式系統。

嵌入式本身就是從單片機發展而來的,但是單片機沒有OS,現在很多嵌入式應用越來越復雜,以至於不得不引入嵌入式操作系統。另外,為了追求更高的信號處理速度,現在很多公司都是用硬件實現壹些DSP算法,比如MPEG壓縮和解壓縮算法,這就涉及到HDL數字電路設計技術及其FPGA/IP核心實現技術,而這方面的人目前市場上也比較稀缺。

關於嵌入式領域的相關專業問題,建議LZ也可以去華清袁晶的網站了解壹下,也可以電話咨詢華清袁晶的專業老師。此外,各大書店和圖書館也有華清袁晶出版的暢銷嵌入式專業書籍。相信有助於發現。

希望我的回答對妳有幫助。

另外,虛擬機群上的產品團購超級便宜。