嵌入式軟件開發面試題(嵌入式軟件開發面試題目)

軟件開發 2531
本篇文章(zhāng)給大家談談嵌入式軟件開發面試題,以及嵌入式軟件開發面試題目對應的(de)知識點,希望對各位有(yǒu)所幫助,不要忘了收藏本站喔。 本文目錄一(yī)覽: 1、嵌入式系統有(yǒu)那些特點呢(ne)?

本篇文章(zhāng)給大家談談嵌入式軟件開發面試題,以及嵌入式軟件開發面試題目對應的(de)知識點,希望對各位有(yǒu)所幫助,不要忘了收藏本站喔。

本文目錄一(yī)覽:

嵌入式系統有(yǒu)那些特點呢(ne)?

嵌入式系統有(yǒu)那些特點呢(ne)?

嵌入式系統是現在最為(wèi)熱門的(de)領域之一(yī),已經廣泛地(dì)滲透到科(kē)學(xué)研究、工程設計、軍事技術、各類産業以及人們(men)日常生活的(de)方方面面。那嵌入式系統有(yǒu)着怎樣的(de)特點:

1.嵌入式系統通常是面向特定應用的(de)

嵌入式微處理(lǐ)器與通用型處理(lǐ)器的(de)最大不同就是嵌入式微處理(lǐ)器大多工作在為(wèi)特定使用者群設計的(de)系統中。嵌入式微處理(lǐ)器通常都具有(yǒu)低(dī)功耗、體積小、整合度高(gāo)等特點,能夠把通用處理(lǐ)器中許多由闆卡完成的(de)任務整合在晶片內(nèi)部,從而有(yǒu)利于嵌入式系統設計趨于小型化,大大增強移動能力,跟網路的(de)耦合越來越緊密。

2.嵌入式系統是各種技術、各個行(xíng)業融合的(de)産物

嵌入式可(kě)以應用在人們(men)生活的(de)各個領域,它是将先進的(de)計算機(jī)技術、半導體技術和(hé)電子(zǐ)技術與各個行(xíng)業的(de)具體應用相結合後的(de)産物。這一(yī)點就決定了它必然是一(yī)個技術密集、資金密集、高(gāo)度分散、不斷創新的(de)知識整合系統。

3.嵌入式系統的(de)軟硬體設計高(gāo)效、可(kě)裁減

嵌入式系統對成本、體積等方面有(yǒu)嚴格的(de)要求,要求嵌入式工程師對硬體和(hé)軟體進行(xíng)高(gāo)效地(dì)設計,量體裁衣、去(qù)除冗餘,力争在同樣的(de)矽片面積上實現更高(gāo)的(de)效能,這樣才能在具體應用中更具有(yǒu)競争力。

4.嵌入式系統軟體固化

為(wèi)了提高(gāo)執行(xíng)速度和(hé)系統可(kě)靠性,嵌入式系統中的(de)軟體一(yī)般都固化在儲存器晶片或微控制器中,而不是儲存于磁碟等載體中。

5.購買産品與技術開發相結合的(de)實現方式

通用處理(lǐ)器系統多數是通過軟體工程的(de)方法,根據使用者的(de)需求進行(xíng)軟體開發的(de),使用者擁有(yǒu)完整的(de)技術資料,可(kě)以根據應用的(de)需要進行(xíng)相應的(de)維護與升級。而嵌入式系統一(yī)般采用購買現成産品與自(zì)行(xíng)獨立開發相結合的(de)方式來構建。

嵌入式系統

有(yǒu)老師講也很難懂。不過我(wǒ)相信,世上無難事隻怕有(yǒu)心人!

基礎科(kē)目:C語言、計算機(jī)組成原理(lǐ)、離(lí)散數學(xué)、資料結構、微控制器、ARM9嵌入式系統設計基礎、作業系統、編譯原理(lǐ)等。

嵌入式系統本身是一(yī)個相對模糊的(de)定義,但業內(nèi)廣泛承認的(de)一(yī)個定義是:以應用為(wèi)中心,以計算機(jī)技術為(wèi)基礎,且軟硬體可(kě)裁剪,适應應用系統對功能、可(kě)靠性、成本、體積、功耗有(yǒu)嚴格要求的(de)專用計算機(jī)系統。 其實我(wǒ)們(men)現在說的(de)嵌入式系統是狹義的(de)即是基于某一(yī)款嵌入式微處理(lǐ)器(如(rú)ARM)所組成的(de)嵌入到物件體中實現智慧控制的(de)系統,而廣義的(de)嵌入式系統面就比較廣了(如(rú)微控制器系統、DSP系統等)。 希望這些對你有(yǒu)幫助,以上全是我(wǒ)根據個人的(de)理(lǐ)解一(yī)個字一(yī)個字打上去(qù)的(de)希望支援!

嵌入式系統(Embedded system),是一(yī)種“完全嵌入受控器件內(nèi)部,為(wèi)特定應用而設計的(de)專用計算機(jī)系統”,根據英國(guó)電氣工程師協會( U.K. Institution of Electrical Engineer)的(de)定義,嵌入式系統為(wèi)控制、監視(shì)或輔助裝置、機(jī)器或用于工廠運作的(de)裝置。與個人計算機(jī)這樣的(de)通用計算機(jī)系統不同,嵌入式系統通常執行(xíng)的(de)是帶有(yǒu)特定要求的(de)預先定義的(de)任務。由于嵌入式系統隻針對一(yī)項特殊的(de)任務,設計人員能夠對它進行(xíng)優化,減小尺寸降低(dī)成本。

……………………………………………………

看你問的(de)問題,應該是對嵌入式很感興趣,其實你可(kě)以自(zì)學(xué)嵌入式。關于如(rú)何學(xué)習嵌入式,我(wǒ)剛才看到一(yī)篇很不錯的(de)文章(zhāng),是一(yī)個專科(kē)生介紹自(zì)己如(rú)何自(zì)學(xué)嵌入式,并找到嵌入式的(de)工作,裏面介紹了他的(de)學(xué)習方法和(hé)學(xué)習過程,希望對你有(yǒu)幫助。

先做(zuò)個自(zì)我(wǒ)介紹,我(wǒ)07年(nián)考上一(yī)所很爛專科(kē)民辦的(de)學(xué)校,學(xué)的(de)是生物專業,具體的(de)學(xué)校名稱我(wǒ)就不說出來獻醜了。09年(nián)我(wǒ)就辍學(xué)了,我(wǒ)在那樣的(de)學(xué)校,一(yī)年(nián)學(xué)費要1萬多,但是根本沒有(yǒu)人學(xué)習,我(wǒ)實在看不到希望,我(wǒ)就退學(xué)了。

退學(xué)後我(wǒ)也迷茫,大專都沒有(yǒu)畢業,我(wǒ)真的(de)不知道(dào)我(wǒ)能幹什麽,我(wǒ)在糾結着我(wǒ)能做(zuò)什麽。所以辍學(xué)後我(wǒ)一(yī)段時間,我(wǒ)想去(qù)找工作,因為(wèi)我(wǒ)比較沉默寡言,不是很會說話,我(wǒ)不适合去(qù)應聘做(zuò)業務。我(wǒ)想應聘做(zuò)技術的(de),可(kě)是處處碰壁。

一(yī)次偶然的(de)機(jī)會,我(wǒ)才聽到嵌入式這個行(xíng)業。那天我(wǒ)去(qù)新華書店,在計算機(jī)分類那邊想找本書學(xué)習。後來有(yǒu)個女孩子(zǐ)走過來,問我(wǒ)是不是讀計算機(jī)的(de),有(yǒu)沒有(yǒu)興趣學(xué)習嵌入式,然後給我(wǒ)介紹了一(yī)下嵌入式現在的(de)火熱情況,告訴我(wǒ)學(xué)嵌入式多麽的(de)有(yǒu)前景,給我(wǒ)了一(yī)份傳單,嵌入式培訓的(de)廣告。聽了她的(de)介紹,我(wǒ)心裏癢癢的(de),确實我(wǒ)很想去(qù)學(xué)會一(yī)門自(zì)己的(de)技術,靠自(zì)己的(de)雙手吃飯。

回家後,我(wǒ)就上網查了下嵌入式,确實是當今比較熱門的(de)行(xíng)業,也是比較好找工作的(de),工資也是相對比較高(gāo)。我(wǒ)就下決心想學(xué)嵌入式了。于是我(wǒ)去(qù)找嵌入式培訓的(de)相關資訊,說真的(de),我(wǒ)也很迷茫,我(wǒ)不知道(dào)培訓是否真的(de)能像他們(men)宣傳的(de)那樣好,所以我(wǒ)就想了解一(yī)段時間再做(zuò)打算。

