色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

嵌入式領域面試挑戰:這7個問題,你能答對幾個?

Linux愛好者 ? 來源:Linux愛好者 ? 2024-02-19 16:49 ? 次閱讀

1.關鍵字static的作用是什么?為什么static變量只初始化一次?

1)修飾局部變量:使得變量變成靜態變量,存儲在靜態區,存儲在靜態區的數據周期和程序相同,

在main函數開始前初始化,在退出程序時銷毀(無論是局部靜態還是全局靜態)。

2)修飾全局變量:全局變量本身就是存儲在靜態區,因此static并不能改變其存儲位置。但是,static

限制了其鏈接屬性,被static修飾的全局變量只能被該包含該定義的文件訪問(即改變了作用域)

3)修飾函數:是的該函數只能在包含該函數定義的的文件中被調用,對于靜態函數,申明和定義需要放到同一個文件夾中。

4)修飾成員變量:使用static修飾類的數據成員使其成為類的全局變量,會被類的所有對象共享,包括派生類的對象,所有的對象都只維持同一個實例。

因此,static成員必須在類外進行初始化(初始化格式:int base::var=10;),而不能在構造函數內進行初始化,不過也可以使用const修飾的static數據成員在類內初始化。

5)修飾成員函數:使用static修飾成員函數,使這個類只存在這一份函數,所有對象共享該函數,不含this指針,因而只能訪問類的static成員變量。

靜態成員是可以獨立訪問的,也就是說,無需創建任何對象實例就可以訪問。例如可以分裝某些算法,比如數學函數,如sin,cos等,這些函數本就沒必要屬于某一個對象,所以從類上調用更好。

注意:不可以用const static修飾成員函數。

對于所有的對象(不僅僅是靜態對象),初始化都只有一次,而由于靜態變量具有“記憶”功能,初始化后,一直都沒有被銷毀,都會保存在內存區域中,所以不會再次初始化。

存放在靜態區的變量的生命周期一般比較長,一般與整個源程序“同生死、共存亡”,所以它只需初始化一次。

2.關鍵字voliate作用和含義/使用場景?

1)volatile是一個類型修飾符(type specifier)。它是被設計用來修飾被不同線程訪問和修改的變量。如果沒有volatile,基本上會導致這樣的結果:要么無法編寫多線程程序,要么編譯器失去大量優化的機會。

2)如果沒有volatile關鍵字,則編譯器可能優化讀取和存儲,可能暫時使用寄存器中的值,如果這個變量由別的程序更新了的話,將出現不一致的現象。

3)一般用處:

1)并行設備的硬件寄存器(如:狀態寄存器)

存儲器映射的硬件寄存器通常也要加 voliate,因為每次對它的讀寫都可能有不同意義。

2)中斷服務程序中修改的供其它程序檢測的變量,需要加volatile

當變量在觸發某中斷程序中修改,而編譯器判斷主函數里面沒有修改該變量,因此可能只執行一次從內存到某寄存器的讀操作,而后每次只會從該寄存器中讀取變量副本,使得中斷程序的操作被短路。

3)多任務環境下各任務間共享的標志,應該加volatile

在本次線程內, 當讀取一個變量時,編譯器優化時有時會先把變量讀取到一個寄存器中;以后,再取變量值時,就直接從寄存器中取值;

當內存變量或寄存器變量在因別的線程等而改變了值,該寄存器的值不會相應改變,從而造成應用程序讀取的值和實際的變量值不一致 。

4)一個參數既可以是const還可以是volatile嗎?

可以的,例如只讀的狀態寄存器。它是volatile因為它可能被意想不到地改變。它是const因為程序不應該試圖去修改它。

5)volatile的本意是“易變的” 由于訪問寄存器的速度要快過RAM,所以編譯器一般都會作減少存取外部RAM的優化,但有可能會讀臟數據。

當要求使用volatile 聲明的變量的值的時候,系統總是重新從它所在的內存讀取數據,即使它前面的指令剛剛從該處讀取過數據。而且讀取的數據立刻被保存。

