中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

什么顏色做網(wǎng)站好看企點qq

什么顏色做網(wǎng)站好看,企點qq,漢陽網(wǎng)站推廣,新聞網(wǎng)頁面的模塊設計實驗報告第一章-非RTOS bootloader工作流程 MCU啟動流程 通信協(xié)議,SPI IIC MCU怎么選型,STM32F1和F4有什么區(qū)別 外部RAM和內(nèi)部RAM區(qū)別,怎么分配 外部總線和內(nèi)部總線區(qū)別 MCU上的固件,數(shù)據(jù)是怎么分配的 MCU啟動流程 IAP是怎么升級的…

第一章-非RTOS

  • bootloader工作流程

  • MCU啟動流程

  • 通信協(xié)議,SPI IIC

  • MCU怎么選型,STM32F1和F4有什么區(qū)別

  • 外部RAM和內(nèi)部RAM區(qū)別,怎么分配

  • 外部總線和內(nèi)部總線區(qū)別

  • MCU上的固件,數(shù)據(jù)是怎么分配的

  • MCU啟動流程

  • IAP是怎么升級的,突然斷電怎么辦

  • 挑了麥輪項目(因為大疆RM也是麥輪,面試官看樣子比較感興趣)

  • 為什么用的CAN總線

  • 你說一下spi和 i2c和 UART的 各自的工作方式優(yōu)缺點?

  • 你知道怎么判斷棧溢出嗎?

  • 能簡單說一些你用過的stm32的一些芯片的配置嗎?CPU主頻,flash和RAM分別都是多大的?

  • 你在stm32上都做過哪些開發(fā)?

  • 你開發(fā)過哪些驅(qū)動嗎?

  • 你了解整個SPI的通信過程嗎?SPI有幾根線,分別是什么?你使用SPI的時候速率配置的是多少?

  • 有使用過DMA嗎?解釋一下什么是DMA?

  • SPI有4種模式你知道是那4種模式嗎?

  • 你在開發(fā)調(diào)試過程中有遇到過哪些難以解決的問題可以分享一下嗎?

  • .你有做過一些比較大型的軟件開發(fā)嗎?就是一些比較大的功能需要做一些設計、分層的東西。
    我說了其中一個項目分層驅(qū)動層、中間層和應用層。

  • 中間層的設計你考慮了哪些因素?

  • 堆和棧有什么區(qū)別?

  • 先問點iic,spi基礎知識,速率,工作模式。

  • ARM體系結(jié)構。然后被逮住問:7種異常是什么(沒答全),中斷觸發(fā)到返回的具體行為(CM3權威指南里有),中斷嵌套如何實現(xiàn)(NVIC相關),中斷機制的具體實現(xiàn)(還在答中斷具體行為,他問的應該是兩級向量表如何查找),中斷部分結(jié)束。

  • c知識指針與引用的區(qū)別

  • 答了點單指令多數(shù)據(jù)流,感覺不感興趣,又說了流水線沖突與解決,反問cache-miss什么情況,分支預測什么原理(高級計算機結(jié)構課上內(nèi)容)。看來芯片方向看重體系結(jié)構的知識,課上學的終于有用了。

  • 之后我就把自己的優(yōu)勢定位在ARM體系結(jié)構和CPU原理/OS任務切換與調(diào)度原理/靜態(tài)鏈接知識(這里推薦《程序員的自我修養(yǎng)》)。

  • 筆試考了DMA與中斷傳輸?shù)谋容^

  • 畫項目框圖、我開始把所有項目敘述和重點問題全部寫紙上,每天背一遍。

  • 什么叫軟硬實時、m4內(nèi)核雙堆棧機制、順便答了arm模式切換和上下文切換,bootloader,鏈接原理,

  • 在職學姐告訴我,應該答不喜歡華為的文化。

  • 大華股份、算法工程化崗。提前準備了一些ucos移植,arm指令集流水線和靜態(tài)鏈接的知識,事實證明,準備的方向很對,他很感興趣。

  • 問了ucos移植的細節(jié),提到了一種并發(fā)的指令集

  • 最后問我的優(yōu)勢劣勢分別是什么,答優(yōu)勢是對底層原理的理解和對編譯器的了解,劣勢是不懂Linux。

  • 中斷機制,大概有多少中斷,可修改向量表嗎(通常不可,有例外),又問m4內(nèi)核的雙堆棧機制。BL指令的跳轉(zhuǎn)范圍(32MB)。

  • 靜態(tài)鏈接,深挖強弱符號的東西,最后說我對底層還是比較了解。

  • IIC與SPI的不同(片選方式,異步同步),IIC讀寫方向如何區(qū)分(地址位最后一位的高或低)

  • 9軸數(shù)據(jù)的意義,答了姿態(tài)解算中隊數(shù)據(jù)的融合。

  • 手撕代碼環(huán)節(jié),特意找了個最簡單的給我,??驮}鏈表表示的兩數(shù)相加

  • 問信號量,進入臨界區(qū)的操作,為什么關中斷可以保護臨界區(qū),cpsr如何保存。

  • 問靜態(tài)鏈接,預處理是什么編譯選項,-g是什么意思,如何使用ar生成庫文件,這塊不熟,會不會gdb(不會)。那就說說makefile一條指令的格式,.c生成.o什么選項,.o生成.elf什么選項,.o與.elf的區(qū)別聯(lián)系,舉個區(qū)別的例子。

  • 項目,直接畫個框圖給他,說的熟的不能再熟了。然后提問中斷機制,這就進入了我的“模板”,然后重點問了流水線效率問題,為什么中斷返回PC要減4,拿出試卷讓我答沒寫完的題。然后讓結(jié)合項目代碼分析如何避免流水線沖突(調(diào)整指令執(zhí)行順序,分支預測,增加部件)

  • 靜態(tài)鏈接,也是熟的不能再熟的東西,是我亮點之一。

  • 老生常談,敘述中斷機制,bootloader,模板開啟引出流水線

  • 如果使用C++導致MCU資源不夠如何解決(答:直接操作寄存器)

  • 相關的通信協(xié)議I2C;SPI;串口有沒有用過

  • 講一下串口通信協(xié)議,串口通信如何校驗,原理

  • 有沒有遇到過IO口輸出電壓穩(wěn)定的問題,如何解決的

  • 項目中有沒有用到I2C,主要用在哪方面,講一下選擇I2C的原因

  • 靜態(tài)局部變量與局部變量的區(qū)別(很基礎)

  • 為什么局部變量未定義時,每次初始化的結(jié)果是不確定的?是個真隨機數(shù)還是個偽隨機數(shù)?(我答:與棧的工作過程有關)

  • 那么嵌入式中棧的工作機制是什么?(不會)

  • 我連續(xù)調(diào)用同一個函數(shù)兩次,他的局部變量初始化結(jié)果是否會一致?

  • 遠程網(wǎng)絡升級嵌入式,他就問我你有考慮過你的固件安全性問題嗎?如果有其他人通過網(wǎng)絡途徑下載一個非官方的固件包,你怎么去判斷?

    C語言問題

    • 函數(shù)指針了解么,在哪里有用到?

    • struct字節(jié)對齊了解么?

    • 什么是大端小端?

    • 內(nèi)存分配函數(shù)了解么?如果系統(tǒng)中只有10K內(nèi)存,而我要分配12K,能分配成功嗎?如果能,那么將分配到的區(qū)域用memset進行初始化,會成功嗎?

    • 除了堆區(qū),程序運行的內(nèi)存中還有哪些區(qū)域?

    C++問題

    1. 智能指針有了解嗎?
    2. 容器了解嗎?vector實現(xiàn)的機制是怎么樣的?
    3. 迭代器有了解嗎?講解一下你的理解、

