0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

匯編驅(qū)動IMX6ULL LED燈

華仔的編程隨筆 ? 來源:華仔的編程隨筆 ? 作者:華仔的編程隨筆 ? 2023-05-01 09:19 ? 次閱讀

今天開始學(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í)和掌握如何用匯編語言來
 完成對 I.MX6U 處理器的 GPIO 初始化和控制。
其他 : 無
日志 : 初版 V1.0 2023.5.1 學(xué)習(xí)左中凱老師例程
**************************************************************/
.global _start  /* 全局標(biāo)號 */

/* 
*描述: _start函數(shù),程序從此函數(shù)開始,執(zhí)行此函數(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]

/*  初始化時鐘結(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ū)動能力
*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、然后把這兩個文件拷貝到虛擬機(jī)新建好的linux-tool下面

image.png

4、拷入一個正點(diǎn)原子專用的燒寫工具imxdownload,并且修改他的執(zhí)行權(quán)限:chmod 777 imxdownload

5、插入一個SD,我這里用的是《雷龍發(fā)展提供的CS創(chuàng)世SD NAND》

e933aa242325438b4029f849b7eeac9.jpg

fc6c9845ca7898f75ed16246d54c95c.jpg

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

image.png

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

327ac5c95e2512627b64fc8394bce30.jpg

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ā)板上,上電,稍等一會,就看到開發(fā)板的DS0燈亮了。

97de0d9cf206803300e53a446b4af2b.jpg

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關(guān)注

    關(guān)注

    240

    文章

    22905

    瀏覽量

    650085
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4771

    瀏覽量

    96158
  • 匯編
    +關(guān)注

    關(guān)注

    2

    文章

    214

    瀏覽量

    25834
收藏 人收藏

    評論

    相關(guān)推薦

    使用TPS6521815 PMIC為NXP i.MX 6ULL、6UltraLite供電

    電子發(fā)燒友網(wǎng)站提供《使用TPS6521815 PMIC為NXP i.MX 6ULL6UltraLite供電.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:44 ?0次下載
    使用TPS6521815 PMIC為NXP i.MX <b class='flag-5'>6ULL</b>、<b class='flag-5'>6</b>UltraLite供電

    低壓線性恒流LED恒流驅(qū)動芯片:用于洗墻和線條

    洗墻和線條是兩種常見的LED照明產(chǎn)品,它們都需要使用LED恒流驅(qū)動芯片來確保穩(wěn)定、可靠的電流供應(yīng),從而保證
    的頭像 發(fā)表于 08-16 10:04 ?283次閱讀

    低壓線性恒流LED恒流驅(qū)動芯片SM15633EH:用于洗墻和線條

    洗墻和線條是兩種常見的LED照明產(chǎn)品,它們都需要使用LED恒流驅(qū)動芯片來確保穩(wěn)定、可靠的電流供應(yīng),從而保證
    的頭像 發(fā)表于 03-12 16:36 ?581次閱讀
    低壓線性恒流<b class='flag-5'>LED</b>恒流<b class='flag-5'>驅(qū)動</b>芯片SM15633EH:用于洗墻<b class='flag-5'>燈</b>和線條<b class='flag-5'>燈</b>

    BCT3144雙路閃光驅(qū)動芯片

    【芯品推薦】BCT3144雙路閃光驅(qū)動芯片相機(jī)功能是手機(jī)的重要功能之一,為解決低照度環(huán)境、人像等拍攝效果差問題,手機(jī)開始配置LED閃光驅(qū)動
    的頭像 發(fā)表于 03-08 08:30 ?680次閱讀
    BCT3144雙路閃光<b class='flag-5'>燈</b><b class='flag-5'>驅(qū)動</b>芯片

    LED條的分類

    為一體驅(qū)動板(板只有LED光源,就沒有任何電子元器件)。②:精密電子元器件恒流驅(qū)動就是板+
    的頭像 發(fā)表于 02-27 20:13 ?1174次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>燈</b>條的分類

    led是什么意思有什么用

    、LED的原理 LED的原理是通過電流通過半導(dǎo)體材料時,電流與電子結(jié)合釋放出光能。這種光能是通過半導(dǎo)體材料內(nèi)的能級差產(chǎn)生的。LED
    的頭像 發(fā)表于 02-01 17:27 ?1632次閱讀

    220v免驅(qū)動led驅(qū)動芯片:SM2082EDS適用于LED 球泡,筒燈

    220V免驅(qū)動LED驅(qū)動芯片是一種電源管理芯片,它可以在接入220V交流電后,將電壓轉(zhuǎn)換為適合LED珠工作的直流電壓,從而點(diǎn)亮
    的頭像 發(fā)表于 01-11 17:01 ?1196次閱讀
    220v免<b class='flag-5'>驅(qū)動</b><b class='flag-5'>led</b><b class='flag-5'>驅(qū)動</b>芯片:SM2082EDS適用于<b class='flag-5'>LED</b> 球泡<b class='flag-5'>燈</b>,筒燈

    嵌入式學(xué)習(xí)-ElfBoard ELF 1板卡-在nxp源碼基礎(chǔ)上適配ELF 1開發(fā)板的LED功能

    源碼適配即在NXP i.MX6ULL EVK評估板對應(yīng)的Linux內(nèi)核源碼(linux-imx_4.1.15 版本)基礎(chǔ)上進(jìn)行功能接口引腳適配,以適應(yīng)ELF1開發(fā)平臺。本篇文章以適配LED為例給各位
    發(fā)表于 01-05 14:35

    最簡單的led驅(qū)動電路介紹

    LED驅(qū)動電路是用于控制LED的亮度和顏色的一種電子電路。在這篇文章中,我們將介紹最簡單的LED驅(qū)動
    的頭像 發(fā)表于 12-30 15:28 ?3655次閱讀
    最簡單的<b class='flag-5'>led</b><b class='flag-5'>驅(qū)動</b>電路介紹

    一款低功耗LED驅(qū)動電路原理介紹

    電子發(fā)燒友網(wǎng)站提供《一款低功耗LED驅(qū)動電路原理介紹.doc》資料免費(fèi)下載
    發(fā)表于 11-14 11:23 ?0次下載
    一款低功耗<b class='flag-5'>LED</b><b class='flag-5'>燈</b><b class='flag-5'>驅(qū)動</b>電路原理介紹

    LED背光驅(qū)動器技術(shù)

    電子發(fā)燒友網(wǎng)站提供《LED背光驅(qū)動器技術(shù).pdf》資料免費(fèi)下載
    發(fā)表于 11-10 10:33 ?0次下載
    <b class='flag-5'>LED</b>背光<b class='flag-5'>燈</b>用<b class='flag-5'>驅(qū)動</b>器技術(shù)

    基于i.MX6ULL的掉電檢測設(shè)計(jì)與軟件測試

    基于i.MX6ULL的掉電檢測設(shè)計(jì)與軟件測試基于i.MX6ULL平臺設(shè)計(jì)實(shí)現(xiàn)掉電檢測功能,首先選擇一路IO,利用IO電平變化觸發(fā)中斷,在編寫驅(qū)動時捕獲該路GPIO的中斷,然后在中斷響應(yīng)函數(shù)中發(fā)
    的頭像 發(fā)表于 11-09 10:40 ?683次閱讀
    基于i.MX<b class='flag-5'>6ULL</b>的掉電檢測設(shè)計(jì)與軟件測試

    IMX6ULL-開機(jī)啟動ssh卡頓

    1.問題現(xiàn)象i.MX6ULL平臺,在調(diào)試過程中出現(xiàn)sshd在開機(jī)自啟動的過程中卡頓現(xiàn)象(等待時間較久),觀察打印信息發(fā)現(xiàn),sshd一定等待直到以下代碼出現(xiàn)才能正常啟動。random
    的頭像 發(fā)表于 11-07 17:58 ?489次閱讀
    <b class='flag-5'>IMX6ULL</b>-開機(jī)啟動ssh卡頓

    i.MX6ULL——ElfBoard ELF1板卡 網(wǎng)絡(luò)更新鏡像

    ubuntu的tftpboot目錄下。 2.賦予權(quán)限: elf@ubuntu:~/tftpboot$ chmod 777 imx6ull-elf1-emmc.dtb elf@ubuntu:~/tftpboot
    發(fā)表于 11-03 09:49

    如何實(shí)現(xiàn)Linux下的LED驅(qū)動

    LED驅(qū)動 我們以imx6ull pro開發(fā)板的板載led為例,其板載了一個可控制的Led2,原理圖如下:
    的頭像 發(fā)表于 09-27 11:03 ?471次閱讀
    如何實(shí)現(xiàn)Linux下的<b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動</b>