3.sizeof和strlen的區別,使用場景?

sizeof() 和 strlen() 的主要區別在于:

1)sizeof() 是一個運算符,而strlen() 是一個函數。

2)sizeof() 計算的是變量或類型所占用的內存字節數,而 strlen() 計算的是字符串中字符的個數。

3)sizeof() 可以用于任何類型的數據,而 strlen() 只能用于以空字符 '?' 結尾的字符串。

4)sizeof() 計算字符串的長度,包含末尾的 '?',strlen() 計算字符串的長度,不包含字符串末尾的 '?'。

4.兩個float怎樣比較相同,為什么這樣比較?什么原因導致的?

1)float小數點前后加起來有效數字只有6位。當給定的float有效數在6位以內轉換為字符不會丟失精度,當有效位數大于6位就會存在精度丟失。

2)double小數前后加起來的有效數字只有16位,當給定的double有效數在16位以內轉換為字符串不會丟失精度,當有效位數大于16位就會存在精度丟失。

3)我們在判斷浮點數相等時,推薦用范圍來確定,若x在某一范圍內,我們就認為相等,至于范圍怎么定義,要看實際情況而已了,float,和double 各有不同。

比如要判斷浮點數floatA和B是否相等,我們先令float x = A –B ;

并設constfloat EPSINON = 0.00001;

if ((x >= - EPSINON)&& (x <= EPSINON); //或者if(abs(x) <= EPSINON)

cout<<”A 與B相等<

else

cout<<”不相等”<

根據上面分析建議在系統開發過程中設計到字符轉換建議采用double 類型,精度設置為%.8lf即可,在比較浮點數十建議EPSINON=0.00000001

5.stm32使用浮點會對中斷效率產生什么影響?

1)答:在中斷或某個線程中進行浮點數操作,會導致另一個 TCP 通訊線程數據出錯。

TCP 協議棧中大量使用了 memcpy,而 memcpy 又使用了 FPU 的寄存器,極有可能在 TCP 處理數據的過程中,另一個中斷來了,進行了浮點運算并修改了 FPU 的寄存器,以致 TCP 數據出錯。

2)對于32單片機在中斷中使用浮點運算會使內存開銷太大,如果有FPU硬件加速運算可以緩解CPU軟件運算的壓力。

3)代碼中關于浮點的計算數值,一定要在浮點數后面加個f。比如10.1f,這是單精度浮點;而不要直接用10.1,這是雙精度浮點。因為雙精度浮點計算耗時很長,差10倍左右

6.講講IIC協議?stm32上的IIC速度?

1)兩線——串行數據(SDA) 和串行時鐘(SCL)。

2)每個器件都有一個唯一的地址識別,而且都可以作為一個發送器或接收器

3)多主機會產生總線裁決問題。當多個主機同時想占用總線時,企圖啟動總線傳輸數據,就叫做總線競爭。I2C通過總線仲裁,以決定哪臺主機控制總線

4)數據位的有效性規定:SDA 線上的數據必須在時鐘的高電平周期保持穩定。數據線的高或低電平狀態只有在SCL 線的時鐘信號是低電平時才能改變。

5)起始和停止條件:其中一種情況是在SCL 線是高電平時,SDA 線從高電平向低電平切換表示起始條件。當SCL 是高電平時,SDA 線由低電平向高電平切換表示停止條件。

6)起始信號和終止信號都是由主機發送的。在起始信號產生之后,總線就處于被占用的狀態,在終止信號產生之后,總線就處于空閑狀態。

7)每當發送器傳輸完一個字節的數據之后,發送端會等待一定的時間,等接收方的應答信號。接收端通過拉低SDA數據線,給發送端發送一個應答信號,

以提醒發送端我這邊已經接受完成,數據可以繼續傳輸,接下來,發送端就可以繼續發送數據了。

8)數據傳送格式:主機發送給從機,每一個字節必須保證是8位,先傳送最高位,每一個字節后面需要一個應答位,即一幀數據有9位。