嵌入式單片機一面

1和32架構的區(qū)別

\3. Stm32處理中斷的過程

\4. 保護現(xiàn)場保護什么東西(寄存器和堆棧)

\5. 要保護那些寄存器?

\6. Stm32是要中斷嵌套的嗎,什么時候需要什么時候不需要

\7. Cortex-m系列使用浮點會對stm32中斷效率產(chǎn)生什么影響(不清楚)

\8. 對嵌入式哪方面比較深刻,研究比較深入的

\9. Uart是怎么樣的接口

\10. Uart異步,不需要時鐘,那為什么還要設定波特率

\11. Spi跟uart在使用上有什么區(qū)別

\12. Spi和uart需不需要區(qū)分主從

\13. Spi的從是否可以主動讀寫主的數(shù)據(jù),怎么做到的

\14. 寫iic、spi、uart驅(qū)動需要哪些注意的地方

\15. Iic、spi、uart接收方式有三種,輪詢,中斷和DMA,如果是中斷收到的數(shù)據(jù)要誰去申請誰去釋放

\16. 中斷里數(shù)據(jù)往一個buffer去放,這個buffer要誰去申請

\17. 如何保證buffer讀和寫的互斥

static用法,變量存儲位置

C語言編譯后的內(nèi)存分布

volatile變量作用?修飾哪些變量,為什么這些變量要用volatile修飾

