001 嵌入式軟件開發工程師實習篇面試——首戰總結

2025年5月17日人生中第一次面試

緊張是藏不住的。但是不應該的。

目錄

0.準備一份合適的自我介紹

1.結構體內存對齊問題

2.變量在內存中的存儲模式

3.嵌入式中程序框架有哪些

4.程序代碼設計要遵循什原則

 5.版本號書寫

6.單片機最小系統板有哪些組成

必須:

非必須:

7.復位方式有哪些

硬件復位

軟件復位

其他復位類型

8.hex文件和bin文件有什么區別

9.如何導出bin文件,如何在bin文件中添加第三方的校驗或者序列號

導出bin文件

添加校驗

序列號管理

10.嵌入式中階梯形狀的波形可以用哪些實現

11.12位ADC中測到的數值為n對應的電壓是多少

12.采樣電阻作用是什么

1. 電流與電壓測量

2. 系統保護與安全控制——監控電壓電流

3. 功率計算與能效分析

13.一個GPIO如何控制一個多個按鍵

二極管擴展法

大概就是電阻配合二極管配合電路網絡生成不同邏輯電平(數字輸入)或者電壓(ADC)

電阻分壓法(ADC方案)

充放電時間檢測法(GPIO+RC方案)

14.按鍵LED有哪些模式

15.PA0和PB0引腳能不能一起作為外部中斷信號輸入

16.STM32中起始地址是多少,每次讀取寫入數據的長度大小是多少,他的擦除方式有哪些

Flash起始地址——0x0800 0000        結束地址取決于芯片型號

讀寫數據長度

擦除方式

17.如何獲取芯片序列號

18.如何降低單片機功耗

低功耗模式

降低頻率

關閉未使用的外設

減少CPU的計算負載

使用DMA

19.如何快速PID調參

20.一個完整的產品設計開發需要導出哪些設計文件

一、需求分析階段

二、硬件設計階段

三、軟件開發階段

四、測試驗證階段

五、生產制造階段

六、認證與合規

七、產品交付文件

八、維護與迭代

21.如何快速掌握單片機應用

0.準備一份合適的自我介紹

1.結構體內存對齊問題

數據地址是數據類型大小的整數倍,則觸發單周期訪問。未對齊訪問會觸發總線錯誤(HardFault)或產生多次內存操作。

2.變量在內存中的存儲模式

小端序

3.嵌入式中程序框架有哪些

框架類型資源占用實時性開發復雜度適用場景
順序執行的前后臺系統簡單簡單MCU控制
時間片輪詢系統一般中等中等復雜度任務輪詢
RTOS復雜高實時性、多任務系統
Linux嵌入式架構一般復雜復雜功能設備(如網關、服務器)
硬件抽象層框架一般中等跨平臺開發、快速原型

狀態機

4.程序代碼設計要遵循什原則

1、簡單、明了、清晰:

2、精簡

3、保持第三方代碼風格

4、減少封裝

5.注釋信息:文件信息注釋(文件開頭)、函數的注釋、代碼注釋

作用域標識

  • 全局變量:以 g_ 前綴標識(如 g_system_state),避免濫用全局變量。
  • 靜態變量:以 s_ 前綴標識(如 s_counter),提升模塊封裝性。
  • 結構體變量:以 st_ 前綴標識(如 st_date),區分普通變量。
  • 指針:以 p_ 前綴標識(如 p_data),明確指針類型
場景規范命名不規范命名說明
全局變量、文件名g_sensor_valuevalue明確作用域和用途。
結構體成員st_time.yearyear區分結構體內外變量。
局部變量sensor_value(小寫,無須作用域)value明確數據來源和類型。
函數App_InitMotor(首字母大寫)InitMotor明確模塊歸屬
函數指針p_callback_funcfunc明確指針類型。
常量宏定義MAX_BUFFER_SIZEmaxsize全大寫+下劃線,區分變量與常量。

 5.版本號書寫

參考金典的:V1.2.3.20240518_rc(主版本1,次版本2,修訂3,2024年5月18日構建,候選版本)

HAL_LABL_V2.1.1.20250518_rc

6.單片機最小系統板有哪些組成

必須:

主芯片(單片機核心)

電源電路

時鐘電路(晶振)

復位電路

需啟動電路

程序下載電路

非必須:

指示與擴展電路

7.復位方式有哪些

硬件復位
  • 外部復位:通過外部信號觸發,低電平復位信號。通常連接到單片機的復位引腳(如NRST)
  • 電源復位:當系統上電或電源不穩定時,由電源管理電路自動觸發的復位
  • 看門狗復位:看門狗定時器未在規定時間內被刷新,系統認為程序運行異常,自動觸發復位
軟件復位
  • 指令復位:通過執行特定的非法指令或訪問非法地址,強制觸發硬件復位
  • 寄存器復位:通過向特定的控制寄存器寫入復位命令,實現軟件控制的復位
