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