後來,我(wǒ)在百度知道(dào)看到一(yī)篇讓我(wǒ)很鼓舞的(de)文章(zhāng),是一(yī)個嵌入式高(gāo)手介紹沒有(yǒu)基礎的(de)朋(péng)友怎麽自(zì)學(xué)入門學(xué)嵌入式,文章(zhāng)寫的(de)很好,包含了如(rú)何學(xué)習,該怎麽學(xué)習。他提到一(yī)個方法就是看視(shì)訊,因為(wèi)看書實在太枯燥和(hé)費解的(de),很多我(wǒ)們(men)也看不懂。這點我(wǒ)真的(de)很認同,我(wǒ)自(zì)己看書往往看不了幾頁。

我(wǒ)在想,為(wèi)什麽别人都能自(zì)學(xué)成才,我(wǒ)也可(kě)以的(de)!我(wǒ)要相信自(zì)己,所以我(wǒ)就想自(zì)學(xué),如(rú)果實在學(xué)不會我(wǒ)再去(qù)培訓。

主意一(yī)定,我(wǒ)就去(qù)搜索嵌入式的(de)視(shì)訊,雖然零星找到一(yī)些嵌入式的(de)視(shì)訊,但是都不系統,我(wǒ)是想找一(yī)個能夠告訴我(wǒ)該怎麽學(xué)的(de)視(shì)訊,一(yī)套從入門到精通的(de)視(shì)訊,一(yī)個比較完整的(de)資料,最好能有(yǒu)老師教,不懂可(kě)以請教的(de)。

後來我(wǒ)又找到一(yī)份很好的(de)視(shì)訊,是在IT學(xué)習聯盟網站推出的(de)一(yī)份視(shì)訊《零基礎嵌入式就業班》(喜歡《零基礎嵌入式就業班》的(de)可(kě)以複制 sina.lt/qKh 貼上浏覽器位址列按回車鍵即開啓)。裏面的(de)教程還不錯,很完整,可(kě)以讓我(wǒ)從基礎的(de)開始學(xué)起。視(shì)訊比較便宜。

下面介紹下我(wǒ)的(de)學(xué)習流程,希望對和(hé)我(wǒ)一(yī)樣完全沒有(yǒu)基礎的(de)朋(péng)友有(yǒu)所幫助。

收到他們(men)寄過來的(de)光碟後,我(wǒ)就開始學(xué)習了,由于我(wǒ)沒有(yǒu)什麽基礎,我(wǒ)就從最簡單的(de)C語言視(shì)訊教程學(xué)起,話說簡單,其實我(wǒ)還是很多不懂的(de),我(wǒ)隻好請教他們(men),他們(men)還是很熱心的(de),都幫我(wǒ)解決了。C語言我(wǒ)差不多學(xué)了一(yī)個禮拜,接下來我(wǒ)就學(xué)了linux的(de)基本命令,我(wǒ)在他們(men)提供linux虛拟機(jī)器上都有(yǒu)做(zuò)練習,敲linux的(de)基本命令,寫簡單的(de)C語言程式碼,差不多也就三個禮拜。我(wǒ)每天都在不停的(de)寫一(yī)些簡單的(de)程式碼,這樣一(yī)月後我(wǒ)基本掌握了C和(hé)linux的(de)基本操作。

接下來我(wǒ)就去(qù)學(xué)習了人家的(de)視(shì)訊的(de)培訓教程,是整套的(de),和(hé)去(qù)參加培訓沒有(yǒu)多大的(de)區别,這一(yī)看就是兩個月,學(xué)習了ARM的(de)基本原理(lǐ),學(xué)習嵌入式系統的(de)概念,也掌握了嵌入式的(de)環境的(de)一(yī)些搭建,對linux也有(yǒu)更深層次的(de)理(lǐ)解了,明白了嵌入式應用到底是怎麽做(zuò)的(de),但是驅動我(wǒ)隻是有(yǒu)一(yī)點點的(de)了解,這個相對難一(yī)點,我(wǒ)想以後再慢慢啃。

這兩個月,除了吃飯睡覺,我(wǒ)幾乎都在學(xué)習。因為(wèi)我(wǒ)知道(dào)幾乎沒有(yǒu)基礎,比别人差勁,我(wǒ)隻能堅持努力着,我(wǒ)不能放棄,我(wǒ)必要要靠自(zì)己來養活自(zì)己,必須學(xué)好這門技術,然後我(wǒ)就把不懂的(de)問題總結記下來,這樣慢慢積累了一(yī)段時間,我(wǒ)發現自(zì)己真的(de)有(yǒu)點入門了。

最後的(de)一(yī)個月,我(wǒ)就去(qù)看關于實踐部分的(de)內(nèi)容,了解嵌入式專案具體的(de)開發流程,需要什麽樣的(de)知識,我(wǒ)就開始準備這方面的(de)知識,也就是學(xué)習這方面的(de)視(shì)訊,同時他們(men)建議我(wǒ)去(qù)找了找一(yī)些嵌入式面試的(de)題目,為(wèi)自(zì)己以後找工作做(zuò)準備。我(wǒ)就到網上找了很多嵌入式的(de)題目,把他們(men)理(lǐ)解的(de)記下來,這樣差不多準備了20天左右

我(wǒ)覺得自(zì)己差不多入門了,會做(zuò)一(yī)些簡單的(de)東西了。我(wǒ)就想去(qù)找工作看看,于是我(wǒ)就到51job瘋狂的(de)投簡曆,因為(wèi)我(wǒ)學(xué)曆的(de)問題,專科(kē)沒有(yǒu)畢業,說真的(de),大公司沒有(yǒu)人會要我(wǒ),所以我(wǒ)投的(de)都是民營的(de)小公司,我(wǒ)希望自(zì)己的(de)努力有(yǒu)所回報。沒有(yǒu)想過幾天過後,就有(yǒu)面試了,但是第一(yī)次面試我(wǒ)失敗了,雖然我(wǒ)自(zì)認為(wèi)筆(bǐ)試很好,因為(wèi)我(wǒ)之前做(zuò)了準備,但是他們(men)的(de)要求比較嚴格,需要有(yǒu)一(yī)年(nián)的(de)專案經驗,所以我(wǒ)沒有(yǒu)被選中。

後來陸續面試了幾家公司,終于功夫不負有(yǒu)心人。我(wǒ)終于面試上的(de),是在闵行(xíng)的(de)一(yī)家民營的(de)企業,公司規模比較小,我(wǒ)的(de)職務是嵌入式linux應用開發,做(zuò)安防産品的(de)應用的(de)。我(wǒ)想我(wǒ)也比較幸運,經理(lǐ)很看重我(wǒ)的(de)努力,就決定錄用我(wǒ),開的(de)工資是3500一(yī)個月,雖然我(wǒ)知道(dào)在上海3500隻能過溫飽的(de)生活,但是我(wǒ)想我(wǒ)足夠了。我(wǒ)至少不用每天都要靠父母養,我(wǒ)自(zì)己也能養活自(zì)己的(de)。我(wǒ)想隻要我(wǒ)繼續努力,我(wǒ)工資一(yī)定會翻倍的(de)。

把本文寫出來,希望能讓和(hé)我(wǒ)一(yī)樣的(de)沒有(yǒu)基礎的(de)朋(péng)友有(yǒu)信心,其實我(wǒ)們(men)沒有(yǒu)必要自(zì)卑,我(wǒ)們(men)不比别人笨,隻要我(wǒ)們(men)肯努力,我(wǒ)們(men)一(yī)樣會成功。

…………………………

沒有(yǒu)特定的(de)規範,嚴格地(dì)說,主要晶片上能燒程式,微控制器、FPGA、8086等等都算是嵌入式,隻是微控制器、FPGA沒有(yǒu)嵌入系統,所以算是小型的(de),通常所說的(de)都是ARM等組成的(de)大型嵌入式系統

微控制器也可(kě)以跑RTOS,隻要硬體條件達到系統所要求的(de)就可(kě)以了

數位電路,類比電路,微機(jī)原理(lǐ)與組合語言,順便把三級pc技術過了,

然後接觸一(yī)種具體的(de)微控制器,51,avr都可(kě)以,還有(yǒu),高(gāo)數一(yī)定要學(xué)好,電子(zǐ)行(xíng)業很多都要用數學(xué)。推薦你學(xué)習一(yī)種嵌入式作業系統---ucosII,隻要你有(yǒu)c語言,資料結構還有(yǒu)微機(jī)原理(lǐ)這三門課的(de)基礎,這個很容易上手。

嵌入式系統有(yǒu)哪些型别

嵌入式系統

IEEE對于嵌入式系統的(de)定義是:An Embedded system is the devices used to control, monitor, or assist the operation of equipment, machinery or plants.嵌入式系統是“用于控制、監視(shì)或者輔助操作機(jī)器和(hé)裝置的(de)裝置”。