其他復位類型
  • 上電復位(POR):系統首次上電時觸發的復位,確保系統從已知的初始狀態開始運行
  • 系統復位:影響整個系統,包括CPU、外設和內存等,恢復到默認狀態
  • 模塊復位:僅對特定模塊或外設進行復位,不影響其他部分
  • 備份域復位:針對備份區域(如RTC和備份寄存器)的復位,通常用于低功耗模式
  • 低功耗復位:在系統進入低功耗狀態時觸發的復位,確保系統正確退出低功耗模式

8.hex文件和bin文件有什么區別

  • HEX文件:適合需要地址信息和校驗的復雜場景,如ISP燒錄和調試。
  • BIN文件:適合簡單燒錄或地址固定的系統,文件更緊湊且燒錄效率更高
屬性HEX文件BIN文件
格式ASCII文本(帶元數據)純二進制數據
地址信息包含起始地址,支持分段映射無地址信息,需手動指定起始地址
校驗機制每行校驗和確保數據完整性無校驗,需額外處理數據完整性
文件大小較大(含元數據)較小(僅數據)
可讀性可讀(適合調試)不可讀(需工具解析)
典型用途復雜場景(多段地址映射、ISP燒錄)簡單任務(Bootloader升級、固定地址)

9.如何導出bin文件,如何在bin文件中添加第三方的校驗或者序列號

導出bin文件

1.調用工具鏈,Keil mdk中添加生成語句:fromelf --bin --output=@L.bin !L

2.GCC工具鏈生成:arm-none-eabi-objcopy -O binary -S ${ProjName}.elf ${ProjName}.bin

添加校驗