SPI四種模式

串口發(fā)送一個字節(jié)多少位

?在做硬件驅(qū)動的時候,碰到的比較困難的問題? 項目中有制定通訊協(xié)議,就問有出現(xiàn)過什么通訊錯誤,出現(xiàn)錯誤了怎么辦?通訊丟失怎么辦?

  • STM32啟動過程?

  • C++為什么有指針還要引用?

    一些總結(jié)摘抄‘

    作者:DJI小迷弟
    鏈接:https://www.nowcoder.com/discuss/794763?channel=-1&source_id=profile_follow_post_nctrack
    來源:??途W(wǎng)

    C/C++

    • static作用,變量加入static以后在內(nèi)存中存儲位置的變化。
    • volatile作用
    • C++為什么有指針還要引用,為什么不和JAVA一樣拋棄指針
    • delete和delete[]的區(qū)別
    • 虛函數(shù)是用來干嘛的?虛函數(shù)機制怎么實現(xiàn)的?虛表指針在內(nèi)存中的存放位置?
    • C++多態(tài)怎么理解?C++有哪些多態(tài)的典型例子?
    • 敘述程序編譯都包含哪些階段,每個階段干了什么?
    • CMake是如何包含文件目錄的
    • 全局變量和局部變量在什么地方?堆棧如何申請資源?
    • C語言編譯后的內(nèi)存分布
    • 我連續(xù)調(diào)用同一個函數(shù)兩次,他的局部變量初始化結(jié)果是否會一致?(函數(shù)調(diào)用的過程)
    • 你說靜態(tài)局部變量存儲在靜態(tài)區(qū),那么靜態(tài)區(qū)的創(chuàng)建和消失是在什么時候?
    • 我在windows里面運行了多個進程,其中一個進程執(zhí)行完了,他的靜態(tài)區(qū)會如何處理?(多進程的內(nèi)存管理問題)
    • 靜態(tài)局部變量與局部變量的區(qū)別?為什么局部變量未定義時,每次初始化的結(jié)果是不確定的?是個真隨機數(shù)還是個偽隨機數(shù)?
    • 嵌入式中棧的工作機制是什么?
    • struct字節(jié)對齊了解么?
    • 容器了解嗎?vector實現(xiàn)的機制是怎么樣的?
    • 迭代器有了解嗎?講解一下你的理解
    • 內(nèi)存分配函數(shù)了解么?如果系統(tǒng)中只有10K內(nèi)存,而我要分配12K,能分配成功嗎?如果能,那么將分配到的區(qū)域用memset進行初始化,會成功嗎?
  • 處理器架構

    作者:DJI小迷弟
    鏈接:https://www.nowcoder.com/discuss/794763?channel=-1&source_id=profile_follow_post_nctrack
    來源:??途W(wǎng)

    處理器架構

    • 51和32架構的區(qū)別
    • MCU可以運行Liunux嗎,為什么
    • STM32啟動過程(上電開始->main執(zhí)行的過程)
    • 中斷響應執(zhí)行流程,中斷上下文指的什么,保存中斷上下文是完成的什么操作,以STM32為例,都有哪些寄存器被保存
    • STM32 F1和F4的區(qū)別
    • Cotex-M系列使用浮點運算對STM32中斷效率會產(chǎn)生什么影響
    • STM32常見寄存器:R13(SP,堆棧指針),R14(LR,連接寄存器),R15(PC程序計數(shù)器)作用
    • 什么是大小端模式

常見硬件接口協(xié)議/總線

SPI
  • SPI有哪四種工作模式
(2)IIC
(3)UART
  • Uart異步,不需要時鐘,那為什么還要設定波特率
(4)FSMC
(5)AXI

四旋翼中的姿態(tài)解算算法是如何運行的?兩個部分:一個是數(shù)據(jù)濾波,一個是姿態(tài)解算Mahony。

PID算法的實現(xiàn)是庫還是自己寫?自己寫的,算法不難,難的是參數(shù)調(diào)試