在中國(guó)嵌入式系統領域,比較認同的(de)嵌入式系統概念是:嵌入式系統是以應用為(wèi)中心,以計算機(jī)技術為(wèi)基礎,并且軟硬體可(kě)裁剪,适用于應用系統對功能、可(kě)靠性、成本、體積、功耗有(yǒu)嚴格要求的(de)專用計算機(jī)系統。它一(yī)般由嵌入式微處理(lǐ)器、外圍硬體裝置、嵌入式作業系統以及使用者的(de)應用程式等四個部分組成,用于實現對其他裝置的(de)控制、監視(shì)或管理(lǐ)等功能。

嵌入式系統一(yī)般指非PC系統,它包括硬體和(hé)軟體兩部分。硬體包括處理(lǐ)器/微處理(lǐ)器、儲存器及外設器件和(hé)I/O埠、圖形控制器等。軟體部分包括作業系統軟體(OS)(要求實時和(hé)多工操作)和(hé)應用程式程式設計。有(yǒu)時設計人員把這兩種軟體組合在一(yī)起。應用程式控制着系統的(de)運作和(hé)行(xíng)為(wèi);而作業系統控制着應用程式程式設計與硬體的(de)互動作用。

嵌入式系統的(de)核心是嵌入式微處理(lǐ)器。嵌入式微處理(lǐ)器一(yī)般就具備以下4個特點:

1)對實時多工有(yǒu)很強的(de)支援能力,能完成多工并且有(yǒu)較短(duǎn)的(de)中斷響應時間,從而使內(nèi)部的(de)程式碼和(hé)實時核心心的(de)執行(xíng)時間減少到最低(dī)限度。

2)具有(yǒu)功能很強的(de)儲存區保護功能。這是由于嵌入式系統的(de)軟體結構已模組化,而為(wèi)了避免在軟體模組之間出現錯誤的(de)交叉作用,需要設計強大的(de)儲存區保護功能,同時也有(yǒu)利于軟體診斷。

3)可(kě)擴充套件的(de)處理(lǐ)器結構,以能最迅速地(dì)開展出滿足應用的(de)最高(gāo)效能的(de)嵌入式微處理(lǐ)器。

4)嵌入式微處理(lǐ)器必須功耗很低(dī),尤其是用于行(xíng)動式的(de)無線及移動的(de)計算和(hé)通訊裝置中靠電池供電的(de)嵌入式系統更是如(rú)此,如(rú)需要功耗隻有(yǒu)mW甚至μW級。

嵌入式計算機(jī)系統同通用型計算機(jī)系統相比具有(yǒu)以下特點:

1.嵌入式系統通常是面向特定應用的(de)嵌入式CPU與通用型的(de)最大不同就是嵌入式CPU大多工作在為(wèi)特定使用者群設計的(de)系統中,它通常都具有(yǒu)低(dī)功耗、體積小、整合度高(gāo)等特點,能夠把通用CPU中許多由闆卡完成的(de)任務整合在晶片內(nèi)部,從而有(yǒu)利于嵌入式系統設計趨于小型化,移動能力大大增強,跟網路的(de)耦合也越來越緊密。

2.嵌入式系統是将先進的(de)計算機(jī)技術、半導體技術和(hé)電子(zǐ)技術與各個行(xíng)業的(de)具體應用相結合後的(de)産物。這一(yī)點就決定了它必然是一(yī)個技術密集、資金密集、高(gāo)度分散、不斷創新的(de)知識整合系統。

3.嵌入式系統的(de)硬體和(hé)軟體都必須高(gāo)效率地(dì)設計,量體裁衣、去(qù)除冗餘,力争在同樣的(de)矽片面積上實現更高(gāo)的(de)效能,這樣才能在具體應用中對處理(lǐ)器的(de)選擇更具有(yǒu)競争力。

4.嵌入式系統和(hé)具體應用有(yǒu)機(jī)地(dì)結合在一(yī)起,它的(de)升級換代也是和(hé)具體産品同步進行(xíng),因此嵌入式系統産品一(yī)旦進入市(shì)場,具有(yǒu)較長(cháng)的(de)生命周期。

5.為(wèi)了提高(gāo)執行(xíng)速度和(hé)系統可(kě)靠性,嵌入式系統中的(de)軟體一(yī)般都固化在儲存器晶片或微控制器本身中,而不是存貯于磁碟等載體中。

6.嵌入式系統本身不具備自(zì)舉開發能力,即使設計完成以後使用者通常也是不能對其中的(de)程式功能進行(xíng)修改的(de),必須有(yǒu)一(yī)套開發工具和(hé)環境才能進行(xíng)開發

嵌入式系統啊

嵌入式系統有(yǒu)很多方向,硬體、linux驅動、dsp、fpga,你導師是做(zuò)哪方面的(de)呀,要不先學(xué)linux下c的(de)程式設計呗,現在很火的(de)。

嵌入式系統 急 !

進入21世紀之後,随着社會資訊化的(de)不斷普及與發展,嵌入式系統的(de)應用越來越廣泛。其中自(zì)備電源嵌入式系統由于受功耗的(de)限制,其設計與應用一(yī)直受到制約。一(yī)般來說,正常工作的(de)嵌入式系統電流消耗在mA級,而處于休眠狀态下可(kě)以控制在μA級左右,3個數量級的(de)能源節約對于有(yǒu)限的(de)自(zì)備電源無疑具有(yǒu)極大的(de)誘惑,所以這類系統基本上都要采用休眠啓用的(de)方案以實現節能,達到延長(cháng)工作壽命的(de)目的(de)。

目前可(kě)供采用的(de)休眠啓用方案主要有(yǒu)3種:事件啓用法、定時啓用法和(hé)定位啓用法。事件啓用法主要應用于檢測告警等場合,系統一(yī)般處于休眠模式,如(rú)果特定引數超限就會激發系統工作,這種方法一(yī)般要與相應的(de)感測器配合實現,微處理(lǐ)器中也要占用相應的(de)中斷資源;定時啓用法主要應用于周期工作的(de)系統(如(rú)小區三表資料的(de)采集)中,系統按照定時器設定的(de)時間間隔定期上報采集資料,這種啓用法的(de)實現也非常方便,隻需在相應的(de)微處理(lǐ)器中新增定時器的(de)中斷處理(lǐ)程式;定位啓用法主要應用于對位置敏感的(de)系統(如(rú)貴重資産管理(lǐ)和(hé)停車場的(de)自(zì)動道(dào)閘等)中,該系統在特定位置安裝檢測裝置,如(rú)果有(yǒu)監管人員或裝置離(lí)開或進入這些特定領域将會激發系統工作。定位啓用法的(de)實現有(yǒu)多種,本文主要介紹利用無線訊号進行(xíng)定位啓用的(de)一(yī)種實現方法。

1 基本原理(lǐ)

無線訊号頻譜中LF頻段訊号具有(yǒu)穿透能力強的(de)特點,它可(kě)以穿透非磁性介質,如(rú)水、混凝土、塑料等(不受視(shì)線距離(lí)限制),所以利用LF頻段設計啓用電路是一(yī)種較好方案。無線訊号頻率與波長(cháng)存在反比例關系,天線長(cháng)度取決于波長(cháng)長(cháng)度。500 MHz RF訊号的(de)波長(cháng)為(wèi)60 cm,天線很短(duǎn),完全可(kě)以方便地(dì)實現;而125 kHz LF訊号的(de)波長(cháng)為(wèi)2.4 km,做(zuò)這樣的(de)天線肯定不實際。所以利用LF頻段訊号作為(wèi)啓用訊号,接收端不再采用電磁場(radio)原理(lǐ)進行(xíng)工作,而是直接通過接收磁場(magic)訊号,然後利用磁場線上圈中的(de)感應訊号進行(xíng)判斷處理(lǐ),如(rú)圖1所示。該系統主要由磁場發射端和(hé)接收端兩種裝置組成。

圖1 磁場工作原理(lǐ)

MCP2030是Microchip公司開發的(de)專門針對低(dī)頻無線磁場通訊的(de)模拟前端器件。該器件整合有(yǒu)8個可(kě)程式設計配置暫存器和(hé)1個隻讀狀态暫存器,根據暫存器配置,MCP2030可(kě)以輸出解調資料、載波時鍾和(hé)磁場強度RSSI。該器件模拟接收電路具有(yǒu)較強的(de)靈敏度,可(kě)以接收識别1 mVpp訊号并解調8%的(de)微弱調制訊号。為(wèi)了得到可(kě)靠的(de)磁場訊号,MCP2030采用了3組天線和(hé)3組接收解調電路。3組天線分别指向互相垂直的(de)X、Y、Z軸,這樣無論接收器如(rú)何放置,總可(kě)以得到磁場訊号,從而解決了磁場訊号的(de)方向性問題。其結構框圖如(rú)圖2所示。

圖2 MCP2030結構框圖

圖3 MCP2030有(yǒu)輸出的(de)情況

