1、arm嵌入式LDR和STR
2.BSP板級支持包介紹
LDR R0, [R1]
這條指令的意思是,將R1中的值作為地址,將地址裡面存的值複製給寄存器R0
STR R1,[R0]
這條指令的意思是,將R1裡面的值,複製到以R0裡面的值作為地址的內存裡面。
ldr r0, [r1] ;r1作為指針,該指針指向的數存入r0
str r0, [r1, #4] ;r1+4作為指針,r0的值存入該地址
這是個經典的例子 ,
ldr 把[r1]存入 r0中。
而
str則是 4將r0存入[r1+4那個地址 你這道題也就是R0的地址2.BSP是什麼
板級支持包(BSP)是介於主板硬件和操作系統中驅動層程序之間的一層,一般認為它屬於操作系統一部分,主要是實現對操作系統的支持,為上層的驅動程序提供訪問硬件設備寄存器的函數包,使之能夠更好的運行於硬件主板。在嵌入式系統軟件的組成中,就有BSP。BSP是相對於操作系統而言的,不同的操作系統對應於不同定義形式的BSP,例如VxWorks的BSP和Linux的BSP相對於某一CPU來說儘管實現的功能一樣,可是寫法和接口定義是完全不同的,所以寫BSP一定要按照該系統BSP的定義形式來寫(BSP的編程過程大多數是在某一個成型的BSP模板上進行修改)。這樣才能與上層OS保持正確的接口,良好的支持上層OS。
純粹的BSP所包含的內容一般說來是和系統有關的驅動和程序,如網絡驅動和系統中網絡協議有關,串口驅動和系統下載調試有關等等。離開這些驅動系統就不能正常工作。
二、BSP的主要功能
BSP主要功能為屏蔽硬件,提供操作系統及硬件驅動,具體功能包括:
1. 單板硬件初始化,主要是CPU的初始化,為整個軟件系統提供底層硬件支持
2. 為操作系統提供設備驅動程序和系統中斷服務程序
3. 定製操作系統的功能,為軟件系統提供一個實時多任務的運行環境
4. 初始化操作系統,為操作系統的正常運行做好準備。
三、BSP的作用
建立讓操作系統運行的基本環境
1、初始化CPU內部寄存器
2、設定RAM工作時序
3、時鐘驅動及中斷控制器驅動
4、串口驅動
完善操作系統運行的環境
1、完善高速緩存和內存管理單元的驅動
2、指定程序起始運行位置
3、完善中斷管理
4、完善系統總線驅動
四、BSP在應用中的的區別

BSP和PC機主板上的BIOS區別
BSP和PC機主板上的BIOS區別很大,BIOS主要是負責在電腦開啟時檢測、初始化系統設備(設置棧指針,中斷分配,內存初始化。。)、裝入操作系統並調度操作系統向硬件發出的指令,它的Firmware代碼是在芯片生產過程中固化的,一般來說用戶是無法修改。其實是為下載運行操作系統做準備,把操作系統由硬盤加載到內存,並傳遞一些硬件接口設置給系統。在OS正常運行後,BIOS的作用基本上也就完成了,這就是為什麼更改BIOS一定要從新關機開機。
BSP是和操作系統綁在一起運行在主板上的,儘管BSP的開始部分和BIOS所做的工作類似,可是大部分和BIOS不同,作用也完全不同。此外BSP還包含和系統有關的基本驅動(串口,網口。。.),此外程序員還可以編程修改BSP,在BSP中任意添加一些和系統無關的驅動或程序,甚至可以把上層開發的統統放到BSP中。
而BIOS程序是用戶不能更改,編譯編程的,只能對參數進行修改設置。更不會包含一些基本的硬件驅動
BSP在嵌入式開發中的位置和作用
BSP開發處於整個嵌入式開發的前期,是後面系統上應用程序能夠正常運行的保證。
大概步驟如下:
1.硬件主板研製,測試。
2.操作系統的選定,BSP編程。
3.上層應用程序的開發。
BSP部分在硬件和操作系統,上層應用程序之間。所以這就要求BSP程序員對硬件,軟件和操作系統都要有一定的了解。這樣才能做好BSP編程。
五、BSP的開發流程

1、驗證硬件
了解上電後的電壓和電流,連接調試器讀寫CPU內部寄存器,控制處理器的輸出端口(GPIO)觀察輸出。以及檢驗時鐘設置。
這一步包括RAM的初始化和測試。在初始化RAM的過程中需要填寫與RAM相關的CPU寄存器。在測試過程中可分為:單元測試,整體測試,噪聲測試三部分。
3、內存管理
需要規劃內存的使用方法,開MMU等。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/230912.html
微信掃一掃
支付寶掃一掃