嵌入式開發基本知識

2022-08-19 20:33:11 字數 4716 閱讀 6825

**:

博文目錄

回到頂部

搜尋了一些有關於對嵌入式開發的一些基礎知識,分享給大家!

答:當改變 mam 定時值時,必須先通過向 mamcr 寫入 0 來關閉 mam,然後將新值寫入 mamtim。最後,將需要的操作模式的對應值寫入mamcr,再次開啟mam。

對於低於 20mhz 的系統時鐘,mamtim 設定為 001。對於 20mhz 到 40mhz 之間的系統時鐘,建議將flash訪問時間設定為2cclk,而在高於40mhz的系統時鐘下,建議使用3cclk。

答:如果在片內ram當中執行**並且應用程式需要呼叫中斷,那麼必須將中斷向量重新對映到flash位址0x0。這樣做是因為所有的異常向量都位於位址0x0及以上。通過將暫存器memmap(位於系統控制模組當中)配置為使用者ram模式來實現這一點。使用者**被連線以便使中斷向量表裝載到0x4000 0000。

答:arm啟動**直接面對處理器核心和硬體控制器進行程式設計,一般使用組合語言。啟動**一般包括:

答:irq和fiq是arm處理器的兩種程式設計模式。irq是指中斷模式,fir是指快速中斷模式。對於 fiq 你必須盡快處理你的事情並離開這個模式。irq 可以被 fiq 所中斷,但 irq 不能中斷 fiq。為了使 fiq 更快,所以這種模式有更多的影子暫存器。fiq 不能呼叫 swi(軟體中斷)。fiq 還必須禁用中斷。如果乙個 fiq 例程必須重新啟用中斷,則它太慢了,並應該是 irq 而不是 fiq。

答:arm處理器對異常中斷的響應過程如下所述:

答:在arm體系結構中,arm指令集中的指令是32位的指令,其執行效率很高。對於儲存系統資料匯流排為16位的應用系統,arm體系提供了thumb指令集。thumb指令集是對arm指令集的乙個子集重新編碼得到的,指令長度為16位。通常在處理器執行arm程式時,稱處理器處於arm狀態;當處理器執行thumb程式時,稱處理器處於thumb狀態。thumb指令集並沒有改變arm體系地層的程式設計模型,只是在該模型上加上了一些限制條件。thumb指令集中的資料處理指令的運算元仍然為32位,指令定址位址也是32位的。

答:為了使單獨編譯的c語言程式和匯程式設計序之間能夠相互呼叫,必須為子程式之間的呼叫規定一定的規則。atpcs就是arm程式和thumb程式中子程式呼叫的基本規則。這些規則包括暫存器使用規則,資料棧的使用規則,引數的傳遞規則等。

答:通常,thumb程式比arm程式更加緊湊,而且對於記憶體為8位或16位的系統,使用thumb程式效率更高。但是,在下面一些場合下,程式必須執行在arm狀態,這時就需要混合使用arm和thumb程式。

強調速度的場合,應該使用arm程式;

有些功能只能由arm程式完成。如:使用或者禁止異常中斷;

當處理器進入異常中斷處理程式時,程式狀態切換到arm狀態,即在異常中斷處理程式入口的一些指令是arm指令,然後根據需要程式可以切換到thumb狀態,在異常中斷程式返回前,程式再切換到arm狀態。

arm處理器總是從arm狀態開始執行。因而,如果要在偵錯程式中執行thumb程式,必須為該thumb程式新增乙個arm程式頭,然後再切換到thumb狀態,執行thumb程式。

答:arm微處理器支援7種執行模式,分別為:

答:arm體系結構所支援的異常和具體含義如下(圈裡面的數字表示優先順序):

答:arm體系結構的儲存器格式有如下兩種:

arm有16個32位的暫存器(r0到r15)。

r15充當程式暫存器pc,r14(link register)儲存子程式的返回位址,r13儲存的是堆疊位址。