MCP2030集成了無線訊号數字序列濾波部件,可(kě)以根據需要設定數字序列,器件隻有(yǒu)當接收到特定數字序列時才做(zuò)出響應,所以可(kě)有(yǒu)效避免其他訊号幹擾所引起的(de)啓用現象。圖3所示為(wèi)無線數字序列符合設定數字序列的(de)情況,特定的(de)數字序列為(wèi)“2 ms有(yǒu)2 ms無”載波訊号,此時LFDATA在監測到特定序列之後輸出的(de)ASK調制訊号,如(rú)果無線數字序列不符合設定數字序列,LFDATA無輸出。

MCP2030具有(yǒu)功耗極低(dī)的(de)顯著優勢,為(wèi)便于在自(zì)備電源的(de)嵌入式系統中應用,專門設計優化了3種工作模式,即休眠模式、待機(jī)模式和(hé)工作模式。休眠模式由SPI 介面命令進行(xíng)控制,進入休眠之後,除暫存器、儲存器和(hé)SPI功能電路之外,包括RF限幅器在內(nèi)的(de)所有(yǒu)電路都将關閉,以使消耗的(de)電流最低(dī)(0.2 μA),需要用上電覆位以及除休眠命令外的(de)任何其他SPI命令将器件從休眠模式喚醒;當天線輸入沒有(yǒu)LF訊号時,器件将自(zì)動處于待機(jī)模式,但器件內(nèi)部各部分電路已上電并準備接收輸入訊号,待機(jī)模式下電流消耗的(de)典型值為(wèi)4 μA(3個接收天線工作);當在LF天線輸入上有(yǒu)LF訊号且內(nèi)部電路随接收的(de)資料而進行(xíng)切換時,器件處于低(dī)電流工作模式,該模式下電流消耗僅為(wèi)13 μA。

除此之外,該器件還支援半電源和(hé)無電源工作模式。無電源工作方式下,器件完全從磁場中提取能量進行(xíng)工作;在半電源工作方式下,器件盡可(kě)能從磁場獲取能量,不得已情況下由電源供電。

2 設計應用

有(yǒu)源射頻标簽是射頻識别系統中的(de)重要組成部分,相比而言具有(yǒu)儲存容量大、通訊距離(lí)遠、功能豐富的(de)優勢,可(kě)以廣泛應用于物流跟蹤、貴重資産管理(lǐ)等領域。其內(nèi)部電路主要部件有(yǒu):控制器、啓用訊号檢測電路、RAM/ROM、定時器、UHF收發器、電源等。其中,啓用訊号檢測電路可(kě)以由MCP2030進行(xíng)實現,如(rú)圖4所示。利用MCP2030針對設定數字序列進行(xíng)識别接收的(de)能力,可(kě)以有(yǒu)效地(dì)控制标簽的(de)工作狀态。當标簽到達安裝有(yǒu)射頻啓用發射器的(de)特定位置時,MCP2030從SPI介面上輸出相應的(de)接收訊号,使得控制器退出休眠狀态,并對資料進行(xíng)接收、分析和(hé)處理(lǐ),最終儲存在RAM/ROM相應的(de)位置中。當需要與讀寫器進行(xíng)資訊互動時,控制器通過UHF收發器進行(xíng)通訊,控制器處理(lǐ)完之後自(zì)動進入休眠狀态,直到下一(yī)次接收到磁場啓用訊号或定時器産生定時中斷。

圖4 啓用訊号檢測電路

如(rú)圖4所示,MCP2030與控制器通過SPI介面進行(xíng)連線,SPI介面定義分别為(wèi)LFDATA、SCCLK、MCCS。該介面命令由16位的(de)控制字組成,命令格式如(rú)下:

D13~D15為(wèi)命令型别,MCP2030根據命令型别确定後續的(de)資料含義并執行(xíng)相應的(de)操作。其中,0x07為(wèi)寫資料命令,0x06為(wèi)讀資料命令。如(rú)果是寫資料或讀資料命令,則後續D9~D12為(wèi)暫存器地(dì)址,分别指定該命令所要操作的(de)暫存器地(dì)址,D1~D8為(wèi)暫存器資料內(nèi)容,D0為(wèi)該命令列校驗資訊;如(rú)果不是寫資料或讀資料命令,則D0~D12的(de)資料內(nèi)容無意義。

為(wèi)使MCP2030正常工作,系統上電覆位時要對該器件進行(xíng)正确的(de)初始化配置。在此設定無線訊号數字濾波序列為(wèi)2 ms有(yǒu)2 ms無,使能通道(dào)自(zì)動選擇功能和(hé)解調訊号輸出功能,初始化程式段如(rú)下:

void Init_MCP2030(void) {

ShiftOutSpi(0xe1,0x41);reg0 111 0000 1010 0000 1

ShiftOutSpi(0xe2,0x01);reg1 111 0001 0000 0000 1

ShiftOutSpi(0xe4,0x01);reg2 111 0010 0000 0000 1

ShiftOutSpi(0xe6,0x01);reg3 111 0011 0000 0000 1

ShiftOutSpi(0xe8,0x01);reg4 111 0100 0000 0000 1

ShiftOutSpi(0xeb,0x81);reg5 111 0101 1100 0000 1

ShiftOutSpi(0xed,0x3f);reg6 111 0110 1001 1111 1

}

控制器向MCP2030傳送資料的(de)程式實現如(rú)下:

資料預先儲存在OutData1和(hé)OutData2中

void ShiftOutSpi(unsigned char OutData1,unsigned char OutData2) {

unsigned char i;

SCCLK=0;

MCCS=0;

for(i=0;i8;i++) {

LFDATA=OutData1 0x80;

OutData1=OutData1?1;

SCCLK=1;

SCCLK=0;

}

for(i=0;i8;i++) {

LFDATA=OutData2 0x80;

OutData2=OutData2?1;

SCCLK=1;

SCCLK=0;

}

MCCS=1;

}

控制器從MCP2030接收資料的(de)程式段如(rú)下:

資料儲存在AFESpiInDataH和(hé)AFESpiInDataL中

void ShiftInSpi(void) {

unsigned char i;

SCCLK=0;

MCCS=0;

for(i=0;i8;i++) {

SCCLK=1;

AFESpiInDataH=AFESpiInDataH LFDATA;

AFESpiInDataH=AFESpiInDataH?1;

SCCLK=0;

}

for(i=0;i8;i++) {

SCCLK=1;

AFESpiInDataL=AFESpiInDataL LFDATA;

AFESpiInDataL=AFESpiInDataL?1;

SCCLK=0;

}

MCCS=1;

}

結語

本文針對MCP2030的(de)特點具體介紹了其在有(yǒu)源射頻标簽中的(de)應用。該器件不僅整合有(yǒu)3通道(dào)低(dī)頻接收電路以及3方向的(de)磁場檢測接收電路,而且功耗低(dī),具備多種節能工作模式,非常适合于其他要求低(dī)功耗無線啓用的(de)嵌入式系統應用。

嵌入式系統題

1 mov

2 LDR

就兩個指令還要搞不明白嗎?

入門沒學(xué)好啊.

沒有(yǒu)嵌入式開發基礎面試難嗎

難。

沒有(yǒu)嵌入式開發的(de)基礎在面試相關單位企業的(de)時候,hr問到這方面問題的(de)時候就會答不出來,很容易就被淘汰,是有(yǒu)一(yī)定難度的(de),最好還是具備一(yī)定的(de)基礎再去(qù)面試。

面試(Interview),是測查和(hé)評價人員能力素質的(de)一(yī)種考試活動。面試是一(yī)種經過組織者精心設計,在特定場景下,以考官對考生的(de)面對面交談與觀察為(wèi)主要手段,由表及裏測評考生的(de)知識、能力、經驗等有(yǒu)關素質的(de)一(yī)種考試活動。

java經典面試題

(4)以下代碼中的(de)兩個sizeof用法有(yǒu)問題嗎?

[C易] void UpperCase( char str[] ) // 将 str 中的(de)小寫字母轉換成大寫字母 { for( size_t i=0; i sizeof(str)/sizeof(str[0]); ++i ) if( 'a' =str[i] str[i] ='z' ) str[i] -= ('a'-'A' ); } char str[] = "aBcDe"; cout "str字符長(cháng)度為(wèi): " sizeof(str)/sizeof(str[0]) endl; UpperCase( str ); cout str endl; 答案:函數內(nèi)的(de)sizeof有(yǒu)問題。根據語法,sizeof如(rú)用于數組,隻能測出靜态數組的(de)大小,無法檢測動态分配的(de)或外部數組大小。函數外的(de)str是一(yī)個靜态定義的(de)數組,因此其大小為(wèi)6,因為(wèi)還有(yǒu)'\0',函數內(nèi)的(de)str實際隻是一(yī)個指向字符串的(de)指針,沒有(yǒu)任何額外的(de)與數組相關的(de)信息,因此sizeof作用于上隻将其當指針看,一(yī)個指針為(wèi)4個字節,因此返回4。

(5)一(yī)個32位的(de)機(jī)器,該機(jī)器的(de)指針是多少位答案:

