今天開始學(xué)習(xí)編寫正點(diǎn)原子阿爾法開發(fā)板的LED匯編。
1、打開vscode新建led.s
代碼如下:
/**************************************************************
Copyright ? lugl.
文件名 : led.s
作者 : 劉建華
版本 : V1.0
描述 : 裸機(jī)實(shí)驗(yàn) 1 匯編點(diǎn)燈
使用匯編來點(diǎn)亮開發(fā)板上的 LED 燈,學(xué)習(xí)和掌握如何用匯編語言來
完成對(duì) I.MX6U 處理器的 GPIO 初始化和控制。
其他 : 無
日志 : 初版 V1.0 2023.5.1 學(xué)習(xí)左中凱老師例程
**************************************************************/
.global _start /* 全局標(biāo)號(hào) */
/*
*描述: _start函數(shù),程序從此函數(shù)開始,執(zhí)行此函數(shù)完成時(shí)鐘使能、
* GPIO初始化、最終控制GPIO輸出低電平來點(diǎn)亮LED燈
*/
_start:
ldr r0, = 0x020c4068 @寄存器CCGR0
ldr r1, = 0xFFFFFFFF
str r1, [r0] @寫入CCGR0寄存器
ldr r0, =0x020C406C @寄存器CCGR1
str r1, [r0]
ldr r0, =0x020C4070 @寄存器CCGR2
str r1, [r0]
ldr r0, =0x020C4074 @寄存器CCGR3
str r1, [r0]
ldr r0, =0x020C4078 @寄存器CCGR4
str r1, [r0]
ldr r0, =0x020C407C @寄存器CCGR5
str r1, [r0]
ldr r0, =0x020C4080 @寄存器CCGR6
str r1, [r0]
/* 初始化時(shí)鐘結(jié)束 */
/* 開始設(shè)置GPIO1_IO03的IO屬性
*bit 16: 0 HYS關(guān)閉
*bit [15:14]: 00 默認(rèn)下拉
*bit [13]: 0 kepper 功能
*bit [12]: 1 pull/kepper 使能
*bit [11]: 0 關(guān)閉開路輸出
*bit [7:6]: 10 速度100 MHz
*bit [5:3]: 110 R0/6驅(qū)動(dòng)能力
*bit [0] : 0 低轉(zhuǎn)換率
0b0 0001 0000 1011 0000
0x00 00 10 B0
*/
ldr r0, = 0x020e02f4 @ 寄存器SW_PAD_GPIO1_IO03_BASE
ldr r1, = 0x000010b0 @ 配置寄存器值
str r1, [r0] @ 寫入GPIO的配置值
/* 設(shè)置 GPIO1——IO03 為輸出*/
ldr r0, = 0x0209c004 @ 寄存器GPIO1——GDIR
ldr r1, = 0x00000008
str r1, [r0]
/* 打開LED0 */
ldr r0, = 0x0209c000 @ 寄存器GPIO1_DR
ldr r1, = 0
str r1, [r0]
loop:
b loop
2、保存后,再編寫makfile
led.bin:led.s
arm-linux-gnueabihf-gcc -g -c led.s -o led.o
arm-linux-gnueabihf-ld -Ttext 0X87800000 led.o -o led.elf
arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin
arm-linux-gnueabihf-objdump -D led.elf > led.dis
clean:
rm -rf *.o led.bin led.elf led.dis
3、然后把這兩個(gè)文件拷貝到虛擬機(jī)新建好的linux-tool下面

4、拷入一個(gè)正點(diǎn)原子專用的燒寫工具imxdownload,并且修改他的執(zhí)行權(quán)限:chmod 777 imxdownload
5、插入一個(gè)SD,我這里用的是《雷龍發(fā)展提供的CS創(chuàng)世SD NAND》


用ls /dev/sd*查看是否加載好:

因?yàn)槲矣玫腘flash卡,所以不象教程里面說的SDD卡,我這里是sdb。

6、執(zhí)行燒寫
lugl@lugl-virtual-machine:~/linux/tool$ ./imxdownload led.bin /dev/sdb
I.MX6ULL bin download software
Edit by:zuozhongkai
Date:2019/6/10
Version:V1.1
log:V1.0 initial version,just support 512MB DDR3
V1.1 and support 256MB DDR3
file led.bin size = 144Bytes
Board DDR SIZE: 512MB
Delete Old load.imx
Create New load.imx
Download load.imx to /dev/sdb ......
記錄了6+1 的讀入
記錄了6+1 的寫出
3216字節(jié)(3.2 kB,3.1 KiB)已復(fù)制,0.0111069 s,290 kB/s
顯示燒寫成功。
7、把卡插到開發(fā)板上,上電,稍等一會(huì),就看到開發(fā)板的DS0燈亮了。