講一下PID算法的實現(xiàn)過程?

簡單說一下spi協(xié)議,spi協(xié)議最大傳輸速度。什么是平衡二叉樹,為什么要這樣設計平衡二叉樹?

鏈表和數(shù)組的區(qū)別,優(yōu)劣?

IIC協(xié)議的最大通信速率、你覺得什么因素限制了IIC速度

問:stm32使用了哪些外設協(xié)議?
答:串口、iIC、spi、pwm

問:stm32使用了哪些外設協(xié)議?
答:串口、iIC、spi、pwm

問:做項目時,stm32芯片的選型?
答:外設數(shù)量、內(nèi)存大小。

問:stm32程序出問題如何解決?
答:通過keil里的debug功能,端點、單步調(diào)試。

問:一些傳感器的數(shù)據(jù)采集如何保證實時性?
答:通過在通用定時器的中斷中釋放信號量同步任務、ucos系統(tǒng)的延時函數(shù)實現(xiàn)。

問:如何調(diào)試PID參數(shù),仿真還是實測?
答:配合上位機軟件,在室內(nèi)場地實際調(diào)試參數(shù)。

問:在飛行器遙控中,藍牙通訊的距離對數(shù)據(jù)傳輸有無影響?
答:調(diào)試時飛行器與上位機的距離較近,沒遇到這個問題。

下面大華單片機的題目

  • 如何使用軟件實現(xiàn)iic

  • spi有哪些信號線

  • 從大一到大三寫的代碼多少行?手寫內(nèi)存復制函數(shù),提問:s與d重疊時如何處理?

  • 說一說c標準庫的一些函數(shù)名,給我整懵了

深圳小米

  • 操作系統(tǒng)的中斷上半部和下半部

  • 中斷中不能執(zhí)行什么函數(shù)

  • (手寫筆試題)求斐波那契數(shù)列

  • 看程序,回答輸出。指針相關的題

南京地平線

  • 詢問飛行器項目,詢問 飛行器項目的姿態(tài)解算算法,使用解算算法的優(yōu)點,相比于卡爾曼算法的優(yōu)點。實時操作系統(tǒng)的實時性是如何實現(xiàn)的。主要是考察對項目的掌握程度。

星宸科技

首先是一個技術官針對筆試提問、一步步引導我做出筆試題。然后提問了一些C語言的知識,內(nèi)存管理等,RTOS的信號量、競爭等。

隨后是主管面試,畫圖解釋C語言實現(xiàn)動態(tài)內(nèi)存分配。

ARM相關的

  • ARM是32位,地址空間是

