赞
踩
bin 文件烧写到哪里呢?使用 STM32 的时候烧写到内部 FLASH,6ULL 没有内部 FLASH,是不是就不能烧写呢?不,6ULL 支持 SD卡、EMMC、NAND FLASH、NOR FLASH 等方式启动,在裸机学习的工程中,选择 SD卡启动,所以将 bin 文件烧写到 SD卡中。
烧写并不是将 bin 文件直接拷贝到 SD卡中,而是将 bin 文件烧写到 SD卡的绝对地址上,而且对于 I.MX,不能直接烧写 bin 文件,需要添加一个头部,会使用到正点原子的 imxdownload 软件,将 imxdownload 拷贝到工程根目录下;
使用 imxdownload 向 SD 卡烧写 led.bin 文件,命令格式如下;
./imxdownload <.bin file> <SD Card>
在 Ubuntu 下向 SD卡烧写裸机 bin 文件,需要将 SD卡连接 Ubuntu,参考链接:【Linux】Ubuntu 磁盘管理 。Ubuntu 下所有的设备文件都在目录“/dev”里面,所以插上 SD 卡以后也会出现在“/dev”里面,其中存储设备都是以“/dev/sd”开头的,我们要先看一下不插 SD 卡的时候电脑都有哪些存储设备,以防插入 SD 卡以后分不清谁是谁;
对比之下可以看出,sdb 是插入的 SD卡。
我们直接将软件 imxdownload 从 Windows 下复制到 Ubuntu 中以后,imxdownload 默认是没有可执行权限的,我们需要给予 imxdownload 可执行权限;
chmod u+x imxdownload
imxdownload 已经具有了可执行权限。
./imxdownload <.bin file> <SD Card>
在工程目录下多了一个 losd.imx 的文件,之前一直说头部,其实是给 led.bin 添加头部之后个生成一个新的 losd.imx,losd.imx 被烧到 SD卡里面。
将 SD卡插入到开发板中,启动方式选择 SD卡,即把拨码开关的 1 和 7 拨上去;
I.MX6ULL-MINI_led
上电之后,可以看到,led1(红色的)过一会才亮起;
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;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。