1.下载

地址:https://www.nxp.com.cn/products/processors-and-microcontrollers/arm-processors/i.mx-applications-processors/i.mx-6-processors/i.mx-6ull-single-core-processor-with-arm-cortex-a7-core:i.MX6ULL?tab=Design_Tools_Tab

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL

有两种SDK,一种是windows下面的,一种是linux下面的

下载完之后

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_02

其中win的包安装之后:

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_03

不管这个,直接看linux下的包

2.安装

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_04

土匪协议,被迫同意

指定安装路径

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_05

我的路径

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_06

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_07

最终,好像和win没什么区别

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_08

3.测试编译
sudo apt-get install cmake
sudo apt-get install gcc-arm-none-eabi
cd /home/jun/i.mx6/sdk/SDK_2.2_MCIM6ULL/boards/evkmcimx6ull/demo_apps/hello_world/armgcc
./build_ddr_release.sh

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_09

生成文件

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_10

4.制作镜像
/home/jun/i.mx6/sdk/SDK_2.2_MCIM6ULL/tools/imgutil

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_11

打开readme.txt

原文:
   IMGUTIL User Guide
  
   ======================================
   
   1. Build SDK2.0 application
   2. Copy built binary (.bin file) to imgutil/<board> folder and rename to sdk20-app.bin
   3. In imgutil/<board> folder, run mkimage.sh in mingw32 shell to get bootable image file sdk20-app.img
       a. If the image is built with ram link file, use "mkimage.sh ram" to make the bootable image.
       b. If the image is built with flash link file, use "mkimage.sh flash" to make the bootable XIP image.
       c. If the image is built with ram link file and want to boot from MicroSD card, use "mkimage.sh sd" to make the bootable image.

   ======================================

使用指导:

1.编译SDK2.0的应用程序,就是刚刚那个helloworld以及其他的一些代码,已经做完了

2.把二进制文件拷贝到imgutil/<board>目录下,并且重命名为sdk20-app.bin,就是把生成的bin文件(编译的时候,就是这个名字),拷贝到evkmcimx6ull下面。

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_12

a.如果是编译的ram的文件,使用mkimage.sh ram制作镜像

b.如果是编译的flash的文件,使用mkimage.sh flash制作镜像

b.如果是编译的ram的文件,但是要从SD卡启动,使用mkimage.sh sd制作镜像

好,照这个说明做就是了

./mkimage.sh sd

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_13

产生一个IMG文件

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_14

5.烧录

查看自己的磁盘名称,我的是SDB,选错盘可能会把电脑干崩

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_15

 

确定固件烧录的起始地址:

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_16

这个东西,是SD卡的首地址,所以把数据从头开始搞,就没啥问题了

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_17

使用DD命令烧录

sudo dd if=sdk20-app.img of=/dev/sdb bs=1k seek=0 conv=fsync

1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >

2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >

3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。

    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。

    bs=bytes:同时设置读入/输出的块大小为bytes个字节。

4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。

5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。

6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_18

通电,正常显示

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_IMX6ULL_19