使用JLink仿真器烧写基于TI公司OMAP-L138芯片的Nand Flash基本思想与实现(2)

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”,如下图箭头所示;


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的文件,这就是烧写时所用工具,见图。


JLink.exe

现在,工具准备好啦,文件也都齐全了之后,就到了重头戏——烧写nandflash

使用J-Link commander烧写Flash

在烧写前需要建立连接,由于jlink仿真器默认是20管脚,而过去所用XDS560PLUS仿真器为14管脚,不能一一对应上。但由于两者均符合jtag标准,有公共的引脚,所以可将公共引脚标连接起来。具体的引脚对应我将在下一个小节陈列出来。如果你能成功建立连接,打开jlink.exe后会出现如下窗口:


哟哟 hey man

接下来就可以分别输入如下命令来逐步实现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

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 66,703评论 12 436
  • 侍御史陈邈这两日便宿于廷尉署中,倒不是他的官署和府邸尚未整理完毕,而是前任的御史大夫和侍御史、乃至数十位的一千石以...
    仰结桂枝阅读 118评论 0 1
  • 我一次次的告诫自己,都这样了,该妥协了,可每当妥协到一半的时候,我的内心却总是不接受的的那些做法。 妥协,总是在没...
    冬阳桑梓阅读 36评论 0 1
  • 1.Json在Objective-C中是NSDictionary对象,是一个有序集合2.Json的格式A ...
    Paco_Ke阅读 39评论 0 0
  • 在大自然的怀抱中寻求内心最真实的自己,对?还是错?有些事情无关乎对与错,瑜伽经中讲到非暴力,做善事做好人。 尽力而...
    Smile_Zhangjie阅读 51评论 0 2