方案1:CRC尾部校驗(校驗

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/84051.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/84051.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/84051.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SIL2/PLd 認證 Inxpect毫米波安全雷達:3D 掃描 + 微小運動檢測守護工業安全

Inxpect 成立于意大利,專注工業安全技術。自成立起,便致力于借助先進雷達技術提升工業自動化安全標準,解決傳統安全設備在復雜環境中的局限,推出獲 SIL2/PLd 和 UL 認證的安全雷達產品。 Inxpect 的雷達傳感器技術優勢明顯。相較于…

Python數據可視化再探——Matplotlib模塊 之一

目錄 第一章 Matplotlib 模塊教學內容?——基礎圖形繪制 一、Pyplot 子庫介紹? 1. 功能概述? 2. 常用函數? 二、繪制基本圖形? 1. 柱狀圖? 2. 條形圖? 3. 折線圖? 4. 散點圖? 5. 面積圖? 6. 餅狀圖? 7. 圓環圖? ?編輯 三、繪圖知識點詳解? 1. 繪圖…

智慧在線判題OJ系統項目總體,包含功能開發思路,內部中間件,已經部分知識點

目錄 回顧一下xml文件怎么寫 哪個地方使用了哪個技術 MyBatis-Plus-oj的表結構設計, 管理員登錄功能 Swagger Apifox?編輯 BCrypt 日志框架引入(slf4jlogback) nacos Swagger無法被所有微服務獲取到修改的原因 身份認證三種方式: JWT(Json Web Json,一…

使用Spring Boot和Spring Security構建安全的RESTful API

使用Spring Boot和Spring Security構建安全的RESTful API 引言 在現代Web應用開發中,安全性是至關重要的。Spring Boot和Spring Security是Java生態中廣泛使用的框架,它們提供了強大的工具來保護RESTful API。本文將介紹如何結合Spring Boot和Spring S…

虛幻引擎5-Unreal Engine筆記之`GameMode`、`關卡(Level)` 和 `關卡藍圖(Level Blueprint)`的關系

虛幻引擎5-Unreal Engine筆記之GameMode、關卡(Level) 和 關卡藍圖(Level Blueprint)的關系 code review! 參考筆記: 1.虛幻引擎5-Unreal Engine筆記之GameMode、關卡(Level) 和 關卡藍圖&…

Java+Selenium+快代理實現高效爬蟲

目錄 一、前言二、Selenium簡介三、環境準備四、代碼實現4.1 創建WebDriver工廠類4.2 創建爬蟲主類4.3 配置代理的注意事項 六、總結與展望 一、前言 在Web爬蟲技術中,Selenium作為一款強大的瀏覽器自動化工具,能夠模擬真實用戶操作,有效應對…

SpringBoot配置文件的合并

需求:想分類將mysql數據庫的配置放在一個文件,redis的配置放在另外一個文件 就不去引入mysql和redis了,看能否得到值就行了 測試結果 model的包放錯了 應該移動到demo里 能否用yml或者yaml呢 這里注意yml的寫法 測試結果也是可以的 注意如果主配置文件是yml或者yaml的話

深入理解 BFC:網頁布局的關鍵機制

在前端開發的世界里,網頁布局是一項至關重要的任務。而在眾多布局相關的概念中,BFC(Block Formatting Context,塊級格式化上下文)扮演著極為關鍵的角色。今天,就讓我們深入剖析 BFC 的方方面面。 一、BFC …

04-Web后端基礎(基礎知識)

而像HTML、CSS、JS 以及圖片、音頻、視頻等這些資源,我們都稱為靜態資源。 所謂靜態資源,就是指在服務器上存儲的不會改變的數據,通常不會根據用戶的請求而變化。 那與靜態資源對應的還有一類資源,就是動態資源。那所謂動態資源&…

Vue3 Element Plus el-table-column Sortable 排序失效

問題描述&#xff1a; vue3中 element plus 中 el-table 的 el-table-column使用了插槽后&#xff0c;為什么sortable不起效果&#xff0c;不能點擊排序 <el-table-columnlabel"記賬日期"width"110"fixed"left"header-align"left"…

Unity中SRP Batcher使用整理

SRP Batcher 是一種繪制調用優化,可顯著提高使用 SRP 的應用程序的性能,SRP Batcher 減少了Unity為使用相同著色器變體的材質準備和調度繪制調用所需的CPU 時間。 工作原理: 傳統優化方法通過減少繪制調用次數提升性能,而SRP Batcher的核心理念在于降低繪制調用間的渲染狀…

服務器的基礎知識

什么是服務器 配置牛、運行穩、價格感人的高級計算機&#xff0c;家用電腦不能比擬的。 服務器的組成&#xff1a;電源、raid卡、網卡、內存、cpu、主板、風扇、硬盤。 服務器的分類 按計算能力分類 超級計算機 小型機AIX x86服務器&#xff08;服務器cpu架構&#xff09; …

服務器網絡配置 netplan一個網口配置兩個ip(雙ip、輔助ip、別名IP別名)

文章目錄 問答 問 # This is the network config written by subiquity network:ethernets:enp125s0f0:dhcp4: noaddresses: [192.168.90.180/24]gateway4: 192.168.90.1nameservers:addresses:- 172.0.0.207- 172.0.0.208enp125s0f1:dhcp4: trueenp125s0f2:dhcp4: trueenp125…

高級SQL技巧:時序數據查詢優化與性能調優實戰

高級SQL技巧&#xff1a;時序數據查詢優化與性能調優實戰 引言 在現代數據驅動型系統中&#xff0c;時序數據&#xff08;時間序列數據&#xff09;正成為企業核心資產之一。然而&#xff0c;隨著數據量激增和復雜業務需求的不斷涌現&#xff0c;傳統的SQL查詢方式已難以滿足…

DDoS攻擊應對指南:提升網站安全性的有效策略

DDoS&#xff08;分布式拒絕服務&#xff09;攻擊成為了企業面臨的主要網絡安全威脅之一。隨著技術的不斷發展&#xff0c;DDoS攻擊手段也在不斷升級&#xff0c;給企業的網絡安全帶來了極大的挑戰。針對這一問題&#xff0c;企業需要采取有效的防御措施&#xff0c;以保障網站…

Appium 的 enableMultiWindows 參數

引言 在移動應用自動化測試中&#xff0c;??混合應用&#xff08;Hybrid App&#xff09;?? 和多窗口場景&#xff08;如分屏、彈窗、多 WebView&#xff09;的處理一直是技術難點。Appium 的 enableMultiWindows 參數為這類場景提供了關鍵支持&#xff0c;但在實際使用中常…

C++中的菱形繼承問題

假設有一個問題&#xff0c;類似于鴨子這樣的動物有很多種&#xff0c;如企鵝和魷魚&#xff0c;它們也可能會有一些共同的特性。例如&#xff0c;我們可以有一個叫做 AquaticBird &#xff08;涉禽&#xff0c;水鳥的一類&#xff09;的類&#xff0c;它又繼承自 Animal 和 Sw…

前端excel表格解析為json,并模仿excel顯示

前端環境&#xff1a;elementUI vue2 <style lang"scss" scoped> 頁面效果 jsondata為mock數據&#xff0c;為方便調試其內容可清空&#xff0c;首行&#xff08;字母坐標&#xff09;隨數據內容自動變化&#xff0c;首列也是一樣&#xff0c;模擬excel …

NAT(網絡地址轉換)邏輯圖解+實驗詳解

原理 NAT&#xff08;Network Address Translation&#xff0c;網絡地址轉換&#xff09; 是一種網絡技術&#xff0c;用于在IP數據包通過路由器或防火墻時&#xff0c;修改其源IP地址或目標IP地址&#xff0c;以實現不同網絡之間的通信。 基礎概念 本來NAT是來解決 IPv4 地…

Qt+線段拖曳示例代碼

Qt線段拖曳示例代碼&#xff0c;功能見下圖。 代碼如下&#xff1a; canvaswidget.h #ifndef CANVASWIDGET_H #define CANVASWIDGET_H#include <QWidget> #include <QPainter> #include <QMouseEvent> #include <QVector>class CanvasWidget : publi…