嵌入式學習筆記 第二週

2021-10-03 14:09:04 字數 1503 閱讀 7648

1.嵌入式網路程式設計==嵌入式linux c系統程式設計(檔案、程序、程序間通訊、多執行緒、網路、大併發網路伺服器、資料庫、shell程式設計)

2.嵌入式c開發vs嵌入式linuxc:使用linux作業系統提供的功能(檔案…)(多工、網路聊天室)(嵌入式linux應用軟體開發)

3.linux作業系統的組成:使用者空間、核心空間

4.為什麼將linux作業系統劃分為使用者空間和核心空間?保護核心不被使用者輕易訪問;

5.使用者空間如何訪問核心空間?系統呼叫、硬體中斷、軟體中斷

6.什麼是系統呼叫?使用者通過呼叫作業系統提供的函式(發生系統呼叫)來訪問核心的資料或者湖區服務;(注:api:使用者程式設計介面 ==作業系統提供的可呼叫函式 )

7.使用者如何發生系統呼叫?呼叫系統提供的api

8.如何學習嵌入式網路程式設計?寫(**)測試(寫demo測試api介面的功能)專案(知識點整合)

嵌入式linux io程式設計

1.什麼是io程式設計:檔案程式設計(io==檔案):linux一切皆為檔案,(硬體裝置也被抽象位檔案)

2.為什麼linux選擇將所有資源抽象檔案?檔案的管理方式簡單;(開啟、關閉、讀寫)

3.什麼是檔案描述符?特點?檔案描述符實際上就是檔案id,特點是動態的,只有當你操作這個檔案時,系統才會給它分配id;

4.檔案描述符的型別?unsigned int—》熱點:檔案描述符是有範圍

5.特殊的檔案描述符:0:標準輸入1:標準輸出 2標準出錯處理(cin、cout、cerr、clog)

注:使用者建立的檔案,它的檔案描述符是從3開始的!!!(0,1,2已經被占用)

6.fopen\fclose\fread\fwrite\fseek:這些函式都是庫函式,庫函式是可以跨平台使用,(linux、win32使用是一樣)

7.api:create、open、read、write、close、lseek、icotl、mmap:這些函式都是linux系統提供的,只能在linux作業系統下使用;

注:學習方法:函式原型(函式名、函式形參的作用、函式返回值)、寫測試、寫案例

全域性變數:errno/perror列印系統呼叫的錯誤資訊

register:

(1)register 關鍵字無法在全域性中定義變數,否則會被提示為暫存器無效。其實這一點在新的gcc編譯器下c語言也不允許定義全域性的register變數,因為生命週期直到程式結束,期間都作為暫存器變數的話明顯不妥。

(2)register 關鍵字在區域性作用域中宣告時,可以用 & 操作符取位址,一旦使用了取位址操作符,被定義的變數會強制存放在記憶體中。

引用

在c++中新增加了引用的概念

引用可以看作乙個已定義變數的別名

引用的語法:type& name = var;

引用做函式引數?(引用作為函式引數宣告時不進行初始化)

(普通引用在宣告時必須用其它的變數進行初始化)

《嵌入式程式設計》第二週學習總結

教材學習內容總結 1.gcc的庫選項 函式庫分為靜態庫和動態庫兩種 靜態庫 一系列的目標檔案 o檔案 和歸檔檔案 檔名格式為libname.a 在編譯某個程式時鏈結靜態庫,鏈結器將會搜尋靜態庫,從中提取它所需要的目標檔案並直接複製到該程式的可執行二進位制檔案 elf格式檔案 之中。2.gcc 警告和...

嵌入式Linux第二週作業

linux根目錄下各個目錄的作用 1.bin 二進位制可執行命令 包含二進位制檔案,系統的所有使用者使用的命令都在這個目錄下。2.dev 裝置 device 檔案 包含裝置檔案,包括終端裝置,usb或連線到系統的任何裝置。3.etc 配置檔案 啟動指令碼等 etc 包含所有程式所需的配置檔案,也包含...

嵌入式課程作業 第二週

bin 普通使用者命令 sbin 管理員命令 etc 存放的是系統中的所有配置檔案 dev 系統中所有裝置檔案 home 普通使用者的工作目錄 root root使用者的工作目錄 usr 存放的是系統中安裝的軟體 boot 包含引導linux的重要檔案 lib 系統的庫檔案,有點像windows的p...