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
+关注
关注
244文章
24793浏览量
693818 -
开发板
+关注
关注
26文章
6527浏览量
121418 -
汇编
+关注
关注
2文章
214浏览量
27685
发布评论请先 登录
相关推荐
热点推荐
SGM3780:高性能便携闪光灯LED驱动芯片的卓越之选
SGM3780:高性能便携闪光灯LED驱动芯片的卓越之选 在当今的电子设备中,便携式设备如手机和数码相机的闪光灯功能愈发重要,而一款优秀的闪光灯
SGM37863A:无电感LED闪光灯驱动器的卓越之选
SGM37863A:无电感LED闪光灯驱动器的卓越之选 在当今的电子设备中,LED闪光灯的应用越来越广泛,从智能手机到便携式互联网设备,再到
SGM37863:高性能同步升压LED闪光灯驱动器的深度解析
SGM37863:高性能同步升压LED闪光灯驱动器的深度解析 在电子设备不断追求小型化、高性能的今天,LED闪光灯
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 LED灯
评论