Freescale ATK(Advanced ToolKit) 是一个针对其MX系列CPU为核心
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,?? 1,? 3,??? 4096,32,? "NAND K9F1208U0M" }, ? {0xEC,0x36,16,? "NAND K9K1208Q0C" },0x75,? 2,??? 2048,? "NAND K9F5608U0D" },0x79,??? 8192,? "NAND K9K1G08U0B" },0x78,? "NAND K9K1G08R0B" },0x45,11,? "NAND K9F5616Q0C" }, ? {0x98,? "NAND TC58DVG02A1FT00" },0xAA,2048,64,?? 2,? "NAND K9K2G08R0A" },? "NAND K9F2G08R0A" },0xDC,? "NAND K9F4G08U0M" },0xD5,127,1,128,"NAND K9LAG08U0M" },0xD7,4096,"NAND K9LBG08U0M" }, ? {0x2C,0xAc,? "NAND MT29F4G08ABC"},0xD3,"NAND K9G8G08U0M" },218,? 1,"NAND MT29F32G08QAA" }, ? {0} };
?
5.新版本的Advanced Toolkit(ATK)1.71源码下载及修改说明
Advanced Toolkit(ATK)1.71对于目前大部分nand flash都能够支持,
如果不支持的话可以参考后面的方法修改。
?
Advanced Toolkit(ATK)1.71烧写工具下载地址:
http://download.csdn.net/source/3325515
Advanced Toolkit(ATK)1.71源码下载地址:
http://download.csdn.net/source/3309322
?
编译所需环境: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个阶段: (Nand Flash Controller)来完成相应的flash操作。flash lib操作的结果回传给ram kernel, 由其回传给host, 显示在GUI界面上。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- (转) Twisted : 第二部分 异步编程初探与reactor模式
- ruby-on-rails – 如何使Rails 4.2与Postgres Jsonb一起使用
- Malloc在单独的函数中改变未初始化变量的行为?
- 记一次VB Windows程序的启动和退出处理
- c – Qt:无效使用不完整类型和前向声明
- ruby-on-rails – 在Cucumber Ruby上测试HTTP和HTTPS
- 正则表达式快速使用入门
- c# – VSTO中的Excel控件
- ruby-on-rails – Rspec,shoulda,validate_uniqueness_of具
- ios – 捕获UIView的屏幕截图 – 性能缓慢