指針是多少位隻要看地(dì)址總線的(de)位數就行(xíng)了。80386以後的(de)機(jī)子(zǐ)都是32的(de)數據總線。所以指針的(de)位數就是4個字節了。

6。main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(a+1); printf("%d,%d",*(a+1),*(ptr-1)); } 答案:2。5 *(a+1)就是a[1],*(ptr-1)就是a[4],執行(xíng)結果是2,5 a+1不是首地(dì)址+1,系統會認為(wèi)加一(yī)個a數組的(de)偏移,是偏移了一(yī)個數組的(de)大小(本例是5個int) int *ptr=(int *)(a+1); 則ptr實際是(a[5]),也就是a+5 原因如(rú)下: a是數組指針,其類型為(wèi) int (*)[5]; 而指針加1要根據指針類型加上一(yī)定的(de)值,不同類型的(de)指針+1之後增加的(de)大小不同 a是長(cháng)度為(wèi)5的(de)int數組指針,所以要加 5*sizeof(int) 所以ptr實際是a[5] 但是prt與(a+1)類型是不一(yī)樣的(de)(這點很重要) 所以prt-1隻會減去(qù)sizeof(int*) a,a的(de)地(dì)址是一(yī)樣的(de),但意思不一(yī)樣,a是數組首地(dì)址,也就是a[0]的(de)地(dì)址,a是對象(數組)首地(dì)址,a+1是數組下一(yī)元素的(de)地(dì)址,即a[1],a+1是下一(yī)個對象的(de)地(dì)址,即a[5].

7。請問以下代碼有(yǒu)什麽問題: int main() { char a; char *str=a; strcpy(str,"hello"); printf(str); return 0; } 答案:沒有(yǒu)為(wèi)str分配內(nèi)存空間,将會發生異常問題出在将一(yī)個字符串複制進一(yī)個字符變量指針所指地(dì)址。雖然可(kě)以正确輸出結果,但因為(wèi)越界進行(xíng)內(nèi)在讀寫而導緻程序崩潰。

8。char* s="AAA"; printf("%s",s); s[0]='B'; printf("%s",s); 有(yǒu)什麽錯?答案:"AAA"是字符串常量。s是指針,指向這個字符串常量,所以聲明s的(de)時候就有(yǒu)問題。 cosnt char* s="AAA"; 然後又因為(wèi)是常量,所以對是s[0]的(de)賦值操作是不合法的(de)。

9。寫一(yī)個“标準”宏,這個宏輸入兩個參數并返回較小的(de)一(yī)個。答案:.#define Min(X, Y) ((X)(Y)?(Y):(X)) //結尾沒有(yǒu)‘;’

10。嵌入式系統中經常要用到無限循環,你怎麽用C編寫死循環。答案:while(1){}或者for(;;)

11。關鍵字static的(de)作用是什麽?答案:定義靜态變量

12。關鍵字const有(yǒu)什麽含意?答案:表示常量不可(kě)以修改的(de)變量。

13。關鍵字volatile有(yǒu)什麽含意?并舉出三個不同的(de)例子(zǐ)?答案:提示編譯器對象的(de)值可(kě)能在編譯器未監測到的(de)情況下改變。

14。int (*s[10])(int) 表示的(de)是什麽啊?答案:int (*s[10])(int) 函數指針數組,每個指針指向一(yī)個int func(int param)的(de)函數。

15。有(yǒu)以下表達式: int a=248; b=4;int const c=21;const int *d=a; int *const e=b;int const *f const =a; 請問下列表達式哪些會被編譯器禁止?為(wèi)什麽?答案:*c=32;d=b;*d=43;e=34;e=a;f=0x321f; *c 這是個什麽東東,禁止 *d 說了是const,禁止 e = a 說了是const 禁止 const *f const =a; 禁止

16交換兩個變量的(de)值,不使用第三個變量。即a=3,b=5,交換之後a=5,b=3; 答案:有(yǒu)兩種解法, 一(yī)種用算術算法, 一(yī)種用^(異或) a = a + b; b = a - b; a = a - b; or a = a^b;// 隻能對int,char.. b = a^b; a = a^b; or a ^= b ^= a;

17.c和(hé)c++中的(de)struct有(yǒu)什麽不同?答案:c和(hé)c++中struct的(de)主要區别是c中的(de)struct不可(kě)以含有(yǒu)成員函數,而c++中的(de)struct可(kě)以。c++中struct和(hé)class的(de)主要區别在于默認的(de)存取權限不同,struct默認為(wèi)public,而class默認為(wèi)private

18.#include stdio.h #include stdlib.h void getmemory(char *p) { p=(char *) malloc(100); strcpy(p,"hello world"); } int main( ) { char *str=NULL; getmemory(str); printf("%s/n",str); free(str); return 0; } 答案:程序崩潰,getmemory中的(de)malloc 不能返回動态內(nèi)存, free()對str操作很危險

19.char szstr[10]; strcpy(szstr,"0123456789"); 産生什麽結果?為(wèi)什麽?答案: 長(cháng)度不一(yī)樣,會造成非法的(de)OS

20.列舉幾種進程的(de)同步機(jī)制,并比較其優缺點。答案: 原子(zǐ)操作信号量機(jī)制 自(zì)旋鎖 管程,會合,分布式系統

21.進程之間通信的(de)途徑答案:共享存儲系統消息傳遞系統管道(dào):以文件系統為(wèi)基礎

22.進程死鎖的(de)原因答案:資源競争及進程推進順序非法

23.死鎖的(de)4個必要條件答案:互斥、請求保持、不可(kě)剝奪、環路

24.死鎖的(de)處理(lǐ)答案:鴕鳥策略、預防策略、避免策略、檢測與解除死鎖

25. 操作系統中進程調度策略有(yǒu)哪幾種?答案:FCFS(先來先服務),優先級,時間片輪轉,多級反饋

26.類的(de)靜态成員和(hé)非靜态成員有(yǒu)何區别?答案:類的(de)靜态成員每個類隻有(yǒu)一(yī)個,非靜态成員每個對象一(yī)個

27.純虛函數如(rú)何定義?使用時應注意什麽?答案:virtual void f()=0; 是接口,子(zǐ)類必須要實現

28.數組和(hé)鏈表的(de)區别答案:數組:數據順序存儲,固定大小連表:數據可(kě)以随機(jī)存儲,大小可(kě)動态改變

29.ISO的(de)七層模型是什麽?tcp/udp是屬于哪一(yī)層?tcp/udp有(yǒu)何優缺點?答案:應用層表示層會話層運輸層網絡層物理(lǐ)鏈路層物理(lǐ)層 tcp /udp屬于運輸層 TCP 服務提供了數據流傳輸、可(kě)靠性、有(yǒu)效流控制、全雙工操作和(hé)多路複用技術等。與 TCP 不同, UDP 并不提供對 IP 協議的(de)可(kě)靠機(jī)制、流控制以及錯誤恢複功能等。由于 UDP 比較簡單, UDP 頭包含很少的(de)字節,比 TCP 負載消耗少。 tcp: 提供穩定的(de)傳輸服務,有(yǒu)流量控制,缺點是包頭大,冗餘性不好 udp: 不提供穩定的(de)服務,包頭小,開銷小

30:(void *)ptr 和(hé) (*(void**))ptr的(de)結果是否相同?其中ptr為(wèi)同一(yī)個指針答案:.(void *)ptr 和(hé) (*(void**))ptr值是相同的(de)

31:int main() { int x=3; printf("%d",x); return 1; } 問函數既然不會被其它函數調用,為(wèi)什麽要返回1?答案:mian中,c标準認為(wèi)0表示成功,非0表示錯誤。具體的(de)值是某中具體出錯信息

32,要對絕對地(dì)址0x100000賦值,我(wǒ)們(men)可(kě)以用 (unsigned int*)0x100000 = 1234; 那麽要是想讓程序跳轉到絕對地(dì)址是0x100000去(qù)執行(xíng),應該怎麽做(zuò)?答案:*((void (*)( ))0x100000 ) ( ); 首先要将0x100000強制轉換成函數指針,即: (void (*)())0x100000 然後再調用它: *((void (*)())0x100000)(); 用typedef可(kě)以看得更直觀些: typedef void(*)() voidFuncPtr; *((voidFuncPtr)0x100000)();

33,已知一(yī)個數組table,用一(yī)個宏定義,求出數據的(de)元素個數答案:#define NTBL #define NTBL (sizeof(table)/sizeof(table[0]))

