Freescale ATK(Advanced ToolKit) 是一个针对其MX系列CPU为核心的嵌入式系统flash(Nand/Nor),SD烧录软件

Freescale ATK(Advanced ToolKit) 是一个针对其MX系列CPU为核心的嵌入式系统flash(Nand/Nor),SD烧录软件。可以用来烧录bootloader和kernel到flash上(nor, nand , mc/sd...)。

 

在烧写Nand flash时,有可能ATK对用户使用的nand flash不支持,这就要我们自己通过修改ATK源码,添加新的nand flash类型,然后对其flash 源码进行交叉编译,生成的.bin供ATK烧写工具使用。

下面的改动针对ATK1.68之前的版本,ATK1.70没有看到其源码,不知道源码结构是否发生变化,可以肯定的是ATK1.71源码nand flash类型配置相关文件发生了较大的变化,后面会讲述其下载地址及添加新的nand flash类型的方法。


ATK原理和工作流程如下:

1)首先是开发板这边,通过拨码开关,设置开发板从UART/USB启动

我们使用的是imx515,拨码开关1,2需要拨为ON

 

2)开发板上电后,SOC内的rom开始初始化internal ram, 开始等待UART/USB上数据到来后, 将其加载到internal ram中。
 
3)然后host这边, 启动ATK GUI界面之后, 选择所要执行的flash型号操作,以及其他相应的选项, 勾选完毕后, 点击执行, 执行过程分为2个阶段:
 1. ram kernel和flash lib首先通过UART/USB下载到SOC的internal ram(SOC已经初始化好了);
 2. host dll生成基于ram kernel协议的命令, 通过UART或USB发送flash操作命令到SOC。
 
4)此时,被下载到SOC internal ram里的ram kernel 收到host过来的flash操作命令后, 调用flash lib里的flash操作实现, 控制NFC(Nand Flash Controller)来完成相应的flash操作。flash lib操作的结果回传给ram kernel, 由其回传给host, 显示在GUI界面上。

 

Freescale i.MX Advanced Toolkit(ATK)下载工具修改ATK源程序来支持新NAND ,新的开发板更改DDR以及NAND需要编译生成新的ROMLIB.bin
1)加入新的DDR
     采用ICE对内存测试成功后可以在下载的时候调用此测试文件
2)加入新的NAND flash类型
     对于老版本ATK源码编辑device_program/flash/nand_flash/src/nand_ids.c
    加入新的nand参数
   目前用到的nand
nand_t __attribute__ ((aligned(8))) nand_type[] = {
   /*man  dev io  ps   oob  mo po scan row  blks    ppb  name */
  {0xEC, 0x76, 8, 512,  16, 5, 0,   1,  3,    4096, 32,  "NAND K9F1208U0M" },
  {0xEC, 0x36, 8, 512, 16, 5, 0,   1,  3,    4096, 32,  "NAND K9K1208Q0C" },
  {0xEC, 0x75, 8, 512,  16, 5, 0,   1,  2,    2048, 32,  "NAND K9F5608U0D" },
  {0xEC, 0x79, 8, 512,  16, 5, 0,   1,  3,    8192, 32,  "NAND K9K1G08U0B" },
  {0xEC, 0x78, 8, 512,  16, 5, 0,   1,  3,    8192, 32,  "NAND K9K1G08R0B" },
  {0xEC, 0x45, 16,512,  16, 11,0,   1,  2,    2048, 32,  "NAND K9F5616Q0C" },
  {0x98, 0x79, 8, 512,  16, 5, 0,   1,  3,    8192, 32,  "NAND TC58DVG02A1FT00" },
  {0xEC, 0xAA, 8, 2048, 64, 0, 0,   2,  3,    2048, 64,  "NAND K9K2G08R0A" },
  {0xEC, 0xAA, 8, 2048, 64, 0, 0,   2,  3,    2048, 64,  "NAND K9F2G08R0A" },
  {0xEC, 0xDC, 8, 2048, 64, 0, 0,   2,  3,    4096, 64,  "NAND K9F4G08U0M" },
  {0xEC, 0xD5, 8, 2048, 64, 0, 127, 1,  3,    8192, 128, "NAND K9LAG08U0M" },
  {0xEC, 0xD7, 8, 4096, 128,0, 127, 1,  3,    8192, 128, "NAND K9LBG08U0M" },
  {0x2C, 0xAc, 8, 2048, 64, 0, 0,   2,  3,    4096, 64,  "NAND MT29F4G08ABC"},
  {0xEC, 0xD3, 8, 2048, 64, 0, 127, 1,  3,    4096, 128, "NAND K9G8G08U0M" },
  {0x2C, 0xD5, 8, 4096, 218, 0, 0,  1,  3,    4096, 128, "NAND MT29F32G08QAA" },
  {0}
};

 