arm有乙個當前程式狀態暫存器:cpsr。

一些暫存器(r13,r14)在異常發生時會產生新的instances,比如irq處理器模式,這時處理器使用r13_irq和r14_irq

arm的子程式呼叫是很快的,因為子程式的返回位址不需要存放在堆疊中。

arm中的重對映是指在程式執行過程中通過寫某個功能暫存器位操作達到重新分配其儲存器位址空間的對映。乙個典型的應用就是應用程式儲存在flash/rom中,初始這些儲存器位址是從0開始的,但這些儲存器的讀時間比sram/dram長,造成其內部執行頻率不高,故一般在前面一段程式將**搬移到sram/dram中去,然後重新對映儲存器空間,將相應sram/dram對映到位址0,重新執行程式可達到高速執行的目的。

答:設定irq/fiq中斷,若是irq中斷則可以設定為向量中斷並分配中斷優先順序,否則為非向量irq。然後可以設定中斷允許,以及向量中斷對應位址或非向量中斷預設位址。當有中斷後,若是irq中斷,則可以讀取向量位址暫存器,然後跳轉到相應的**。當要退出中斷時,對向量位址暫存器寫0,通知vic中斷結束。當發生中斷時,處理器將會切換處理器模式,同時相關的暫存器也將會對映。

如果有什麼錯誤的地方歡迎指正!

【the horizon blog】

出處:**:

博文目錄

回到頂部

搜尋了一些有關於對嵌入式開發的一些基礎知識,分享給大家!

答:當改變 mam 定時值時,必須先通過向 mamcr 寫入 0 來關閉 mam,然後將新值寫入 mamtim。最後,將需要的操作模式的對應值寫入mamcr,再次開啟mam。

對於低於 20mhz 的系統時鐘,mamtim 設定為 001。對於 20mhz 到 40mhz 之間的系統時鐘,建議將flash訪問時間設定為2cclk,而在高於40mhz的系統時鐘下,建議使用3cclk。

答:如果在片內ram當中執行**並且應用程式需要呼叫中斷,那麼必須將中斷向量重新對映到flash位址0x0。這樣做是因為所有的異常向量都位於位址0x0及以上。通過將暫存器memmap(位於系統控制模組當中)配置為使用者ram模式來實現這一點。使用者**被連線以便使中斷向量表裝載到0x4000 0000。

答:arm啟動**直接面對處理器核心和硬體控制器進行程式設計,一般使用組合語言。啟動**一般包括:

答:irq和fiq是arm處理器的兩種程式設計模式。irq是指中斷模式,fir是指快速中斷模式。對於 fiq 你必須盡快處理你的事情並離開這個模式。irq 可以被 fiq 所中斷,但 irq 不能中斷 fiq。為了使 fiq 更快,所以這種模式有更多的影子暫存器。fiq 不能呼叫 swi(軟體中斷)。fiq 還必須禁用中斷。如果乙個 fiq 例程必須重新啟用中斷,則它太慢了,並應該是 irq 而不是 fiq。

答:arm處理器對異常中斷的響應過程如下所述:

答:在arm體系結構中,arm指令集中的指令是32位的指令,其執行效率很高。對於儲存系統資料匯流排為16位的應用系統,arm體系提供了thumb指令集。thumb指令集是對arm指令集的乙個子集重新編碼得到的,指令長度為16位。通常在處理器執行arm程式時,稱處理器處於arm狀態;當處理器執行thumb程式時,稱處理器處於thumb狀態。thumb指令集並沒有改變arm體系地層的程式設計模型,只是在該模型上加上了一些限制條件。thumb指令集中的資料處理指令的運算元仍然為32位,指令定址位址也是32位的。

答:為了使單獨編譯的c語言程式和匯程式設計序之間能夠相互呼叫,必須為子程式之間的呼叫規定一定的規則。atpcs就是arm程式和thumb程式中子程式呼叫的基本規則。這些規則包括暫存器使用規則,資料棧的使用規則,引數的傳遞規則等。