ARM是32位,地址空間是2的32次冪,4G地址空間。所有的外設(FLASH,RAM,SD卡等等)都映射到這4G的空間上。比如大部分ARM7都把RAM映射到0x40000000,所以對RAM的操作就在0X40000000開始的地址上。FLASH從0X0開始。使用FLASH還要考慮地址重映射,就是選擇片內(nèi)FLASH或片外FLASH。
FLASH一般是8位或16位,當它接到32位的ARM上時,地址位就會錯位。對于16位FLASH,FLASH的A0要接ARM的A1。對于8位FLASH,FLASH的A0要接ARM的A0。ARM的A0對應8位,ARM的A1對應16位,ARM的A2對應32位,如果FLASH是32位,那么FLASH的A0接ARM的A2.

  • STM32啟動方式和程序存儲

    https://blog.csdn.net/weixin_42279760/article/details/121063006

    此文檔主要介紹在stm32程序下載與運行時,FLASH和RAM的使用情況

    1.背景介紹
    因為stm32內(nèi)部有兩個存儲空間,一個是片上的FLASH,一個是片上的RAM,其中FLASH相當于硬盤,其空間一般較大; RAM相當內(nèi)存,其空間一般較小。不過使用者可以通過 BOOT1/BOOT0 引腳選擇程序是在FLASH或RAM中運行(RAM運行執(zhí)行效率較高)。

    2.存儲概況
    以stm32f103zet6為例,此芯片的FLASH的起始地址為0x08000000,SIZE = 0x80000共512K字節(jié)RAM的起始地址為0x20000000,SIZE = 0x10000共64K字節(jié)(因為不同的SRAM芯片的型號不同,但是在stm32中的起始地址都是0x20000000+SIZE)。除此之外,還有一塊為系統(tǒng)存儲器起始地址為0x1FFFF000,SIZE = 0x7FF共2K字節(jié),其中內(nèi)置了ST提供的Boot Loader,可以通過該Boot Loader下載程序到FLASH,詳細部分在此不做討論。

    3.編譯生成信息分析

    Keil5 編譯生成
    compiling stm32f10x_tim.c…
    linking…
    Program Size: Code=7632 RO-data=336 RW-data=72 ZI-data=55640
    FromELF: creating hex file…
    After Build - User command #1: CopyHex_Flash.bat

    1
    2
    3
    4
    5
    6
    上圖為Keil5工程編譯生成信息,這些信息都代表著程序占用的空間。

    Code:表示程序代碼部分所占空間
    Ro-data:表示程序定義的常量所占空間(eg:const定義數(shù)據(jù)類型)
    RW-data:表示已初始化的全部變量所占空間
    ZI-data:表示未初始化的靜態(tài)和非靜態(tài)全局變量以及堆棧所占空間
    在以下三種情況中FALSH和RAM的占用情況:

    運行時程序占用FLASH的大小 SIZE = Code + RO-data+ RW_data
    運行時程序占用RAM的大小 SIZE = RW-data + ZI-data
    燒錄時程序占用FLASH的大小 SIZE = Code + RO-data + RW-data
    4.疑問解析

    程序運行時RW為什么既在FALSH中出現(xiàn)又在RAM中出現(xiàn)呢?
    這是因為FALSH部分屬性為只讀的,而RAM的屬性雖然是讀寫但是里面的數(shù)據(jù)不能掉電保存,因此在燒錄STM32程序的時候,只能先將RW-data保存到flash中,在上電之后系統(tǒng)再將flash中的RW-data拷貝到RAM中進行讀寫操作,因此在FLASH和RAM中都要留出RW-data的占用空間。
    為什么燒錄時沒有ZI-data放在flash中呢?
    這是因為ZI-data中的數(shù)據(jù)都是0,沒必要包含,只有程序運行之前,將ZI-data所在的區(qū)域(這一區(qū)域在RAM中)一律清零即可。包含進去反而浪費FLASH的存儲空間。

  • STM32F103的RAM和FLASH大小

image-20220908083525893

小米嵌入式面經(jīng)

1.變量聲明和定義的區(qū)別

2.const和指針組合有幾種情況,分別介紹一下。

3.項目中用到了spi,spi有幾種工作模式,簡單介紹一下。

4.static關鍵字

5.volatile關鍵字,舉幾個什么時候需要用到volatile關鍵字的例子。

6.進程與線程區(qū)別,通信方式

7.C語言內(nèi)存分區(qū),未定義的全局變存放在哪個區(qū)。

剩下問的問題很基礎,就c語言加操作系統(tǒng)基礎,太基礎了反而記不清了。八股都答出來了,所以印象不是很深。

兩面總共手撕三個代碼:

1.刪除鏈表重復節(jié)點。(劍指offer原題,難度中等)

2.將字符串里的數(shù)字提取出來然后轉(zhuǎn)成數(shù)字打印。(難度簡單,應該是leetcode的題,掌握數(shù)組基礎即可,記得數(shù)字范圍很大,用long接收)

