• 资料介绍
    • 1、引言
    • 2、IAR flashloader 原理
    • 3、下载算法制作
    • 4、测试
    • 5、小结
  • 资料预览
  • 相关推荐
申请入驻 产业图谱

LAT1426 IAR flashloader 下载算法制作介绍

03/06 15:55
778
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1426 IAR flashloader 下载算法制作介绍

348.26 KB

1、引言

一般情况下,IDE 工具都自带了芯片内部 flash 的烧写算法。而实际项目中往往会有外扩 flash 的需求,在调试或下载程序时,烧写外部 flash 则需要额外的 flashloader 程序支持。本文简要介绍如何在 IAR 工具中制作 flashloader 来烧写外部 flash 的原理及实现。

2、IAR flashloader 原理

IAR 烧写芯片 flash 过程,是由 C-SPY 调试器与 flashloader 来完成。Flashloader 是IAR 为 C-SPY 调试器开发的一个可执行程序,运行在 RAM 中。在 IAR 调用调试器时需要先将 flashloader 下载到目标芯片的 RAM 中,再将要下载的文件加载到 RAM 缓存中,由 C-SPY 通过指令启动 flashloader 程序,然后 flashloader会读取编程数据并写入到目标芯片中,完成目标芯片的擦除和写入。

3、下载算法制作

在 IAR 安装目录中,flashloader 工程要使用的框架文件在以下目录:Embedded Workbench 9.1armsrcflashloaderframework2其中,flash_loader.c, flash_loader.h, flash_loader_asm.s, flash_loader_extra.h 这四个文件是供 C-SPY 调用的,不用去修改这些文件内容。只用修改 template 文件夹内的flash_loader_ram.c,实现相应的 FlashInit, FlashWrite, FlashErase 函数即可。

在实际中,也可以直接使用 Embedded Workbench 9.1armsrcflashloaderST 目录下已有的例程,比如 FlashSTM32H7xx_QSPI 目录就是 STM32H7 板上实现 QSPIflashloader 的例程。

这里选用 STM32H743_Nucleo 板,外接 W25Q128 的 norflash 来测试。首先创建测试工程,实现 norflash 程序的读、写、擦除等基本操作,验证通过后,封装到xspi_norflash_api.c 文件中。

然后将 FlashSTM32H7xx_QSPI 目录拷贝出来,替换并实现 flash 初始化、擦除、写的接口,最终生成.out 文件。

4、测试

在 CubeH7 例程中,选择 ExamplesGPIOGPIO_EXTI 例程,并配置一些数据保存在外部 flash 中。若测试本文附件 GPIO_EXTI-Test-IAR-flashloader.7z,请将此文件解压到 STM32Cube_FW_H7_V1.11.1ProjectsNUCLEO-H743ZIExamplesGPIO目录进行测试。编辑.board 及.flash 文件,将这些文件保存到 GPIO_EXTI 例程的 EWARM 目录下,并配置 IAR 工程属性,在 Debugger – Download 下,勾选 Use flash loader(s)与Override default .board file,配置 IAR 使用 STM32H743-Nucleo_QSPI.board 来进行烧写内部与外部 flash,最后完成烧写测试。

5、小结

本文通过实例介绍了基于 STH32H743 Nucleo 板有关 IAR 外部 flashloader 的制作与使用方法。如果客户需要用 IAR 烧写外部 flash,可参考本文方法及例程。

资料预览

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!