文章插圖

文章插圖
1、arm嵌入式LDR和STR
2.BSP板級支持包介紹
LDR R0, [R1]這條指令的意思是,將R1中的值作為地址,將地址里面存的值復制給寄存器R0STR R1,[R0]這條指令的意思是,將R1里面的值,復制到以R0里面的值作為地址的內存里面 。
ldrr0,[r1];r1作為指針,該指針指向的數存入r0strr0,[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內部寄存器
【arm匯編指令集 arm匯編語言指令大全】2、設定RAM工作時序
3、時鐘驅動及中斷控制器驅動
4、串口驅動
完善操作系統運行的環境
1、完善高速緩存和內存管理單元的驅動
2、指定程序起始運行位置
3、完善中斷管理
4、完善系統總線驅動
四、BSP在應用中的的區別
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的開發流程
了解上電后的電壓和電流,連接調試器讀寫CPU內部寄存器,控制處理器的輸出端口(GPIO)觀察輸出 。以及檢驗時鐘設置 。
這一步包括RAM的初始化和測試 。在初始化RAM的過程中需要填寫與RAM相關的CPU寄存器 。在測試過程中可分為:單元測試,整體測試,噪聲測試三部分 。
3、內存管理
需要規劃內存的使用方法,開MMU等 。
- lol投降指令快捷鍵三分鐘 lol投降指令快捷鍵怎么設置
- 移動攜號轉網短信指令用戶名 移動攜號轉網短信指令不對
- 我的世界雪人小屋傳送指令 我的世界手機版雪屋傳送指令
- 黑屏指令查詢行李額度 黑屏指令大全
- 重啟手機方法 快捷指令設置重啟手機
- iphonex操作手勢 iphone快捷指令自定義手勢
- 單片機用c語言開發比匯編語言開發的優點 c語言對單片機重要嗎
- linux系統查看防火墻狀態命令 linux中查看防火墻狀態指令
- 我的世界巨人僵尸指令 我的世界召喚巨型僵尸的指令手機版網易
- ARM和intel arm處理器和intel處理器的區別
