第六周嵌入式課堂總結

2021-10-04 18:42:18 字數 1556 閱讀 9657

嵌入式linux安裝與使用!

嵌入式linux開發工具!! gcc make shell

嵌入式linux系統開發:通過核心提供的服務實現相應功能

c語言程式設計:無os語法!!

嵌入式linux c開發:「會看使用說明書」

linux系統構成:使用者空間、核心空間

使用者空間不能隨便訪問核心空間(用系統呼叫訪問)

系統呼叫:核心提供的安全訪問機制; 硬體中斷、軟體中斷

作用:使使用者空間可以訪問核心空間並獲取服務

使用者如何傳送系統呼叫?

呼叫系統提供的函式介面

api:使用者程式設計介面

1、 linux系統空間劃分:使用者空間、核心空間

2、劃分空間的目的:保護核心空間不能被使用者空間隨便訪問;

3、使用者空間如何訪問核心空間?必須傳送系統呼叫;

4、如何發生系統呼叫?呼叫作業系統提供的函式介面—api

學習嵌入式linux系統開發實際上學習的時使用者程式設計介面api

檔案操作、程序、執行緒操作(多工)、網路、裝置

檔案描述符:檔案id

動態分配:只要當操作這個檔案時,系統才會給你分配檔案描述符

非負整數:(從3編號開始、0,1,2三個檔案描述符有其他作用)

creat函式用法:

相關函式:

read、write、fcntl、close、link、stat、umask、unlink、fopen

表頭檔案:

#include

#include

#include

定義函式:

int creat(const char * pathname, mode_tmode);

函式說明:

引數pathname指向欲建立的檔案路徑字串。

creat()相當於使用下列的呼叫方式呼叫

open():open(const char * pathname ,(o_creat|o_wronly|o_trunc));

返回值:

creat()會返回新的檔案描述詞,若有錯誤發生則會返回-1,並把錯誤**設給errno。

一些錯誤**的含義:

eexist引數pathname所指的檔案已存在。

eaccess引數pathname所指定檔案不符合所要求測試的許可權。

erofs欲開啟寫入許可權的檔案存在於唯讀檔案系統內。

efault引數pathname指標超出可訪問的記憶體空間。

einval引數mode不正確。

enametoolong引數pathname太長。

enotdir引數pathname為一目錄。

enomem核心記憶體不足。

eloop引數pathname有過多符號連線問題。

emfile已達到程序可同時開啟的檔案數上限。

enfile已達到系統可同時開啟的檔案數上限

附加說明:

creat()無法建立特別的裝置檔案,如果需要請使用mknod()

open函式用法:

《嵌入式程式設計》第六周學習總結

一.linux 程序間通訊方式 1 管道 pipe 及有名管道 named pipe 管道可用於具有親緣關係程序間的通訊,有名管道,除具有管道所具有的功能外,它還允許無親緣關係程序間的通訊。2 訊號 signal 訊號是在軟體層次上對中斷機制的一種模擬,它是比較複雜的通訊方式,用於通知程序有某事件發...

第六周總結

2 關於register 提高速度 儲存型別說明符 register要求變數儲存在cpu暫存器中,所以不能用取位址符 取其位址,並且,在全域性變數的地方不能出現register 防止儲存型別不唯一引起的衝突。同時,register 變數必須是能被cpu暫存器所接受的型別。這就意味著,register...

總結第六周

這一周從時間意義上也算是國慶假期後的第一周,學弟學妹也正式踏入了校園,我們工作室的招新工作也相繼展開,截止到此時此刻,還有資料專業和物聯專業的學弟學妹沒有來到我們工作室進行參觀,這兩天也挺累的,但也從中收穫到了許多東西,比如 在人多的時候講話可以更淡定一點,沒有那麼緊張 跟學弟學妹交流用怎樣的方式更...