3.一個循環(huán)輸入,滿足某某條件跳出結(jié)束即可。(難度在于用 scanf(****!=EOF);即可,??陀休斎刖毩?#xff0c;做多了就會了)

百度 北京 嵌入式linux(提前批

static,vailate,const關鍵字。

3.棧和隊列。

4.數(shù)組和鏈表。

代碼:

1.合并兩個鏈表,按順序。

2.去除字符串里面的空格。

馬上面,1.5h

1.還問項目,問里面的難點,還問了一下本科的畢設,因為寫在簡歷上。

2.也問了static關鍵字,函數(shù)里用static定義的變量,存在哪個區(qū)?

3.malloc,在函數(shù)里定義一個很大的數(shù)組,應該直接定義還是用malloc?

代碼:

1.復制鏈表。

2.判斷計算機是大端還是小端。

3.兩數(shù)之和,leetcode第一題。

4.Linux使用多線程,實現(xiàn)軟件定時功能。

華為 上海無線 嵌入式軟件工程師

9.11 筆試

1.有向無環(huán)帶權圖,找關鍵路徑。

2.內(nèi)存分配算法。

3.兩個數(shù)組,給定規(guī)則,求最長有連續(xù)關聯(lián)數(shù)據(jù)的子數(shù)組。

9.24 一面,45min

1.介紹項目,問軟件部分的結(jié)構框架

\2. static關鍵字

3.大小端,字節(jié)對齊,問網(wǎng)絡通信一般是什么字節(jié)序?

4.存儲結(jié)構,堆和棧的區(qū)別,還有哪些存儲區(qū)?

5.宏函數(shù)和內(nèi)聯(lián)函數(shù)的區(qū)別。#define在編譯的那個環(huán)節(jié)使用?

6.問指針問題,給出四行代碼,問含義

int *p[10]

int (*p)[10]

int* (*p)[10]

int (*p)10

7.手撕一個代碼,給定數(shù)組和一個整數(shù)k,問有多少長度至少為2且元素和為k的倍數(shù)的子數(shù)組。開始寫的方法暴力,后面和面試官討論說出來思路。

當天過了一小時二面,45min

1.介紹項目

2.大小端

3.字節(jié)對齊問題,給一個結(jié)構體

struct{

char a;

char b;

int c;

}

問在32位機器上,使用sizeof()多大,我說8字節(jié),面試官說還可能是12字節(jié),如果是這種情況:

struct{

char a;

int c;

char b;

}

4.數(shù)據(jù)結(jié)構,問滿二叉樹,完全二叉樹,BST二叉搜索樹,說自己的理解和區(qū)別。

5.快排,冒泡排序的時間復雜度,什么情況下快排時間復雜度比冒泡高?

6.手撕一個代碼,二叉樹路徑總和位sum的路徑有多少,不一定從根節(jié)點開始,但一定從上向下。用兩層遞歸寫出來。

7.問對無線通信有什么了解。

malloc分配的內(nèi)存在哪里。

單片機啟動程序,在執(zhí)行main之前的是什么。

keil怎么使用庫。

問了堆和棧的區(qū)別,static關鍵字。問到malloc()后不釋放會怎樣。

第二章-RTOS相關

  • 操作系統(tǒng)基礎,任務調(diào)度,同步,多線程

  • RTOS

  • 你知道怎么判斷棧溢出嗎?

  • 進程通信有使用過一些鎖和同步的東西嗎?

  • 多個進程在獲取不到鎖的時候會進入什么狀態(tài)?

  • A:阻塞。

  • 假設一個低優(yōu)先的進程A獲取先到鎖,高優(yōu)先級的進程B獲取不到鎖,那高優(yōu)先級進程B的進行也會阻塞嗎?

  • A:還是會阻塞。

  • 那如果還有一個任務C,優(yōu)先級介于A和B之間,那么C任務會去搶占CPU資源嗎?

    會的.

  • 那這樣導致B等待資源的時候會越來越長,這樣的問題有方法可以解決嗎?因為B的優(yōu)先級才最高。

    A:先把A優(yōu)先級提高,等A釋放后再給B。

  • 用什么方式提高A的優(yōu)先級?

    RTOS有函數(shù)可以提高。

  • 那么A的優(yōu)先級需要提高到多少?

    面試過后才突然想起來,從問題15-20,其實面試官想考的是“優(yōu)先級反轉(zhuǎn)問題”。但是我當時回答的磕磕絆絆,甚至有一些錯誤。

  • 又問我信號量組織方式

  • 問單片機與嵌入式系統(tǒng)的最大區(qū)別在哪里,答嵌入式系統(tǒng)可以跑多任務,然后逮住OS開始問。任務在內(nèi)存中的組織方式(TCB-用戶棧-用戶代碼),上下文切換時任務在內(nèi)存中是如何變動,任務調(diào)度點,優(yōu)先級反轉(zhuǎn)如何解決,任務搶占如何發(fā)生,通信機制。

  • 信號量實現(xiàn)的底層原理,可不可以用一個全局變量代替信號量的計數(shù)值,答不可以信號量是臨界資源要進臨界區(qū),問怎么進臨界區(qū),答關中斷保存cpsr,他比較滿意。

  • 大疆一面:問項目,反復問上系統(tǒng)的必要性,估計是個搞os的根本不懂四軸,以前栽過,這次答圓了,又主動答了中斷機制,看他不是很感興趣。最后問我懂不懂os的內(nèi)存管理,答不懂,之后就是筆試編程為啥不做,答嵌入式對算法只是了解,項目里沒用到。

  • 二面,把四軸的控制流程說了一遍,他對四軸還是懂一點,但飛控算法沒問,難道大疆不該很看重這一塊嗎,把所有項目大概都問了一遍,無異常。然后問,你的劣勢在哪,答不會Linux,又問我圖像處理的算法,靠本科上課學的還沒忘干凈的知識答一點,中位數(shù)濾波,邊緣濾波,想深問,我說我只是了解。感覺他不很滿意

  • 二面掛了,掛的很不甘心,我的cpu原理知識還沒吐出來呢,靜態(tài)鏈接也沒問,arm這塊就問了個中斷機制?;貋矸此紴槭裁匆怀鲎约旱膬?yōu)勢,感覺自己所答還是很零散,中斷就中斷,os就os,指令集就指令集,串不起來。后來我**找到一種組織的方式,**能從中斷入手把arm架構,上下文模切換,指令流水和程序優(yōu)化串起來講,形成一個模板,只要問到其中某一個知識我就能把全部一串說出來,他感興趣自然再深問。漲了一波經(jīng)驗,掛的不虧。

  • 雙堆棧機制與模式切換,任務調(diào)度點與任務在內(nèi)存中的組織方式(TCB-用戶棧-用戶代碼),優(yōu)先級反轉(zhuǎn)與解決,死鎖的原因,然后makefile語法一個。

  • 問CPU知識,“模板”用上了。先問m4 的雙堆棧與上下文切換,17個寄存器的功能,LR的作用。順勢答為何中斷返回要LR中的值減4,然后指令流水、CPU知識就跟著出來了。又問分支預測發(fā)生在指令處理的哪個階段,cache的作用,回寫與寫透的區(qū)別,為什么設計三級緩存。

  • 線程切換是怎么設計的?

  • 信號量、互斥量底層是怎么設計的?

  • 內(nèi)存管理是如何設計的?

  • 中斷管理是如何設計的?

  • 你自己設計的OS相比于別人的,有哪些創(chuàng)新之處?

  • 實時操作系統(tǒng)的調(diào)度器設計細節(jié)?包括調(diào)度算法設計和上下文保存中的細節(jié)

  • 一個操作系統(tǒng)中哪些地方會調(diào)用調(diào)度器?

  • 一個信號量釋放之后,在調(diào)度下一個線程的時候是如何選擇的?

  • 如何去評估一個操作系統(tǒng)的實時性是否滿足要求?如何去測算中斷響應時間?

  • MCU上如何設計用戶態(tài)和內(nèi)核態(tài)?如何保障操作系統(tǒng)的安全性?

  • 平時做驅(qū)動外設的時候,有沒有遇到過一些棘手的問題?如何解決的?

    這是一個人的

  1. 我的項目中freertos創(chuàng)建了幾個任務,都是干嘛的,任務之間如何設計數(shù)據(jù)交互,反正基本上屬于讓你把項目給他完完整整的介紹清楚

  2. 靜態(tài)局部變量與局部變量的區(qū)別(很基礎)

  3. 為什么局部變量未定義時,每次初始化的結(jié)果是不確定的?是個真隨機數(shù)還是個偽隨機數(shù)?(我答:與棧的工作過程有關)

  4. 那么嵌入式中棧的工作機制是什么?(不會)

  5. 我連續(xù)調(diào)用同一個函數(shù)兩次,他的局部變量初始化結(jié)果是否會一致?

  6. 最后面試官說,其實我想問一下你函數(shù)調(diào)用的過程。

  7. 然后你說靜態(tài)局部變量存儲在靜態(tài)區(qū),那么靜態(tài)區(qū)的創(chuàng)建和消失是在什么時候?(答:創(chuàng)建時根據(jù)程序需求在主函數(shù)執(zhí)行之前執(zhí)行一個準備函數(shù),其中進行內(nèi)存申請,消失是隨著程序的退出而消失)

  8. 那么我在windows里面運行了多個進程,其中一個進程執(zhí)行完了,他的靜態(tài)區(qū)會如何處理?

  9. 最后面試官說,可能你所接觸的都是單進程,很少甚至忽略進程這個概念,其實我想問的是多進程的內(nèi)存管理問題。

  • 你任務的優(yōu)先級是怎么安排的,高優(yōu)先級的的線程RTOS會怎么樣處理?

  • 相同優(yōu)先級的幾個線程是怎么運行的?

  1. 對于臨界區(qū)數(shù)據(jù)的處理,使用互斥鎖和自己通過條件來判斷,哪樣更好,為什么?
  2. 上下文切換的時候系統(tǒng)做了些什么?

Linux問了多線程的處理,我只是用樹莓派做過小項目,就回答了一下在樹莓派中我是怎樣處理的,然后面試官問,如果你用的是四核心處理器,那么分配300個線程合理嗎?怎樣分配才算合理?

面試官還問了多進程,但我沒用過,直接就說沒有了解過了。

  • RTOS中哪里會進行線程調(diào)度

  • 線程切換為什么用PendSVC,有什么優(yōu)勢

  • 線程優(yōu)先級反轉(zhuǎn),如何解決?

  • 用了rtos,所以詳細問了幾個線程間的通信和同步,并問為什么用這種方式并設置場景讓我換別的方案

  • RTOS采取哪些手段保證他的實時性

操作系統(tǒng)

  • Freertos支持的任務調(diào)度方式,詳細說下每種方式
  • 任務(線程)間通信方法
  • 進程和線程的區(qū)別
  • 互斥量和信號量的區(qū)別
  • 優(yōu)先級翻轉(zhuǎn),如何避免優(yōu)先級翻轉(zhuǎn)
  • STM32任務切換為什么用PendSV
  • FreeRTOS的內(nèi)存管理怎么實現(xiàn)的?為什么這么做?
  • 對于臨界區(qū)數(shù)據(jù)的處理,使用互斥鎖和自己通過條件來判斷,哪樣更好,為什么?

在你的項目中有無接觸過信號量、資源爭搶的情況(無、但我舉了一個信號量同步的問題)

RTOS的實時性如何保證、RTOS中如何測量任務的運行時間、RTOS的中斷如何管理、RTOS的并發(fā)競爭、IIC協(xié)議內(nèi)容、

http://www.risenshineclean.com/news/3919.html

相關文章:

  • 赤峰建設淘寶網(wǎng)站全國新增確診病例
  • 上海網(wǎng)站建設覺策動力軟文投放平臺有哪些
  • 上海做企業(yè)網(wǎng)站什么是搜索關鍵詞
  • 大連建設工程集團有限公司電話seo中文全稱是什么
  • 濟南網(wǎng)站建設公司百度搜索頁
  • 小說網(wǎng)站得廣告怎么做淘寶推廣方式
  • 品牌廠家網(wǎng)站建設貴州seo技術查詢
  • 網(wǎng)站新聞審核怎么做百度商城
  • 數(shù)據(jù)庫網(wǎng)站制作新app推廣去哪里找
  • 做中文網(wǎng)站的公司2022最近熱點事件及評述
  • jeecg 做網(wǎng)站系統(tǒng)優(yōu)化工具
  • 織夢導航網(wǎng)站模板營銷推廣策略
  • 做淘寶先在批發(fā)網(wǎng)站上拿貨有趣的軟文
  • 東莞寮步在哪里北京排名seo
  • 京東網(wǎng)站建設的意義seo信息網(wǎng)
  • 如何做介紹監(jiān)控公司的網(wǎng)站怎么做網(wǎng)站推廣
  • 保定市做網(wǎng)站百度seo優(yōu)化及推廣
  • 廣州網(wǎng)站建設設計公司信息網(wǎng)頁設計效果圖及代碼
  • net做網(wǎng)站軟文推廣代表平臺
  • 怎樣做seo網(wǎng)站鏈接東莞疫情最新情況
  • 在哪個網(wǎng)站有兼職做免費發(fā)布推廣信息的b2b
  • 哈爾濱網(wǎng)站推廣公司有創(chuàng)意的網(wǎng)絡廣告案例
  • 私人精品貨源網(wǎng)站有哪些360收錄提交入口網(wǎng)址
  • 美術教育機構網(wǎng)站建設方案萬網(wǎng)域名注冊
  • 網(wǎng)站建設注意哪些內(nèi)容如何百度收錄自己的網(wǎng)站
  • 網(wǎng)站域名空間費用windows優(yōu)化大師好用嗎
  • 怎么做優(yōu)惠券網(wǎng)站電子商務主要干什么
  • 口紅機網(wǎng)站怎么做免費的編程自學網(wǎng)站
  • 網(wǎng)站建站知識惠州seo外包平臺
  • 有哪些制作網(wǎng)站的公司嗎優(yōu)質(zhì)外鏈