阿尔法开发板 .bin 文件烧写

一.  IMX6ULL 开发板简介

IMX6ULL 开发板是正点原子提供的阿尔法开发板,所用芯片为恩智浦,基于 Cortex-A7 架构。

这里介绍一下裸机篇中,关于如何将 .bin 文件烧写进 SD 卡,从而设备运行程序。

二.  xx.bin 文件烧写

IMX6ULL支持SD卡、EMMC、NAND、nor、SPI flash等等启动。

这里,我们的裸机例程选择烧写到 SD 卡里面。   

      

1.  SD卡烧写裸机 bin 文件

烧写不是将 bin 文件拷贝到 SD 卡中,而是将 bin 文件烧写到 SD 卡绝对地址上。

而且对于I.MX 而言,不能直接烧写 bin 文件,比如先在 bin 文件前面添加头部。完成这个工作,需要使用正点原子提供的 imxdownload 软件。

2.  生成 load.imx 文件

imxdownlaod工具只能在 Ubuntu 系统下使用。

使用方法如下:

(1)  将 imxdownload 拷贝到工程根目录下。

(2)  更改 imxdownload 工具的执行权限。输入如下命令更改:

chmod 777 imxdownload

(3)  确定要烧写的 SD 卡。例如,SD卡是 /dev/sdf。SD卡一般是以 sd开头的,在 /dev/目录下。

注意:这里一定要确认好SD卡设备是哪一个,弄错了可能就烧写到ubuntu 的系统盘中了!!!

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

./imxdownload  <.bin file>   <SD Card>     

例如,输入如下命令:

./imxdownload led.bin /dev/sdb
烧写的过程中可能会让你输入密码,输入你的 Ubuntu 密码即可完成烧写。

烧写完成以后会在当前工程目录下生成一个 load.imx 文件。

load.imx 文件是通过 imxdowmload 工具向 .bin 文件中添加一个头部而生成的,这个load.imx文件就是最终烧写到SD卡里面去的(load.imx 文件就是软件 imxdownload 根据 NXP 官方启动方式介绍的内容)。

我这边烧录 SD 卡如下:

注意这个烧写速度,如果这个烧写 速度在几百 KB/s 以下那么就是正常烧写。
如果这个烧写速度大于几十 MB/s 、甚至几百 MB/s 那么肯定是烧写失败了!

3.  在开发板运行

load.imx 文件烧写到 SD 卡成功后。现在可以进行在开发板运行程序了。

运行之前的准备工作:

将 SD 卡插到开发板的 SD 卡槽中。
然后设置拨码开关为 SD 卡启动,拨码开关设置为SD 卡启动方式。
我这里运行之后,LED 灯没有亮。
排查思路:
(1)  首先,将正点原子提供的源码文件拷贝到 ubuntu系统下,执行 烧录命令即将程序烧录至 SD 卡中。(--->结果:LED灯点亮了)
烧录命令如下:
./imxdownload led.bin /dev/sdb

(2)  经过第一轮排查(1)后,目前怀疑有两点:
其一:是否是程序权限的问题?
其二:是否我写的汇编程序有问题?
(3)  排查"其一" 的怀疑点时,使用 root 权限执行烧录命令,如下命令:
./imxdownload led.bin /dev/sdb

重新烧录后,SD卡 插入设备运行后,灯依然不亮。至此可以确认不是权限导致的问题。

排查 "其二" 的怀疑点:将正点原子的汇编源码与我自己写的程序对比,发现了问题。我的问题代码如下:

/*
配置IO复用
IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的bit3~0 配置为 5
*/
ldr r0, =0X020E0068
ldr r1, =0X0101
str r1, [r0]

这里是配置 IO 的复用,即将 IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03 设置为 5。对应于十六进制就是 0x05。我这里竟然错用 二进制表示了。所以问题出现在这里。

重新编译,烧录后。运行后灯亮。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值