编者的话
Flash 编程与烧写,原本应该是开发的最后一步,当所有程序都做好了,在线编译运行正常,才会通过 Flash 编程,生成二进制的可执行文件 LDR,再通过 JTAG 仿真器将 LDR 文件烧写到 Flash 中,上电 BOOT 实现脱机运行的功能。
我们为何把这个章节安排在第二个阶段,是因为 21489 的第二种编程方式,首选就需要烧写程序,所以在这个文档里,先把烧写程序的方法给用户做详细的阐述,也好顺利的进入第三个阶段。
ADI 的 DSP,通过 Flash 编程生成的二进制可执行文件尾椎为 LDR,但实际上他的数据格式仍然是通过用户自己选择,而组合成的 BIN,HEX 等常规数据。所以大家不要被 LDR 这个名字所疑惑,仅仅只是 ADI 取的名字罢了。打个比方就是,ADI 拿一个叫做 LDR 的瓶子来装BOOT 数据,而这些数据归根到底,依然是我们在其他嵌入式处理器开发中所熟知的 BIN,HEX 等等,ADI 也无法别出心裁的整出一个独特的数据格式来。
21489 的这块板上,我们做了 NORFLASH 和 SPIFLASH 两种,下面也会对每一种 Flash 做详细的注解,如何来生成这两种 flash 可用的 LDR 文件,又如何来通过 AD-HP530ICE 仿真器去烧写相应的 LDR 文件到 FLASH 中,实现脱机。
Flash 编程和烧写前所需要做的准备工作
硬件准备
仿真器:AD-HP530ICE
开发板:ADSP-21489EVB
软件准备
Visual DSP++5.1.2
硬件链接
仿真器和开发板通过 JTAG 连接,开发板上电,仿真器上电。
软件链接
新建 21489 的 session,具体可参见前面文章中的详细说明,此处不再讲解。
NORFLASH 编程
此章将详细讲解如何使用 VDSP 软件来进行 NORFLASH 编程,生成 boot 用的 LDR 文件。我们以按键控制 LED 灯的程序来做例程讲解。
- 把工程拖到 VDSP 软件中来。
- 在工程名上按鼠标右键,选择“Project Options…”
- 根据芯片的实际版本,为工程选择一个芯片版本,将“Type”选为“Loader File”。我们现在用的 21489 都是 0.2 版,所以就选择 0.2。
- 按下图为生成的 LDR 文件选择格式,设置完成后点“确定”按钮,完成 LDR 文件的配置。ADSP21489_prom.dxe 文件位于 FlashDriver 文件夹里的 NORFLASH 文件夹下。
NORFLASH 生成 LDR,所以在 Boot Type 里选择 Parallel port;Format 我选择的是 Binary,一直用这个,没啥因为所以;Width 选择 8-bit,因为 Flash 就是 8bit 的。
Kernel file 这个就很关键了,必须要需要添加这个 kernel,这个 kernel 是 ADI 公司提供的,我只是把它单独拧出来放到我的 Flash Driver 文件夹里,方便调用。
- 选择“ ReBuild all“按钮全编译工程。
- 编译完成后,会看到生成文件提示。该文件默认生成地址为当前工程的 Debug 文件夹下。
烧写
- 选择 Tools 里的 Flash Programmer。特别注意,一定要链接好 session,才有此选项!
- 为 NorFlash 加载一个“.dxe”格式的驱动文件,这个文件在 “Flash Driver”文件夹下。
这个是 Flash 的烧写驱动,每一个型号的 Flash 都需要专门对应自己的驱动,ADI 提供了一个驱动源码,如果用户的 Flash 型号与原厂提供的这个不符,则需要对驱动进行修改。我们开发板使用的就是ADI原厂的这个Flash型号,所以就可以直接用这个Driver,不用做任何修改。在这里 OP 也建议大家都用原厂提供的这个型号,否则自己改 Flash烧写驱动,还是一件挺麻烦的事情。
- 找到“ ADSP21489_FlashDriver.dxe”文件。
- 按下图选择选项,然后点“ Data”后面的按钮,找到 ADSP21489_PBLED 工程下 Debug 文件夹下刚才生成的“ ADSP21489_PBLED.ldr”文件。
- 烧写过程中的读条,请静心等待。
- 完成烧写。
- 断开链接,完整 Flash 编程和烧写得工作。
-
将 BOOT 开关 SW2 和 SW3 分别拨到 OFF 和 ON,设置成 NORFLASH 启动
-
拔掉电源插头,重新上电,并打开电源开关,按下按键,相应的 LED 灯亮,验证完成。