9)軟件模擬IIC時,從機不對主機尋址信號應答時,它必須將數據線置于高電平,而由主機產生一個終止信號以結束總線的數據傳送。

10)每次數據傳送總是由主機產生的終止信號來結束。但是,若主機希望繼續占用總線進行新的數據傳送,則可以不產生終止信號,馬上再次發出起始信號對另一從機進行尋址。

11)硬件和軟件IIC的區別是:

硬件的IIC時序由IIC外設自己控制,不需要CPU去干預,CPU只需要把對應的數據寫到寄存器即可。

軟件IIC,的時序需要CPU自己控制,占用CPU的資源。

如果需要高速通信,建議選擇硬件IIC;如果需要多路通信或者靈活的時序控制,建議選擇軟件IIC。

硬件IIC移植起來比較麻煩,軟件IIC移植起來就很簡單。

7.IIC從機地址是如何配置的?主機地址是如何配置的?

c72ec488-ceda-11ee-a297-92fbcf53809c.png

1)從機地址的確定:第0位是讀寫位。(如對于24C02這塊存儲器,它若作為從機,那么它的地址中7~4位是固定的,更改不了,

第3~1位是可以更改的,每一位根據硬件的管教連接來確定,連接高電平那就是1,低電平就是0)

2)在起始信號后必須傳送一個從機的地址(7位),第8位是數據的傳送方向位(R/T),用“0”表示主機發送數據(T),“1”表示主機接收數據(R)。

審核編輯:黃飛

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

    關注

    5082

    文章

    19104

    瀏覽量

    304815
  • 寄存器
    +關注

    關注

    31

    文章

    5336

    瀏覽量

    120230
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62573
  • 編譯器
    +關注

    關注

    1

    文章

    1623

    瀏覽量

    49108
  • 狀態寄存器
    +關注

    關注

    0

    文章

    39

    瀏覽量

    7083

