papi_k's private cottage
在上一小节呢,我们介绍了使用jlink烧写omapl138为芯片的nandflash的基本思想。简单说,我们只需要注意两点:
一、记住omapl138有一个特别重要的共享内存,初始化芯片的程序要在这里运行哟,访问地址为0x80000000;
二、熟悉烧写nandflash的思路,其实也就需要三个文件啦,分别为init.bin、firmware.bin、nandwrite.bin。
init.bin文件用来激活板子上的存储DDR(想想你的计算机上的内存条,有4G、8G、32G等,不经过初始化激活是不能用的啊,你也不能看片打游戏对吧),当然也包括初始化芯片一些其他寄存器的功能;固件安装包firmware.bin,这个包里东西可多了,可以将它理解成是一个包括启动引导程序、内核、文件、应用于一体的系统安装包,有了它板子才可以使用,才有应用价值,我们才可以看到花花绿绿的大千世界;还有一个名为nandwrite.bin的文件,它的作用就是将这个固件安装包放进flash存储器里。
上节回顾结束,开说nandflash的烧写的实现过程。
烧写所需工具
J-Link烧写可分为烧写前准备阶段和烧写阶段,主要使用两个工具:
IAR与Jlink。
IAR是烧写前编译初始化程序如init.bin、nandwrite.bin所用的工具,Jlink是烧写所要借助的工具。IAR与Jlink安装很简单,一路傻瓜式的下一步就好了。但使用IAR编译工程的过程中,有几处配置要注意,不然会造成编译或链接失败。截图如下:
(1) 在工程配置“General Options”下“Target”下“Device”,选择TI 的“OMAPL138”,如下图箭头所示;
(2) 在工程配置“General Options”下“Library Configuration”下“Library”选择“Full” ,如下图箭头所示;
(3) 在工程配置“Output Converter”下“Output format”下选择“binary”,勾选“Override default”并编写生成bin文件的名字如init138.bin,如下图箭头所示;
(4) 在工程配置“Linker”下“Config”下“Linker configuration file”下勾选“Override default”并加载工程所需的配置文件OMAPL138_shared_ram.icf(此配置文件内容可根据具体情况更改),如下图所示;
(5) 在工程配置“Debugger”下“Setup”下“Driver”中选择“J-Link/J-Trace”,如下图箭头所示;
Jlink
直接从官网下载较新版本的jlink就可以啦,我所用的为Windows版的JLink_V612h,在Windows下进行傻瓜式的安装便可以完成,具体安装过程略。安装完成后,可在安装路径下看到一个名为JLink.exe的文件,这就是烧写时所用工具,见图。
现在,工具准备好啦,文件也都齐全了之后,就到了重头戏——烧写nandflash
使用J-Link commander烧写Flash
在烧写前需要建立连接,由于jlink仿真器默认是20管脚,而过去所用XDS560PLUS仿真器为14管脚,不能一一对应上。但由于两者均符合jtag标准,有公共的引脚,所以可将公共引脚标连接起来。具体的引脚对应我将在下一个小节陈列出来。如果你能成功建立连接,打开jlink.exe后会出现如下窗口:
接下来就可以分别输入如下命令来逐步实现nandflash烧写的烧写咯:
1. connect //建立jlink与目标板的连接
2. OMAP-L138 //选择所用芯片
3. JTAG //选择连接方式
4. -1,-1 //jtag配置参数(默认)
5. 2000 //KHz,接口速度(可调节)
连接和配置完毕,开始准备烧写:
6. loadbin Init.bin 0x80000000 //加载初始化程序到共享内存
7. setpc 0x800015bc //设置程序执行入口地址,此地址不固定(至于为什么是这个地址而不是80000000,下一节说明)
8. g //执行
9. h //暂停CPU,否则无法执行其他命令
10. loadbin firmware.bin 0xC1000000 //将固件firmware.bin加载进DDR指定位置
11. loadbin Nandwrite_flash.bin 0x80000000 //加载烧写NandFlash的程序到共享内存
12. setpc 0x80005094 //设置程序执行入口地址,此地址不固定(下一节说明为什么是这个地址)
13. g //执行
14. q //退出
经过以上步骤,即可完成firmware.bin的nandflash烧写。
经过这两节,我们就可以实现TI公司OMAP-L138芯片的Nand Flash烧写,长舒一口气啊!
下一节,我将总结一下在连接过程和烧写过程中可能出现的问题,包括jlink接口速率设置、jlink仿真器20脚与XDS560PLUS仿真器14脚连接、程序在共享内存执行地址问题。 peace and love!
made by papi_k