答:通常,thumb程式比arm程式更加緊湊,而且對於記憶體為8位或16位的系統,使用thumb程式效率更高。但是,在下面一些場合下,程式必須執行在arm狀態,這時就需要混合使用arm和thumb程式。

強調速度的場合,應該使用arm程式;

有些功能只能由arm程式完成。如:使用或者禁止異常中斷;

當處理器進入異常中斷處理程式時,程式狀態切換到arm狀態,即在異常中斷處理程式入口的一些指令是arm指令,然後根據需要程式可以切換到thumb狀態,在異常中斷程式返回前,程式再切換到arm狀態。

arm處理器總是從arm狀態開始執行。因而,如果要在偵錯程式中執行thumb程式,必須為該thumb程式新增乙個arm程式頭,然後再切換到thumb狀態,執行thumb程式。

答:arm微處理器支援7種執行模式,分別為:

答:arm體系結構所支援的異常和具體含義如下(圈裡面的數字表示優先順序):

答:arm體系結構的儲存器格式有如下兩種:

arm有16個32位的暫存器(r0到r15)。

r15充當程式暫存器pc,r14(link register)儲存子程式的返回位址,r13儲存的是堆疊位址。

arm有乙個當前程式狀態暫存器:cpsr。

一些暫存器(r13,r14)在異常發生時會產生新的instances,比如irq處理器模式,這時處理器使用r13_irq和r14_irq

arm的子程式呼叫是很快的,因為子程式的返回位址不需要存放在堆疊中。

arm中的重對映是指在程式執行過程中通過寫某個功能暫存器位操作達到重新分配其儲存器位址空間的對映。乙個典型的應用就是應用程式儲存在flash/rom中,初始這些儲存器位址是從0開始的,但這些儲存器的讀時間比sram/dram長,造成其內部執行頻率不高,故一般在前面一段程式將**搬移到sram/dram中去,然後重新對映儲存器空間,將相應sram/dram對映到位址0,重新執行程式可達到高速執行的目的。

答:設定irq/fiq中斷,若是irq中斷則可以設定為向量中斷並分配中斷優先順序,否則為非向量irq。然後可以設定中斷允許,以及向量中斷對應位址或非向量中斷預設位址。當有中斷後,若是irq中斷,則可以讀取向量位址暫存器,然後跳轉到相應的**。當要退出中斷時,對向量位址暫存器寫0,通知vic中斷結束。當發生中斷時,處理器將會切換處理器模式,同時相關的暫存器也將會對映。

如果有什麼錯誤的地方歡迎指正!

嵌入式基本知識

1秒 1000毫秒 1hz 1 t 秒 arr確定頻率 ccr確定占空比 頻率 72mhz arr 1 psc 1 占空比 頻率 脈衝寬度 週期t,頻率f,角頻率w之間的關係為 t 1 f w 2 pai f t 2 pai w 波特率 是碼元傳輸速率單位,他說明單位時間傳輸了多少個碼元。單位 ba...

嵌入式系統的基本知識

嵌入式系統是以應用為中心,以計算機技術為基礎,且軟硬體可裁減,適應應用系統對功能 可靠性 成本 體積 功耗有嚴格要求的專用計算機系統。它一般由以下幾部分組成 n嵌入式微處理器 n外圍硬體裝置 n嵌入式作業系統 特定的應用程式 1。嵌入式系統的構架 2.嵌入式系統的硬體基本結構 嵌入式作業系統 嵌入式...

嵌入式Linux驅動筆記 基本知識一

一 驅動是硬體操作 核心程式設計 裝置驅動 1.字元裝置驅動 2.訪問控制 互斥 阻塞 喚醒 3.輪詢非同步通知,中斷處理延時 記憶體分配 裝置模型。4.簡單的字元裝置驅動編寫 基於子系統的驅動 i2c spi 5.塊裝置驅動 網路裝置驅動框架 二 說明 核心模組 module 核心執行時可動態新增...