一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

匯編驅(qū)動IMX6ULL LED燈

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

今天開始學(xué)習(xí)編寫正點原子阿爾法開發(fā)板的LED匯編。

1、打開vscode新建led.s

代碼如下:

/**************************************************************
Copyright ? lugl.
文件名 : led.s
作者 : 劉建華
版本 : V1.0
描述 : 裸機實驗 1 匯編點燈
 使用匯編來點亮開發(fā)板上的 LED 燈,學(xué)習(xí)和掌握如何用匯編語言來
 完成對 I.MX6U 處理器的 GPIO 初始化和控制。
其他 : 無
日志 : 初版 V1.0 2023.5.1 學(xué)習(xí)左中凱老師例程
**************************************************************/
.global _start  /* 全局標號 */

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

/*  初始化時鐘結(jié)束 */

/* 開始設(shè)置GPIO1_IO03的IO屬性
*bit 16:  0 HYS關(guān)閉
*bit [15:14]: 00 默認下拉
*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、然后把這兩個文件拷貝到虛擬機新建好的linux-tool下面

image.png

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

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

e933aa242325438b4029f849b7eeac9.jpg

fc6c9845ca7898f75ed16246d54c95c.jpg

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

image.png

因為我用的Nflash卡,所以不象教程里面說的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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23614

    瀏覽量

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

    關(guān)注

    25

    文章

    5389

    瀏覽量

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

    關(guān)注

    2

    文章

    214

    瀏覽量

    26342
收藏 人收藏

    評論

    相關(guān)推薦

    iMX6ULL上設(shè)置MAC地址,啟動后無法獲得相同的mac id?

    我正在開發(fā)基于 imx6ull 的定制板。在 U Boot with Fuse Prog Command 中,我編寫了 mac id,但是在啟動后我無法獲得相同的 mac id。還需要任何其他程序
    發(fā)表于 04-10 06:02

    如何在i.MX6ULL睡眠時停止刷新LCD?

    為了更好的 EMC,我們需要在 i.MX6ULL 進入睡眠狀態(tài)時停止 LCD 刷新。 能否實現(xiàn) ? 平臺: i.MX6ULL 系統(tǒng): Linux
    發(fā)表于 04-03 07:14

    如何維護i.MX6ULL的安全內(nèi)核?

    為 5.15.158。 因此,我們想知道:是否有可能基于這個 BSP 平臺實現(xiàn)安全的 i.MX 6ULL 系統(tǒng)?您會推薦上游的 linux-fslc 還是 linux-imx (BSP) 內(nèi)核樹?顯然,linux-fslc 和上游內(nèi)核在安全性方面具有優(yōu)勢,但缺少什么呢?
    發(fā)表于 04-01 08:28

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)板適配之LED

    imx6ull_elf1_defconfig然后在源碼根目錄下使用make menuconfig命令,搜索LEDS_GPIO,看到LEDS_GPIO [=y]說明此驅(qū)動已經(jīng)編譯進內(nèi)核:elf@ubuntu:~/work
    發(fā)表于 01-24 09:40

    飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)板適配之LED

    imx6ull_elf1_defconfig然后在源碼根目錄下使用make menuconfig命令,搜索LEDS_GPIO,看到LEDS_GPIO [=y]說明此驅(qū)動已經(jīng)編譯進內(nèi)核:elf@ubuntu:~/work
    發(fā)表于 01-23 10:49

    imx6ull 和 lan8742 工作起來不正常, ping 老是丟包

    采用 imx6ull 默認的設(shè)備樹, 和 lan8742通信, MAC的配置如下: pinctrl_enet2: enet2grp { fsl,pins = <
    發(fā)表于 01-09 14:51

    【迅為電子】i.MX6UL和i.MX6ULL芯片區(qū)別與開發(fā)板對比

    【迅為電子】i.MX6UL和i.MX6ULL芯片區(qū)別與開發(fā)板對比
    的頭像 發(fā)表于 11-28 14:31 ?1058次閱讀
    【迅為電子】i.MX<b class='flag-5'>6</b>UL和i.MX<b class='flag-5'>6ULL</b>芯片區(qū)別與開發(fā)板對比

    imx6ull裸機編程,使用宏定義無法驅(qū)動,使用指針就可以驅(qū)動

    當(dāng)我使用宏定義來訪問imx6ull的寄存器,控制GPIO5_IO3輸出高低電平控制LED時,程序燒錄進去后沒有反應(yīng)。但是當(dāng)我使用指針來訪問寄存器,LED可以正常驅(qū)動,請問這是什么原因?
    發(fā)表于 11-04 17:59

    索尼_imx678_19DV500驅(qū)動源碼

    hi3519dv500_IMX678驅(qū)動源碼
    發(fā)表于 11-01 10:36 ?4次下載

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

    電子發(fā)燒友網(wǎng)站提供《使用TPS6521815 PMIC為NXP i.MX 6ULL、6UltraLite供電.pdf》資料免費下載
    發(fā)表于 09-13 09:44 ?1次下載
    使用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 ?1518次閱讀

    達林頓管驅(qū)動繼電器電路為什么要加LED

    在達林頓管驅(qū)動繼電器電路中,加入LED是一種常見的設(shè)計方法。LED的加入可以帶來許多好處,包括提高電路的穩(wěn)定性、減少功耗、提高安全性等。
    的頭像 發(fā)表于 07-15 09:59 ?1772次閱讀

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

    imx6ull_elf1_defconfigelf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ make menuconfig找到以下位置,Keyboards驅(qū)動默認已經(jīng)編譯進內(nèi)核
    發(fā)表于 07-04 09:11

    飛凌嵌入式ElfBoard ELF 1板卡-在NXP源碼基礎(chǔ)上適配ELF 1開發(fā)板的按鍵功能

    imx6ull_elf1_defconfigelf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ make menuconfig找到以下位置,Keyboards驅(qū)動默認已經(jīng)編譯進內(nèi)核
    發(fā)表于 07-03 09:07

    AC-DC LED日光球泡驅(qū)動芯片NU311

    時,NU311輸出引腳電壓被夾在 約15V。 NU311提高了性能并降低了成本 LED驅(qū)動程序。這是一個6針的軟體26包。 應(yīng)用場景: ?E26/27,T5/T8LED
    發(fā)表于 06-19 16:23