原文標題:分享7道嵌入式面試題,你會幾道?

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    想成為嵌入式程序員應知道的幾個最基本問題

    。這些問題著重考察的系統調用和內存分配策略方面的能力嗎?標志著出題者也許花時間在微機上而不是在嵌入式系統上。如果上述任何問題的答案是"是"的話,那么我知道我得認真考慮我是否應該
    發表于 09-09 10:14

    經典嵌入式面試

    經典嵌入式面試
    發表于 08-20 09:39

    嵌入式開發面試題3題道,思考一下,幾個

    嵌入式開發面試題3題道,思考一下,幾個1.ARM異常有哪些分類?2.ARM異常會發生哪些硬件操作?3.請簡述中斷和異常的差別?
    發表于 08-21 14:49

    嵌入式er日常!面試的準備

    在求職中,我主要投報了軟件研發和嵌入式軟件研發兩職位,與各位分享一下我的面試準備。面試需要準備一下幾個方面:首先,是自我介紹準備一段1分鐘
    發表于 07-07 10:02

    秋招開始了!確定不看看這份C語言測試的經典嵌入式面試題?

    符的 ASCII 值。這些問題著重考察的系統調用和內存分配策略方面的能力嗎?標志著出題者也許花時間在微機上而不上在嵌入式系統上。如果上述任何問題的答案是“是”的話,那么我知道我得認真考慮我是否應該去做這份工作。
    發表于 09-14 14:55

    學員嵌入式Max面試經歷分享

    嵌入式Max 】,有少許調整。這個算是換工作系列最后一篇,主要想談談找工作過程中的一些感想,比如公司對于學歷的看法;有些公司面試為什么相對來說是面試造核彈、入職擰螺絲?以及我對這些東西的理解與看法
    發表于 07-05 16:28

    嵌入式物聯網的硬件設計挑戰

    `隨著物聯網的出現,由于連接設備的快速發展,嵌入式系統市場出現了大規模增長。由于物聯網,嵌入式智能連接以驚人的速度持續增長。嵌入式系統在物聯網中的作用物聯網被定義為一過程,其中對象配
    發表于 08-16 14:28

    C++在嵌入式領域的用處是什么?

    面試嵌入式Linux好幾次被問到是否用C++開發過產品據我所知嵌入式領域基本上都是用C語言和匯編語言C++有什么用?能開發什么產品?
    發表于 11-06 06:51

    嵌入式軟件面試資料大合集

    背景先說說本人的背景,我,一大專人,從事嵌入式開發兩年了,之前在一家公司是負責單片機和物聯網開發的。2020年年底我選擇了裸辭(主要想出去玩)。知道春節結束后,出來找工作。我的技術棧:單片機(51
    發表于 10-28 08:14

    嵌入式技術面試的問題匯總

    嵌入式技術面試1 C/C++1.1 結構體struct與union區別?struct與class區別?1.2 結構體使用需要注意什么?字節對齊?1.3 帶參數宏與一函數差別?1.4 有一
    發表于 11-09 08:02

    嵌入式工程師如何準備基礎知識面試

    作者:火哥授權轉載自公眾號嵌入式老鳥的職場之道(id:ict_embedded),火哥也是我們的校園代理火哥自從校招找工作到現在,面試過不下50家公司,拿到過不少于30offer。雖然不能說
    發表于 12-24 07:22

    嵌入式軟件面試題集錦

    嵌入式有關面試內容
    發表于 01-05 11:25 ?10次下載

    嵌入式技術面試

    嵌入式技術面試1 C/C++1.1 結構體struct與union區別?struct與class區別?1.2 結構體使用需要注意什么?字節對齊?1.3 帶參數宏與一函數差別?1.4 有一
    發表于 11-04 09:21 ?16次下載
    <b class='flag-5'>嵌入式</b>技術<b class='flag-5'>面試</b>

    面試嵌入式工作,會被問什么問題?

    面試嵌入式工作時,面試官可能會從多個方面考察應聘者的知識、技能和經驗。以下是一些常見的嵌入式工作面試問題,這些問題涵蓋了基礎知識、專業技能、
    的頭像 發表于 07-17 09:26 ?2006次閱讀
    <b class='flag-5'>面試</b><b class='flag-5'>嵌入式</b>工作,會被問什么問題?

    面試嵌入式都會問那些問題呢?

    作為一名電子工程專業的畢業生,我對嵌入式系統開發一直充滿熱情。當我決定踏入這個行業,尋找屬于自己的職業道路時,面試成為了我必須面對的挑戰。在這里,我想分享一些我在嵌入式系統
    的頭像 發表于 11-27 09:13 ?301次閱讀
    <b class='flag-5'>面試</b><b class='flag-5'>嵌入式</b>都會問那些問題呢?
    主站蜘蛛池模板: YELLOW高清视频免费观看| 亚洲欧洲日产国产 最新| 俄罗斯兽交XXXXX在线| 无码137片内射在线影院| 欧美影院在线观看完整版 mp4| 久久婷五月综合色啪网| 狠狠狠色丁香婷婷综合久久| 国产99r视频精品免费观看| 顶级少妇AAAAABBBBB片| 成人女人A级毛片免费软件| 亚洲欧洲日韩视频在钱| 新妺妺窝人体色WWW| 亚洲 欧美 国产 伦 综合| 嗯啊哈啊好棒用力插啊| 美女夫妻内射潮视频| 国产精品视频免费观看| 国产成人亚洲精品无广告| 2021国产在线视频| 日韩视频中文在线一区| 日本色呦呦| 探花口爆颜射乳交日韩| 羞羞答答的免费视频在线观看| 星空无限传媒视频在线观看视频| 迅雷成人论坛| 亚洲网站视频在线观看| 在线视频免费观看| 午夜日韩久久影院| 欧美性情video sexo视频| 人妖欧美一区二区三区四区| 色情www日本欧美| 青青青视频在线| 手机在线观看mv网址| 亚洲成色WWW久久网站夜月| 亚洲日本欧美产综合在线 | 国产午夜精品一区理论片飘花 | 99视频精品国产在线视频| wwwwxxxx欧美| 国产日韩欧美有码在线视频| 久久99精品国产自在自线| 女同志videos最新另| 免费国产福利|