34。線程與進程的(de)區别和(hé)聯系? 線程是否具有(yǒu)相同的(de)堆棧? dll是否有(yǒu)獨立的(de)堆棧? 答案:進程是死的(de),隻是一(yī)些資源的(de)集合,真正的(de)程序執行(xíng)都是線程來完成的(de),程序啓動的(de)時候操作系統就幫你創建了一(yī)個主線程。每個線程有(yǒu)自(zì)己的(de)堆棧。 DLL中有(yǒu)沒有(yǒu)獨立的(de)堆棧,這個問題不好回答,或者說這個問題本身是否有(yǒu)問題。因為(wèi)DLL中的(de)代碼是被某些線程所執行(xíng),隻有(yǒu)線程擁有(yǒu)堆棧,如(rú)果DLL中的(de)代碼是EXE中的(de)線程所調用,那麽這個時候是不是說這個DLL沒有(yǒu)自(zì)己獨立的(de)堆棧?如(rú)果DLL中的(de)代碼是由DLL自(zì)己創建的(de)線程所執行(xíng),那麽是不是說DLL有(yǒu)獨立的(de)堆棧?以上講的(de)是堆棧,如(rú)果對于堆來說,每個DLL有(yǒu)自(zì)己的(de)堆,所以如(rú)果是從DLL中動态分配的(de)內(nèi)存,最好是從DLL中删除,如(rú)果你從DLL中分配內(nèi)存,然後在EXE中,或者另外一(yī)個DLL中删除,很有(yǒu)可(kě)能導緻程序崩潰

35。unsigned short A = 10; printf("~A = %u\n", ~A); char c=128; printf("c=%d\n",c); 輸出多少?并分析過程答案:第一(yī)題,~A =0xfffffff5,int值為(wèi)-11,但輸出的(de)是uint。所以輸出4294967285 第二題,c=0x10,輸出的(de)是int,最高(gāo)位為(wèi)1,是負數,所以它的(de)值就是0x00的(de)補碼就是128,所以輸出-128。這兩道(dào)題都是在考察二進制向int或uint轉換時的(de)最高(gāo)位處理(lǐ)。

(二)

1. -1,2,7,28,,126請問28和(hé)126中間那個數是什麽?為(wèi)什麽?答案:第一(yī)題的(de)答案應該是4^3-1=63 規律是n^3-1(當n為(wèi)偶數0,2,4) n^3+1(當n為(wèi)奇數1,3,5)

2.用兩個棧實現一(yī)個隊列的(de)功能?要求給出算法和(hé)思路!答案:設2個棧為(wèi)A,B, 一(yī)開始均為(wèi)空. 入隊: 将新元素push入棧A; 出隊: (1)判斷棧B是否為(wèi)空; (2)如(rú)果不為(wèi)空,則将棧A中所有(yǒu)元素依次pop出并push到棧B; (3)将棧B的(de)棧頂元素pop出;這樣實現的(de)隊列入隊和(hé)出隊的(de)平攤複雜度都還是O(1), 比上面的(de)幾種方法要好。

3.在c語言庫函數中将一(yī)個字符轉換成整型的(de)函數是atol()嗎,這個函數的(de)原型是什麽?答案:函數名: atol 功能: 把字符串轉換成長(cháng)整型數用法: long atol(const char *nptr); 程序例: #include stdlib.h #include stdio.h int main(void) { long l; char *str = "98765432"; l = atol(lstr); printf("string = %s integer = %ld\n", str, l); return(0); }

4。對于一(yī)個頻繁使用的(de)短(duǎn)小函數,在C語言中應用什麽實現,在C++中應用什麽實現? 答案:c用宏定義,c++用inline

5。直接鏈接兩個信令點的(de)一(yī)組鏈路稱作什麽? 答案:PPP點到點連接

7。軟件測試都有(yǒu)那些種類? 答案:黑盒:針對系統功能的(de)測試 白合:測試函數功能,各函數接口

8。确定模塊的(de)功能和(hé)模塊的(de)接口是在軟件設計的(de)那個隊段完成的(de)? 答案:概要設計階段

9。enum string { x1, x2, x3=10, x4, x5, }x; 問x;答案:取值在0。1。10。11。12中的(de)一(yī)個

10。unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x801000; p2=(unsigned long *)0x810000; 請問p1+5= ; p2+5= ; 答案:801005; 810014。不要忘記了這個是16進制的(de)數字,p2要加20變為(wèi)16進制就是14 選擇題: 1.Ethternet鏈接到Internet用到以下那個協議? A.HDLC;B.ARP;C.UDP;D.TCP;E.ID 2.屬于網絡層協議的(de)是: A.TCP;B.IP;C.ICMP;D.X.25 3.Windows消息調度機(jī)制是: A.指令隊列;B.指令堆棧;C.消息隊列;D.消息堆棧; 答案:b,a,c

四.找錯題:

1.請問下面程序有(yǒu)什麽錯誤? int a[60][250][1000],i,j,k; for(k=0;k =1000;k++) for(j=0;j 250;j++) for(i=0;i 60;i++) a[i][j][k]=0; 答案:把循環語句內(nèi)外換一(yī)下

2。以下是求一(yī)個數的(de)平方的(de)程序,請找出錯誤: #define SQUARE(a) ((a)*(a)) int a=5; int b; b=SQUARE(a++); 答案:這個沒有(yǒu)問題,s(a++),就是((a++)×(a++))唯一(yī)要注意的(de)就是計算後a=7了 3。typedef unsigned char BYTE int examply_fun(BYTE gt_len; BYTE *gt_code) { BYTE *gt_buf; gt_buf=(BYTE *)MALLOC(Max_GT_Length); ...... if(gt_lenMax_GT_Length) { return GT_Length_ERROR; } ....... } 答案:要釋放內(nèi)存問答題: 1.IP Phone的(de)原理(lǐ)是什麽? 答案:IPV6 2.TCP/IP通信建立的(de)過程怎樣,端口有(yǒu)什麽作用?答案:三次握手,确定是哪個應用程序使用該協議(三)

1、局部變量能否和(hé)全局變量重名?答案:能,局部會屏蔽全局。要用全局變量,需要使用"::" 局部變量可(kě)以與全局變量同名,在函數內(nèi)引用這個變量時,會用到同名的(de)局部變量,而不會用到全局變量。對于有(yǒu)些編譯器而言,在同一(yī)個函數內(nèi)可(kě)以定義多個同名的(de)局部變量,比如(rú)在兩個循環體內(nèi)都定義一(yī)個同名的(de)局部變量,而那個局部變量的(de)作用域就在那個循環體內(nèi)

2、如(rú)何引用一(yī)個已經定義過的(de)全局變量?答案:extern 可(kě)以用引用頭文件的(de)方式,也可(kě)以用extern關鍵字,如(rú)果用引用頭文件方式來引用某個在頭文件中聲明的(de)全局變理(lǐ),假定你将那個變寫錯了,那麽在編譯期間會報錯,如(rú)果你用extern方式引用時,假定你犯了同樣的(de)錯誤,那麽在編譯期間不會報錯,而在連接期間報錯

3、全局變量可(kě)不可(kě)以定義在可(kě)被多個.C文件包含的(de)頭文件中?為(wèi)什麽?答案:可(kě)以,在不同的(de)C文件中以static形式來聲明同名全局變量。可(kě)以在不同的(de)C文件中聲明同名的(de)全局變量,前提是其中隻能有(yǒu)一(yī)個C文件中對此變量賦初值,此時連接不會出錯

4、語句for( ;1 ;)有(yǒu)什麽問題?它是什麽意思?答案:和(hé)while(1)相同。

5、do……while和(hé)while……do有(yǒu)什麽區别?答案:前一(yī)個循環一(yī)遍再判斷,後一(yī)個判斷以後再循環。

6、請寫出下列代碼的(de)輸出內(nèi)容#include stdio.h main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 答案:10,12,120 a=10; b=a++;//a=11 b=10 c=++a;//a=12 c=12 d=10*a++;//a=13 d=120

高(gāo)級題

1、static全局變量與普通的(de)全局變量有(yǒu)什麽區别?static局部變量和(hé)普通局部變量有(yǒu)什麽區别?static函數與普通函數有(yǒu)什麽區别?

答案:全局變量(外部變量)的(de)說明之前再冠以static 就構成了靜态的(de)全局變量。全局變量本身就是靜态存儲方式,靜态全局變量當然也是靜态存儲方式。這兩者在存儲方式上并無不同。這兩者的(de)區别雖在于非靜态全局變量的(de)作用域是整個源程序,當一(yī)個源程序由多個源文件組成時,非靜态的(de)全局變量在各個源文件中都是有(yǒu)效的(de)。而靜态全局變量則限制了其作用域,即隻在定義該變量的(de)源文件內(nèi)有(yǒu)效,在同一(yī)源程序的(de)其它源文件中不能使用它。由于靜态全局變量的(de)作用域局限于一(yī)個源文件內(nèi),隻能為(wèi)該源文件內(nèi)的(de)函數公用,因此可(kě)以避免在其它源文件中引起錯誤。從以上分析可(kě)以看出,把局部變量改變為(wèi)靜态變量後是改變了它的(de)存儲方式即改變了它的(de)生存期。把全局變量改變為(wèi)靜态變量後是改變了它的(de)作用域,限制了它的(de)使用範圍。 static函數與普通函數作用域不同。僅在本文件。隻在當前源文件中使用的(de)函數應該說明為(wèi)內(nèi)部函數(static),內(nèi)部函數應該在當前源文件中說明和(hé)定義。對于可(kě)在當前源文件以外使用的(de)函數,應該在一(yī)個頭文件中說明,要使用這些函數的(de)源文件要包含這個頭文件 static全局變量與普通的(de)全局變量有(yǒu)什麽區别:static全局變量隻初使化一(yī)次,防止在其他文件單元中被引用; static局部變量和(hé)普通局部變量有(yǒu)什麽區别:static局部變量隻被初始化一(yī)次,下一(yī)次依據上一(yī)次結果值; static函數與普通函數有(yǒu)什麽區别:static函數在內(nèi)存中隻有(yǒu)一(yī)份,普通函數在每個被調用中維持一(yī)份拷貝

