【ARM 裸机】汇编 led 驱动之烧写 bin 文件

1、烧写概念

bin 文件烧写到哪里呢?使用 STM32 的时候烧写到内部 FLASH,6ULL 没有内部 FLASH,是不是就不能烧写呢?不,6ULL 支持 SD卡、EMMC、NAND FLASH、NOR FLASH 等方式启动,在裸机学习的工程中,选择 SD卡启动,所以将 bin 文件烧写到 SD卡中。

烧写并不是将 bin 文件直接拷贝到 SD卡中,而是将 bin 文件烧写到 SD卡的绝对地址上,而且对于 I.MX,不能直接烧写 bin 文件,需要添加一个头部,会使用到正点原子的 imxdownload 软件 ,将 imxdownload 拷贝到工程根目录下;

2、向 SD 卡烧写 bin 文件

使用 imxdownload 向 SD 卡烧写 led.bin 文件,命令格式如下;

c 复制代码
./imxdownload <.bin file> <SD Card>

2.1、查看 SD卡

在 Ubuntu 下向 SD卡烧写裸机 bin 文件,需要将 SD卡连接 Ubuntu,参考链接:【Linux】Ubuntu 磁盘管理 。Ubuntu 下所有的设备文件都在目录"/dev"里面,所以插上 SD 卡以后也会出现在"/dev"里面,其中存储设备都是以"/dev/sd"开头的,我们要先看一下不插 SD 卡的时候电脑都有哪些存储设备,以防插入 SD 卡以后分不清谁是谁;

对比之下可以看出,sdb 是插入的 SD卡。

2.2、给予 imxdownload 可执行权限

我们直接将软件 imxdownload 从 Windows 下复制到 Ubuntu 中以后,imxdownload 默认是没有可执行权限的,我们需要给予 imxdownload 可执行权限;

c 复制代码
chmod u+x imxdownload

imxdownload 已经具有了可执行权限。

2.3、 烧写

c 复制代码
./imxdownload <.bin file> <SD Card>


在工程目录下多了一个 losd.imx 的文件,之前一直说头部,其实是给 led.bin 添加头部之后个生成一个新的 losd.imx,losd.imx 被烧到 SD卡里面。

2.4、验证

将 SD卡插入到开发板中,启动方式选择 SD卡,即把拨码开关的 1 和 7 拨上去;

I.MX6ULL-MINI_led

上电之后,可以看到,led1(红色的)过一会才亮起;

2.5、优化编写 Makefile

c 复制代码
led.bin: leds.s
	arm-linux-gnueabihf-gcc -g -c leds.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 -f *.o led.bin led.elf led.dis


Makefile 需要注意首行空出来的地方使用 TAB 键 !!!

修改一下 leds.s 为 led.s;

相关推荐
孙克旭_3 小时前
PXE_Kickstart_无人值守自动化安装系统
linux·运维·自动化
皓月盈江4 小时前
Linux电脑本机使用小皮面板集成环境开发调试WEB项目
linux·php·web开发·phpstudy·小皮面板·集成环境·www.xp.cn
深井冰水4 小时前
mac M2能安装的虚拟机和linux系统系统
linux·macos
leoufung5 小时前
内核内存锁定机制与用户空间内存锁定的交互分析
linux·kernel
忧虑的乌龟蛋6 小时前
嵌入式Linux I2C驱动开发详解
linux·驱动开发·嵌入式·iic·i2c·读数据·写数据
I_Scholar7 小时前
OPENSSL-1.1.1的使用及注意事项
linux·ssl
Johny_Zhao7 小时前
K8S+nginx+MYSQL+TOMCAT高可用架构企业自建网站
linux·网络·mysql·nginx·网络安全·信息安全·tomcat·云计算·shell·yum源·系统运维·itsm
稳联技术8 小时前
Ethercat转Profinet网关如何用“协议翻译术“打通自动化产线任督二脉
linux·服务器·网络
烟雨迷8 小时前
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
linux·服务器·学习·编辑器·vim
Bruk.Liu8 小时前
Linux 上安装RabbitMQ
linux·服务器·rabbitmq