嵌入式設計學習總結6

2021-10-04 18:42:18 字數 1479 閱讀 7123

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

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

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

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

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

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

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

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

呼叫系統提供的函式介面

api:使用者程式設計介面

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

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

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

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

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

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

檔案描述符:檔案id

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

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

相關函式:

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()

嵌入式設計學習總結1

一 嵌入式基本概念概述 1 嵌入式技術是什麼?在已有的硬體上移植作業系統,在作業系統之上做上層應用開發,在作業系統之下做底層開發。簡言之 在軟 硬體中間移植乙個作業系統。2 作業系統的作用是什麼?管理資源 軟體資源 硬體資源 3 嵌入式系統與非嵌入式系統的區別?是否有作業系統。4 嵌入式開發與微控制...

嵌入式學習總結

第一天我學習到了linux學習的乙個大致的框架,以及了解了我們將要學習哪些知識,和學習的大致順序。首先以程式的概念入手,知道程式設計的基礎知識對於計算機來說,程式就是系統可以識別的指令,程式是怎樣在計算機裡執行的?首先記憶體儲器從硬碟裡呼叫程式,然後暫存器從記憶體裡把程式運送到cpu裡面執行。語言的...

2 25嵌入式設計(總結)

於2020年2月25日,我第一次接觸了嵌入式設計的學習。在老師的講解下了解到了嵌入式設計的前景非常美好,充分吸引了我對嵌入式設計的學習興趣。首先要說一下什麼是嵌入式技術。嵌入式技術是以應用為中心,以計算機技術為基礎,並且軟硬體可裁剪,適用於應用系統對功能 可靠性 成本 體積 功耗有嚴格要求的專用計算...