2、程序的(de)局部變量存在于()中,全局變量存在于()中,動态申請數據存在于()中。

答案:棧;靜态區;堆 3、設有(yǒu)以下說明和(hé)定義: typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; DATE max; 則語句 printf("%d",sizeof(too)+sizeof(max));的(de)執行(xíng)結果是:______ 答案:DATE是一(yī)個union, 變量公用空間. 裏面最大的(de)變量類型是int[5], 占用20個字節. 所以它的(de)大小是20 data是一(yī)個struct, 每個變量分開占用空間. 依次為(wèi)int4 + DATE20 + double8 = 32. 所以結果是 20 + 32 = 52. 當然...在某些16位編輯器下, int可(kě)能是2字節,那麽結果是 int2 + DATE10 + double8 = 20

4、隊列和(hé)棧有(yǒu)什麽區别?

答案:隊列先進先出,棧後進先出÷

5、這道(dào)題目出錯了,這裏就不寫上了。

6、已知一(yī)個單向鏈表的(de)頭,請寫出删除其某一(yī)個結點的(de)算法,要求,先找到此結點,然後删除。答案:slnodetype *Delete(slnodetype *Head,int key){}中if(Head-number==key) { Head=Pointer-next; free(Pointer); break; } Back = Pointer; Pointer=Pointer-next; if(Pointer-number==key) { Back-next=Pointer-next; free(Pointer); break; } void delete(Node* p) { if(Head = Node) while(p) }

7、請找出下面代碼中的(de)所以錯誤說明:以下代碼是把一(yī)個字符串倒序,如(rú)“abcd”倒序後變為(wèi)“dcba”

1、#include"string.h" 2、main() 3、{ 4、 char*src="hello,world"; 5、 char* dest=NULL; 6、 int len=strlen(src); 7、 dest=(char*)malloc(len); 8、 char* d=dest; 9、 char* s=src[len]; 10、 while(len--!=0) 11、 d++=s--; 12、 printf("%s",dest); 13、 return 0; 14、} 答案:還要加上#include stdio.h int main(){ char* src = "hello,world"; int len = strlen(src); char* dest = (char*)malloc((len+1)*sizeof(char)); //要為(wèi)\0分配一(yī)個空間 char* d = dest; char* s = src[len-1]; //指向最後一(yī)個字符 while( len-- != 0 ) *d++=*s--; *d = 0; //尾部要加\0 printf("%s\n",dest); free(dest);// 使用完,應當釋放空間,以免造成內(nèi)存彙洩露 return 0; } 華為(wèi)筆(bǐ)試題(3) 2006-09-29 19:41

一(yī)、判斷題(對的(de)寫T,錯的(de)寫F并說明原因,每小題4分,共20分)

1、有(yǒu)數組定義int a[2][2]={{1},{2,3}};則a[0][1]的(de)值為(wèi)0。( 正确)

2、int (*ptr) (),則ptr是一(yī)維數組的(de)名字。(錯誤 int (*ptr) ();定義一(yī)個指向函數的(de)指針變量 )

3、指針在任何情況下都可(kě)進行(xíng), ,=, =,==運算。( 錯誤 )

4、switch(c) 語句中c可(kě)以是int ,long,char ,float ,unsigned int 類型。( 錯,不能用實形)

二、填空題(共30分)

1、在windows下,寫出運行(xíng)結果,每空2分,共10分。 char str[ ]= "Hello"; char *p=str; int n=10; sizeof(str)=( ) sizeof(p)=( ) sizeof(n)=( ) void func(char str[100]){ } sizeof(str)=( ) 答案:6,4,4,4, 具體解釋請參看我(wǒ)的(de)空間裏的(de)“C/C++程序員應聘試題剖析”

2、void getmemory(char **p, int num) { *p=(char *) malloc(num);} void test(void) { char *str=NULL; getmemory(str,100); strcpy(str,"hello"); printf(str); } 運行(xíng)test函數有(yǒu)什麽結果?( )10分 答案:輸出hello,但是發生內(nèi)存洩漏。

3、設int arr[]={6,7,8,9,10}; int *ptr=arr; *(ptr++)+=123; printf("%d,%d",*ptr,*(++ptr)); ( ) 10分答案:8,

8。這道(dào)題目的(de)意義不大,因為(wèi)在不同的(de)編譯器裏printf的(de)參數的(de)方向是不一(yī)樣的(de),在vc6.0下是從有(yǒu)到左,這裏先*(++ptr) 後*pt,于是結果為(wèi)8,8

三、編程題(第一(yī)小題20,第二小題30分)

1、 不使用庫函數,編寫函數int strcmp(char *source, char *dest) 相等返回0,不等返回-1;

答案:一(yī)、 int strcmp(char *source, char *dest) { assert((source!=NULL)(dest!=NULL)); int i,j; for(i=0; source[i]==dest[i]; i++) { if(source[i]=='\0' dest[i]=='\0') return 0; else return -1; } } 答案:二、 int strcmp(char *source, char *dest) { while ( (*source != '\0') (*source == *dest)) { source++; dest++; } return ( (*source) - (*dest) ) ? -1 : 0; }

2、 寫一(yī)函數int fun(char *p)判斷一(yī)字符串是否為(wèi)回文,是返回1,不是返回0,出錯返回-1 答案:一(yī)、 int fun(char *p) { if(p==NULL) return -1; else { int length = 0; int i = 0; int judge = 1; length = strlen(p); for(i=0; i length/2; i++) { if(p[i]!=p[length-1-i]) judge = 0; break; } if(judge == 0) return 0; else return 1; } } 答案:二、 int fun(char *p){ int len = strlen(p) - 1; char *q = p + len; if (!p) return -1; while (p q) { if ((*p++) != (*q--)) return 0; } return 1;}

1.在OSI 7 層模型中,網絡層的(de)功能有(yǒu)( ) A.确保數據的(de)傳送正确無誤 B.确定數據包如(rú)何轉發與路由 C.在信道(dào)上傳送比特流 D.糾錯與流控

2.FDDI 使用的(de)是___局域網技術。( ) A.以太網; B.快速以太網; C.令牌環; D.令牌總線。

3.下面那種LAN 是應用CSMA/CD協議的(de)() A.令牌環 B.FDDI C.ETHERNET D.NOVELL

4.TCP 和(hé)UDP 協議的(de)相似之處是 ( ) A.面向連接的(de)協議 B.面向非連接的(de)協議 C.傳輸層協議 D.以上均不對 5.應用程序PING 發出的(de)是___報文.( ) A.TCP 請求報文。 B.TCP 應答報文。 C.ICMP 請求報文。 D.ICMP 應答報文。

6.以下說法錯誤的(de)是(多) ( ) A.中繼器是工作在物理(lǐ)層的(de)設備 B.集線器和(hé)以太網交換機(jī)工作在數據連路層 C.路由器是工作在網絡層的(de)設備 D.橋能隔離(lí)網絡層廣播

7.當橋接收的(de)分組的(de)目的(de)MAC地(dì)址在橋的(de)映射表中沒有(yǒu)對應的(de)表項時,采取的(de)策略是( ) A.丢掉該分組 B.将該分組分片 C.向其他端口廣播該分組 D.以上答案均不對

8.LAN Switch 在網絡層次模型中的(de)地(dì)位( ) A.物理(lǐ)層 B.鏈路層 C.網絡層 D.以上都不是

9.小于___的(de)TCP/UDP端口号已保留與現有(yǒu)服務一(yī)一(yī)對應,此數字以上的(de)端口号可(kě)自(zì)由分配。( ) A.199 B.100 C.1024 D.2048

10.當一(yī)台主機(jī)從一(yī)個網絡移到另一(yī)個網絡時,以下說法正确的(de)是 ( ) A.必須改變它的(de)IP 地(dì)址和(hé)MAC 地(dì)址 B.必須改變它的(de)IP 地(dì)址,但不需改動MAC 地(dì)址 C.必須改變它的(de)MAC 地(dì)址,但不需改動IP 地(dì)址 D.MAC 地(dì)址.IP 地(dì)址都不需改動答案:1.B; 2.C; 3.C; 4.C; 5.C; 6.BD; 7.C; 8.B; 9.C; 10.B.