審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
led
+關(guān)注
關(guān)注
243文章
24612瀏覽量
691038 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6294瀏覽量
118286 -
匯編
+關(guān)注
關(guān)注
2文章
214瀏覽量
27435
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
LED燈珠壽命如何提升50%
、電路、環(huán)境等多重因素影響,損壞概率差異顯著 —— 優(yōu)質(zhì) LED 燈珠在合理使用下可穩(wěn)定工作5萬小時(shí),劣質(zhì)產(chǎn)品則可能短期內(nèi)失效。如果按每天使用6小時(shí)計(jì)算,理論上可以使用20多年。
但現(xiàn)實(shí)卻很骨感——很多
發(fā)表于 12-27 10:12
DLPA2000電源管理和LED/燈驅(qū)動(dòng)器IC:設(shè)計(jì)與應(yīng)用詳解
DLPA2000電源管理和LED/燈驅(qū)動(dòng)器IC:設(shè)計(jì)與應(yīng)用詳解 在電子設(shè)備不斷追求高性能、小型化和低功耗的今天,電源管理和LED驅(qū)動(dòng)技術(shù)顯得
如何移植rt-thread到野火imx6ull開發(fā)板上?
求助如何將rt-thread移植到野火imx6ull(coretex-A7)開發(fā)板上,官方的bsp中沒有imx6ull
發(fā)表于 09-29 06:25
請(qǐng)問有沒有用uboot引導(dǎo)啟動(dòng)過rtthread-smart的?
通過uboot引導(dǎo),在imx6ull開發(fā)板上啟動(dòng)rtthread-smart,通過thtp從網(wǎng)口下載到內(nèi)存后,用go命令無法啟動(dòng),且沒有額外的打印消息,有沒有遇到同樣問題的?這個(gè)該怎么解決
發(fā)表于 09-28 10:50
?LM3431 3通道恒流LED驅(qū)動(dòng)器技術(shù)文檔總結(jié)
LED 燈串提供高精度恒流。輸出電流可調(diào),以驅(qū)動(dòng)超過 200 mA 的組串。LM3431 可以擴(kuò)展以驅(qū)動(dòng)多達(dá) 6 個(gè)
2.4 A 雙通道閃光燈 LED 驅(qū)動(dòng)器 skyworksinc
電子發(fā)燒友網(wǎng)為你提供()2.4 A 雙通道閃光燈 LED 驅(qū)動(dòng)器相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有2.4 A 雙通道閃光燈 LED
發(fā)表于 07-30 18:30
2.4 A / 2 A 雙路獨(dú)立閃光燈 LED 驅(qū)動(dòng)器,帶 TrueFlash? skyworksinc
電子發(fā)燒友網(wǎng)為你提供()2.4 A / 2 A 雙路獨(dú)立閃光燈 LED 驅(qū)動(dòng)器,帶 TrueFlash?相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有2.4 A / 2 A 雙路獨(dú)立閃光燈
發(fā)表于 07-30 18:30
用于高強(qiáng)度 LED 相機(jī)閃光燈的 2A 驅(qū)動(dòng)器 IC skyworksinc
電子發(fā)燒友網(wǎng)為你提供()用于高強(qiáng)度 LED 相機(jī)閃光燈的 2A 驅(qū)動(dòng)器 IC相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有用于高強(qiáng)度 LED 相機(jī)閃光燈的 2
發(fā)表于 07-28 18:33
大電流 LED 閃光燈驅(qū)動(dòng)器電荷泵 IC skyworksinc
電子發(fā)燒友網(wǎng)為你提供()大電流 LED 閃光燈驅(qū)動(dòng)器電荷泵 IC相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有大電流 LED 閃光燈
發(fā)表于 07-28 18:30
500mA LED 閃光燈驅(qū)動(dòng)器 IC skyworksinc
電子發(fā)燒友網(wǎng)為你提供()500mA LED 閃光燈驅(qū)動(dòng)器 IC相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有500mA LED 閃光燈
發(fā)表于 07-23 18:31
Analog Devices Inc. MAX25169 6通道LED背光驅(qū)動(dòng)器數(shù)據(jù)手冊(cè)
-驅(qū)動(dòng)器電源、一個(gè)反相降壓-升壓轉(zhuǎn)換器和一個(gè)升壓/SEPIC控制器,可為顯示屏背光的1-6個(gè)LED燈串供電。
使用單片機(jī)驅(qū)動(dòng)多組LED燈實(shí)現(xiàn)呼吸效果電路
各位大佬,請(qǐng)教下,當(dāng)前我需要使用單片機(jī)驅(qū)動(dòng)控制20路并聯(lián)LED燈,需要PWM驅(qū)動(dòng)實(shí)現(xiàn)呼吸燈的效果,目前我是直接使用三極管
發(fā)表于 04-11 14:24
在iMX6ULL上設(shè)置MAC地址,啟動(dòng)后無法獲得相同的mac id?
我正在開發(fā)基于 imx6ull 的定制板。在 U Boot with Fuse Prog Command 中,我編寫了 mac id,但是在啟動(dòng)后我無法獲得相同的 mac id。還需要任何其他程序
發(fā)表于 04-10 06:02
如何在i.MX6ULL睡眠時(shí)停止刷新LCD?
為了更好的 EMC,我們需要在 i.MX6ULL 進(jìn)入睡眠狀態(tài)時(shí)停止 LCD 刷新。
能否實(shí)現(xiàn) ?
平臺(tái): i.MX6ULL
系統(tǒng): Linux
發(fā)表于 04-03 07:14
如何維護(hù)i.MX6ULL的安全內(nèi)核?
為 5.15.158。
因此,我們想知道:是否有可能基于這個(gè) BSP 平臺(tái)實(shí)現(xiàn)安全的 i.MX 6ULL 系統(tǒng)?您會(huì)推薦上游的 linux-fslc 還是 linux-imx (BSP) 內(nèi)核樹?顯然,linux-fslc 和上游內(nèi)核在安全性方面具有優(yōu)勢(shì),但缺少什么呢?
發(fā)表于 04-01 08:28
匯編驅(qū)動(dòng)IMX6ULL LED燈
評(píng)論