ARM邏輯 點亮LED

2021-08-15 11:53:41 字數 1495 閱讀 5148

一.led的工作特性及原理圖

d26為電源指示燈

其他led正極接到vdd3.3v 負極接到4個io口

要點亮led要將負極所接到額io口為低電平

發現gpio(通用輸入輸出)口之後需要去找到控制響應io的暫存器

gpio就是晶元的引腳 作為gpio的這類引腳,功能和特點是可以被程式設計控制它的工作模式 也可以控制電壓的高低

將led接到fgpio 就可以通過程式設計控制led的亮滅

gpio暫存器相關

通過設定控制gpio的暫存器的值來控制gpio

gpjo相關的暫存器

gpj0con(gpjo control)控制暫存器 用來配置工作模式

gpj0dat (gpjo data)當配置為input output模式時 相應位對應引腳的電平高低

gpj0pud  控制引腳上拉 下拉 

gpj0drv, 配置gpio的驅動能力 電流大小

gpj0conpdn 低功耗模式下的控制暫存器

gpj0pudpdn 低功耗模式下的上下拉暫存器

主要的是gpj0con, gpj0dat

二.彙編點亮led

1.操作控制暫存器 用來配置工作模式為輸出模式

2.gpj0dat暫存器 設定引腳輸出電平

gpjo有8個引腳 gpjo_0~7,相關重要暫存器為gpj0con和gpj0dat

gpj0con控制8個引腳的工作模式(32/8=4 每個引腳有4位 工作的方法就是給相應的位給相應的值 則可以設定相應引腳的工作模式 0001為輸出模式)

寫**操作暫存器

1.查硬體接法和引腳:gpj0_3 gpj0_4 gpj0_5 

2.查暫存器的位址 gpj0con(0xe0200240) gpj0dat(0xe0200244)

3.工程管理 makefile等

遇到問題:

1.未找到命令 編碼格式問題 設定為gb2312格式

2.make: warning: file 'led.s' has modification time 43 s in the future  windows的時間比虛擬機器中的時間快 則檔案時間快於make 調整系統時間 

.global _start 將_start鏈結屬性設定為外部 消除start警告

彙編中呼叫函式使用bl 子函式中使用mov pc,lr來返回

程式設計操作硬體的步驟:

1.分析硬體的工作原理

2.分析原理圖

3.分析資料手冊

4.找到相關的sfr

5.寫**設定暫存器

三.用到的彙編指令

1.ldr 將值寫入到對應的暫存器中

2.str 將暫存器中的值寫入到記憶體中

3.sub 減運算

4.cmp 比較是否相等 會影響z標誌

5.bne 條件跳轉,「不相等(或不為0)跳轉指令」。如果不為0就跳轉到後面指定的位址,繼續執行

6.bl 跳轉前把返回位址放入lr中 以便於返回 以便於函式呼叫

7.b 直接跳轉 不打算返回

ARM裸機之點亮LED

實驗開發版 s5pv210 1 什麼是gpio?general purpose input output 通用輸入 輸出 簡稱為gpio,屬於晶元引腳的一部分。嵌入式系統中常常有數量眾多,但是結構卻比較簡單的外部裝置 電路,對這些裝置 電路有的需要cpu為之提供控制手段,有的則需要被cpu用作輸入訊...

ARM彙編控制led點亮或熄滅

1.檢視開發板原理圖,由原理圖知led2由gpx2 7控制。2.檢視exynos 4412 scp晶元手冊,gpx2控制器位址及含義 由手冊知,gpx2con 位址為0x1100 0c40,gpx2con 7 0x1時,gpx2 7為輸出 示例彙編 led2 初始化ldr r0,0x11000c40...

ARM開發 點亮LED和操作蜂鳴器

例項 mini2451 led s 檔名 裝置 arm實驗板 pc機 編譯環境 keil4 minitools 實驗前準備 實驗板接通電源 不需要開啟 連線電腦。開啟minitools,按住實驗板最邊上的按鈕同時開機,如顯示沒有連線成功,檢視驅動是否安裝完全,已經安裝驅動的就可以直接顯示 conne...