1、打開vscode新建led.s
代碼如下:
/**************************************************************
Copyright ? lugl.
文件名 : led.s
作者 : 劉建華
版本 : V1.0
描述 : 裸機實驗 1 匯編點燈
使用匯編來點亮開發板上的 LED 燈,學習和掌握如何用匯編語言來
完成對 I.MX6U 處理器的 GPIO 初始化和控制。
其他 : 無
日志 : 初版 V1.0 2023.5.1 學習左中凱老師例程
**************************************************************/
.global _start /* 全局標號 */
/*
*描述: _start函數,程序從此函數開始,執行此函數完成時鐘使能、
* GPIO初始化、最終控制GPIO輸出低電平來點亮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]
/* 初始化時鐘結束 */
/* 開始設置GPIO1_IO03的IO屬性
*bit 16: 0 HYS關閉
*bit [15:14]: 00 默認下拉
*bit [13]: 0 kepper 功能
*bit [12]: 1 pull/kepper 使能
*bit [11]: 0 關閉開路輸出
*bit [7:6]: 10 速度100 MHz
*bit [5:3]: 110 R0/6驅動能力
*bit [0] : 0 低轉換率
0b0 0001 0000 1011 0000
0x00 00 10 B0
*/
ldr r0, = 0x020e02f4 @ 寄存器SW_PAD_GPIO1_IO03_BASE
ldr r1, = 0x000010b0 @ 配置寄存器值
str r1, [r0] @ 寫入GPIO的配置值
/* 設置 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、然后把這兩個文件拷貝到虛擬機新建好的linux-tool下面

4、拷入一個正點原子專用的燒寫工具imxdownload,并且修改他的執行權限:chmod 777 imxdownload
5、插入一個SD,我這里用的是《雷龍發展提供的CS創世SD NAND》


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

因為我用的Nflash卡,所以不象教程里面說的SDD卡,我這里是sdb。

6、執行燒寫
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字節(3.2 kB,3.1 KiB)已復制,0.0111069 s,290 kB/s
顯示燒寫成功。
7、把卡插到開發板上,上電,稍等一會,就看到開發板的DS0燈亮了。

審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
led
+關注
關注
243文章
24594瀏覽量
690800 -
開發板
+關注
關注
26文章
6289瀏覽量
118048 -
匯編
+關注
關注
2文章
214瀏覽量
27406
發布評論請先 登錄
相關推薦
熱點推薦
LED燈珠壽命如何提升50%
、電路、環境等多重因素影響,損壞概率差異顯著 —— 優質 LED 燈珠在合理使用下可穩定工作5萬小時,劣質產品則可能短期內失效。如果按每天使用6小時計算,理論上可以使用20多年。
但現實卻很骨感——很多
發表于 12-27 10:12
DLPA2000電源管理和LED/燈驅動器IC:設計與應用詳解
DLPA2000電源管理和LED/燈驅動器IC:設計與應用詳解 在電子設備不斷追求高性能、小型化和低功耗的今天,電源管理和LED驅動技術顯得
如何移植rt-thread到野火imx6ull開發板上?
求助如何將rt-thread移植到野火imx6ull(coretex-A7)開發板上,官方的bsp中沒有imx6ull
發表于 09-29 06:25
請問有沒有用uboot引導啟動過rtthread-smart的?
通過uboot引導,在imx6ull開發板上啟動rtthread-smart,通過thtp從網口下載到內存后,用go命令無法啟動,且沒有額外的打印消息,有沒有遇到同樣問題的?這個該怎么解決
發表于 09-28 10:50
2.4 A 雙通道閃光燈 LED 驅動器 skyworksinc
電子發燒友網為你提供()2.4 A 雙通道閃光燈 LED 驅動器相關產品參數、數據手冊,更有2.4 A 雙通道閃光燈 LED
發表于 07-30 18:30
2.4 A / 2 A 雙路獨立閃光燈 LED 驅動器,帶 TrueFlash? skyworksinc
電子發燒友網為你提供()2.4 A / 2 A 雙路獨立閃光燈 LED 驅動器,帶 TrueFlash?相關產品參數、數據手冊,更有2.4 A / 2 A 雙路獨立閃光燈
發表于 07-30 18:30
用于高強度 LED 相機閃光燈的 2A 驅動器 IC skyworksinc
電子發燒友網為你提供()用于高強度 LED 相機閃光燈的 2A 驅動器 IC相關產品參數、數據手冊,更有用于高強度 LED 相機閃光燈的 2
發表于 07-28 18:33
大電流 LED 閃光燈驅動器電荷泵 IC skyworksinc
電子發燒友網為你提供()大電流 LED 閃光燈驅動器電荷泵 IC相關產品參數、數據手冊,更有大電流 LED 閃光燈
發表于 07-28 18:30
500mA LED 閃光燈驅動器 IC skyworksinc
電子發燒友網為你提供()500mA LED 閃光燈驅動器 IC相關產品參數、數據手冊,更有500mA LED 閃光燈
發表于 07-23 18:31
在iMX6ULL上設置MAC地址,啟動后無法獲得相同的mac id?
我正在開發基于 imx6ull 的定制板。在 U Boot with Fuse Prog Command 中,我編寫了 mac id,但是在啟動后我無法獲得相同的 mac id。還需要任何其他程序
發表于 04-10 06:02
如何在i.MX6ULL睡眠時停止刷新LCD?
為了更好的 EMC,我們需要在 i.MX6ULL 進入睡眠狀態時停止 LCD 刷新。
能否實現 ?
平臺: i.MX6ULL
系統: Linux
發表于 04-03 07:14
如何維護i.MX6ULL的安全內核?
為 5.15.158。
因此,我們想知道:是否有可能基于這個 BSP 平臺實現安全的 i.MX 6ULL 系統?您會推薦上游的 linux-fslc 還是 linux-imx (BSP) 內核樹?顯然,linux-fslc 和上游內核在安全性方面具有優勢,但缺少什么呢?
發表于 04-01 08:28
匯編驅動IMX6ULL LED燈
評論