5.新版本的Advanced Toolkit(ATK)1.71源码下载及修改说明

Advanced Toolkit(ATK)1.71对于目前大部分nand flash都能够支持,

如果不支持的话可以参考后面的方法修改。

 

Advanced Toolkit(ATK)1.71烧写工具下载地址:


Advanced Toolkit(ATK)1.71源码下载地址:


 

编译所需环境:AdvancedToolKit1.71_Source_STD/
1.Cygwin http://www.cygwin.com/
2.GNU gcc toolchain for cygwin http://www.gnuarm.com/bu-2.17_gcc-4.1.1-c-c++_nl-1.14.0_gi-6.5.exe
操作步骤:
1).安装AdvancedToolKit1.71_Source_STD,

下载AdvancedToolKit1.71_Source_STD后解压,安装源码。

根据AdvancedToolKit1.71_Source_STD/FSL_ATK_ReferenceManual_Std.pdf P15页说明安装GCC toolchain,Cygwin。

2).添加新的nand flash类型
ATK1.71版本添加新的nand flash类型需要修改device_program/flash/nand_flash/src/nand_device_info.c,对于之前的版本需要修改device_program/flash/nand_flash/src/nand_ids.c

例如:要添加K9F1G08R0A型号的nand flash,
查阅nand flash 芯片手册得知:
厂商ID(man_id):0xec
设备ID(dev_id):0xa1
芯片大小(chip_size_in_bytes):128MB
每块页数(ppb):64
页大小(page_size):2KB
OOB区域大小(oob_size):64B
所也,在nand_device_info.c中添加nand结构信息如下:
{
.end_of_table = false,
.man_id = 0xec,
.dev_id = 0xa1,
.cell_type = NAND_DEVICE_CELL_TECH_SLC,
.chip_size_in_bytes = 128LL*SZ_1M,
.ppb = 64,
.page_size = 2*SZ_1K,
.oob_size = 64,
.bbm_offset = 0,
.bbi_page_offset = 0,
.bus_width = 8,
.scan_pg_num = 1,
.model = "K9F1G08R0A",
},


3).编译
启动Cygwin,进入目录AdvancedToolKit1.71_Source_STD/device_program
根据AdvancedToolKit1.71_Source_STD/FSL_ATK_ReferenceManual_Std.pdf P16页说明操作

 

我们这里以imx515为例说明编译方法:
<1>启动cygwin,进入AdvancedToolKit1.71_Source_STD/device_program目录

<2>执行编译命令:

make MCU=mx51 REV=to2 flashlib FLASH_TYPE=NAND
产生的bin文件在device_program/bin/mx51to2_nand.bin

在用Advanced Toolkit(ATK)1.71烧写nand flash时选择device_program/bin/mx51to2_nand.bin作为代理文件即可烧写新类型的nand flash
 
 
 
ram,开始等待UART/USB上数据到

来后, 将其加载到internal ram中。

然后host这边, 启动GUI界面之后, 选择所要执行的flash操作,以及其他相应的选项, 勾选完毕后, 点击执行,执行过程分为2个阶段:
 1. ram kernel和flash lib首先通过UART/USB驻扎进SOC的internal ram(SOC已经初始化好了);
 2. host dll生成基于ram kernel协议的命令,通过UART或USB发送flash操作命令到SOC。
本文来自成都明诚科技,专业的嵌入式平台提供商,详细信息请访问
http://www.embedexpert.com/article/hardware/2010/1128/ATK.html
此时, SOC里面,驻扎在internal ram里的ram kernel 收到host过来的flash操作命令后, 调用flash lib里的flash操作实现, 控制NFC

(Nand Flash Controller)来完成相应的flash操作。flash lib操作的结果回传给ram kernel, 由其回传给host, 显示在GUI界面上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值