嵌入式程式設計 複習筆記

2022-08-18 07:24:15 字數 1153 閱讀 2974

最近準備找些嵌入式公司的實習機會,所以複習了一下嵌入式程式設計的一些內容。先搜了一些嵌入式公司的面試題,才發現雖然自己

進行嵌入式開發已經有幾個年頭了,但是水平還只能算的上是下下等。所做的內容主要就是看看別人的**,然後根據特定晶元的

datasheet移植修改一些暫存器的值;要麼是自己寫**,只求功能達到,不求程式的規範性、效率、安全性、健壯性和可移植性。

這樣做出來的東西是不能夠作為乙個可靠的產品進行使用的。痛定思痛,遂決定努力刷刷題好好惡補一下。

這類題目網上有很多:

這份面試題感覺挺好的:

大致總結了一下,pc上的c程式開發人員和嵌入式c開發人員在關注焦點和主要的遇到的問題還是不一樣的。

嵌入式的資源有限:

盡可能的減少不必要的函式呼叫開銷--》#define的使用

機器字長不確定--》資料型別、直接使用十六進製制數賦初值的時候不可以自己預設字長

暫存器 變數 的更改 一方面是程式中的顯式更改   另一方面是硬體暫存器在外被更改  --》定義好變數的型別const volatile (根據系統實際的使用情況)

資料的強制型別轉換、運算中的型別提公升、運算子的優先順序

中斷服務程式--》盡量精簡、變數的重新整理、浮點型 不能重用(暫存器資源有限)

注意事項:

加括號 的重要作用

有些常數值 最好寫出規律 具體的值讓編譯器自己去算 這樣在不同的平台上有更好的適應性

使用const 、volatile增加程式的健壯性

熟悉和正確的運用各種指標

公共的啟動配置檔案(系統級的)

/etc/bashrc 存有整個系統的別名和功能(發現ubuntu是/etc/bash.bashrc)

/etc/profile 存有整個系統的環境引數和啟動程式

個人的啟動配置檔案(使用者級的)

決定使用者自己所獨有的一些配置

$home/.bashrc 存有使用者別名和功能

$home/.bash_profile 存有使用者環境引數和啟動程式(ubuntu是~/.profile)

$home/.bash_logout 存有退出系統時的結束方式

$home /.inputrc 存有主要繫結數值和其他位元數值(ubuntu預設只有/etc/inputrc)

嵌入式系統(複習筆記)

宿主機 交叉開發方式 jtag 嵌入式系統,嵌入式計算機系統 arm處理器,risc,r0 r15 cpsr 通用計算機系統 x86,cisc,ax bx cx dx psw intel8086 asic 處理器只能到記憶體中取指令並執行指令 位址線 資料線 cache 暫存器ro base rea...

嵌入式複習16

第十六天 1.基於tcp協議的通訊模型 1.1 通訊模型 伺服器 1 建立socket socket函式 2 準備通訊位址 使用結構體型別 3 幫id那個socket和通訊位址 bind函式 4 監聽 listen函式 5 響應客戶端的連線請求 accept函式 6 關閉socket close函式...

嵌入式複習17

第十六天 1.多執行緒的基本概念和基本操作 1.1 基本概念 1.2 執行緒的建立 1 pthread create函式 2 執行緒之間的關係 1.3 執行緒編號的獲取和比較 1 pthread self函式 2 pthread equal函式 1.4 執行緒的匯合和分離 1 pthread joi...