華為(wèi)筆(bǐ)試題(4) 2006-09-30 13:00

1. 找錯 void test1() { char string[10]; char* str1="0123456789"; strcpy(string, str1); } 答:表面上并且編譯都不會錯誤。但如(rú)果string數組原意表示的(de)是字符串的(de)話,那這個賦值就沒有(yǒu)達到意圖。最好定義為(wèi)char string[11],這樣最後一(yī)個元素可(kě)以存儲字符串結尾符'\0'; void test2() { char string[10], str1[10]; for(int I=0; I 10;I++) { str1[I] ='a'; } strcpy(string, str1); } 答:strcpy使用錯誤,strcpy隻有(yǒu)遇到字符串末尾的(de)'\0'才會結束,而str1并沒有(yǒu)結尾标志,導緻strcpy函數越界訪問,不妨讓str1[9]='\0',這樣就正常了。 void test3(char* str1) { char string[10]; if(strlen(str1) =10) { strcpy(string, str1); } } 答:這又會出現第一(yī)道(dào)改錯題的(de)錯誤了。strlen(str1)算出來的(de)值是不包含結尾符'\0'的(de),如(rú)果str1剛好為(wèi)10個字符+1結尾符,string就得不到結尾符了。可(kě)将strlen(str1) =10改為(wèi)strlen(str1) 10。

2. 找錯 #define MAX_SRM 256 DSN get_SRM_no() { static int SRM_no; int I; for(I=0;I MAX_SRM;I++,SRM_no++) { SRM_no %= MAX_SRM; if(MY_SRM.state==IDLE) { break; } } if(I=MAX_SRM) return (NULL_SRM); else return SRM_no; } 答:我(wǒ)不知道(dào)這段代碼的(de)具體功能,但明顯有(yǒu)兩個錯誤 1,SRM_no沒有(yǒu)賦初值 2,由于static的(de)聲明,使該函數成為(wèi)不可(kě)重入(即不可(kě)預測結果)函數,因為(wèi)SRM_no變量放在程序的(de)全局存儲區中,每次調用的(de)時候還可(kě)以保持原來的(de)賦值。這裏應該去(qù)掉static聲明。

SAP面試題目收集

三大基本特性:

有(yǒu)的(de)還會提到 抽象 :忽略一(yī)個主題中與當前目标無關的(de)東西,專注的(de)注意與當前目标有(yǒu)關的(de)方面。

Java虛拟機(jī) 本質上就是一(yī)個程序,當它在命令行(xíng)上啓動的(de)時候,就開始執行(xíng)保存在某字節碼文件中的(de)指令。Java語言的(de)可(kě)移植性正是建立在Java虛拟機(jī)的(de)基礎上。任何平台隻要裝有(yǒu)針對于該平台的(de)Java虛拟機(jī),字節碼文件(.class)就可(kě)以在該平台上運行(xíng)。這就是“一(yī)次編譯,多次運行(xíng)”。

JDK 是 Java語言的(de)軟件開發工具包,主要用于移動設備、嵌入式設備上的(de)java應用程序。JDK是整個java開發的(de)核心,它包含了JAVA的(de)運行(xíng)環境(JVM+Java系統類庫)和(hé)JAVA工具。

Java運行(xíng)環境 (Java Runtime Environment,簡稱JRE)是一(yī)個軟件,由太陽微系統所研發,JRE可(kě)以讓計算機(jī)系統運行(xíng)Java應用程序(Java Application)。 JRE的(de)內(nèi)部有(yǒu)一(yī)個Java虛拟機(jī)(Java Virtual Machine,JVM)以及一(yī)些标準的(de)類别函數庫(Class Library)

HTTP(Hypertext Transfer Protocol,超文本傳輸協議)定義了浏覽器怎樣向服務器請求萬維網文檔,以及服務器怎樣把文檔傳送給浏覽器。從層次的(de)角度看,HTTP是面向事物的(de)應用層協議,它規定了在浏覽器和(hé)服務器之間的(de)請求和(hé)響應的(de)格式與規則,是萬維網上能夠可(kě)靠地(dì)交換文件的(de)重要基礎。

(CRLF表示回車換行(xíng))

HTTP分為(wèi)請求報文和(hé)響應報文,都是由三個部分組成:

請求方法:

狀态碼:

詳解: HTTP 報文結構 - (jianshu.com)

如(rú)果公司确實有(yǒu)任務需要加班,那我(wǒ)非常願意配合,但是我(wǒ)是比較喜歡高(gāo)效工作的(de),不喜歡拖延,不想浪費團隊的(de)時間。所以我(wǒ)會盡可(kě)能在工作時間內(nèi)高(gāo)效高(gāo)質地(dì)完成。然後在下班時間好好充電學(xué)習。

首先去(qù)官網看介紹,簡單了解這門語言,了解這門語言的(de)基礎知識,如(rú)變量、運算符、條件語句、循環語句、函數、類和(hé)結構、錯誤處理(lǐ)等,然後我(wǒ)會找一(yī)個好的(de)入手項目,進行(xíng)實戰學(xué)習,邊學(xué)邊做(zuò),同時可(kě)以在原有(yǒu)項目的(de)基礎上加一(yī)些自(zì)己的(de)想法。

個人感覺學(xué)校學(xué)到的(de)東西比較基礎,具有(yǒu)啓發性和(hé)教學(xué)性,同時範圍相對較廣,沒有(yǒu)深入教學(xué);而公司的(de)技術偏向實戰,偏向業務,更注重實踐性

JAVA中的(de)主函數,所有(yǒu)java程序的(de)運行(xíng)起點就是這個方法,除了args這個名字可(kě)以不一(yī)樣外,其他必須是這樣。

JS數字精度丢失

需求不明确,改用template

網絡請求

微信小程序分頁請求

自(zì)信。語言清晰、表達流暢、語速适中、聲音洪亮(liàng),和(hé)面試官進行(xíng)眼神的(de)交流。

SAP 是全球領先的(de)業務流程管理(lǐ)軟件供應商(shāng)之一(yī) ,公司開發的(de)解決方案能夠支持有(yǒu)效的(de)數據處理(lǐ)和(hé)跨企業信息流動。SAP 成立于 1972 年(nián),公司最初名為(wèi) System Analysis Program Development (Systemanalyse Programmentwicklung),後來縮寫為(wèi) SAP。自(zì)成立以來,SAP 已經從一(yī)家隻有(yǒu) 5 個人的(de)小型初創企業發展成擁有(yǒu)超過 10 萬名員工的(de)跨國(guó)企業。SAP 的(de)全球總部位于德國(guó)沃爾多夫。

借助最初推出的(de) SAP R/2 和(hé) SAP R/3 軟件, SAP 樹立了 ERP 軟件的(de)标準 。而随着 SAP S/4HANA 的(de)問世,ERP 被提升到了新的(de)高(gāo)度。這款軟件采用內(nèi)存計算技術來處理(lǐ)海量數據,并支持人工智能和(hé)機(jī)器學(xué)習等先進技術。

SAP 的(de)集成式應用能夠将企業的(de)各個業務領域連接起來,基于統一(yī)的(de)智慧企業套件和(hé)數字化平台運營。如(rú)今, SAP 擁有(yǒu)超過 2.2 億雲用戶 ,推出了 100 多款解決方案,覆蓋所有(yǒu)業務職能部門,是最大的(de)雲産品提供商(shāng)。

1972年(nián)從德國(guó)起家,1995年(nián)走進中國(guó), SAP 緻力于幫助各種規模企業數字化轉型。我(wǒ)們(men)不僅是 ERP 的(de)代名詞,更是全球知名的(de)企業應用軟件供應商(shāng),擁有(yǒu)超過48年(nián)的(de)軟件實踐與創新經驗,在大中華區為(wèi)超過 15,000 多家大中小型企業提供解決方案。在全球,我(wǒ)們(men)的(de)雲端用戶已經超過2.2億。

與之相對的(de),S/4HANA On-premise也能托管在雲上,而不是隻有(yǒu)管理(lǐ)在客戶自(zì)己的(de)服務器上這一(yī)個選擇。用于托管的(de)雲,可(kě)以是公有(yǒu)雲,或者私有(yǒu)雲。

所謂“中台”,其實是為(wèi)前台而生的(de)平台,它存在的(de)唯一(yī)目的(de)就是更好的(de)服務前台規模化創新,進而更好的(de)服務用戶,使企業真正做(zuò)到自(zì)身能力與用戶需求的(de)持續對接.

“中台”到底是什麽

嵌入式軟件開發面試題的(de)介紹就聊到這裏吧(ba),感謝你花時間閱讀本站內(nèi)容,更多關于嵌入式軟件開發面試題目、嵌入式軟件開發面試題的(de)信息别忘了在本站進行(xíng)查找喔。

掃碼二維碼