• 資料介紹
    • 1、引言
    • 2、IAR flashloader 原理
    • 3、下載算法制作
    • 4、測試
    • 5、小結
  • 資料預覽
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

LAT1426 IAR flashloader 下載算法制作介紹

03/06 15:55
842
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

LAT1426 IAR flashloader 下載算法制作介紹

348.26 KB

1、引言

一般情況下,IDE 工具都自帶了芯片內(nèi)部 flash 的燒寫算法。而實際項目中往往會有外擴 flash 的需求,在調試或下載程序時,燒寫外部 flash 則需要額外的 flashloader 程序支持。本文簡要介紹如何在 IAR 工具中制作 flashloader 來燒寫外部 flash 的原理及實現(xiàn)。

2、IAR flashloader 原理

IAR 燒寫芯片 flash 過程,是由 C-SPY 調試器與 flashloader 來完成。Flashloader 是IAR 為 C-SPY 調試器開發(fā)的一個可執(zhí)行程序,運行在 RAM 中。在 IAR 調用調試器時需要先將 flashloader 下載到目標芯片的 RAM 中,再將要下載的文件加載到 RAM 緩存中,由 C-SPY 通過指令啟動 flashloader 程序,然后 flashloader會讀取編程數(shù)據(jù)并寫入到目標芯片中,完成目標芯片的擦除和寫入。

3、下載算法制作

在 IAR 安裝目錄中,flashloader 工程要使用的框架文件在以下目錄:Embedded Workbench 9.1armsrcflashloaderframework2其中,flash_loader.c, flash_loader.h, flash_loader_asm.s, flash_loader_extra.h 這四個文件是供 C-SPY 調用的,不用去修改這些文件內(nèi)容。只用修改 template 文件夾內(nèi)的flash_loader_ram.c,實現(xiàn)相應的 FlashInit, FlashWrite, FlashErase 函數(shù)即可。

在實際中,也可以直接使用 Embedded Workbench 9.1armsrcflashloaderST 目錄下已有的例程,比如 FlashSTM32H7xx_QSPI 目錄就是 STM32H7 板上實現(xiàn) QSPIflashloader 的例程。

這里選用 STM32H743_Nucleo 板,外接 W25Q128 的 norflash 來測試。首先創(chuàng)建測試工程,實現(xiàn) norflash 程序的讀、寫、擦除等基本操作,驗證通過后,封裝到xspi_norflash_api.c 文件中。

然后將 FlashSTM32H7xx_QSPI 目錄拷貝出來,替換并實現(xiàn) flash 初始化、擦除、寫的接口,最終生成.out 文件。

4、測試

在 CubeH7 例程中,選擇 ExamplesGPIOGPIO_EXTI 例程,并配置一些數(shù)據(jù)保存在外部 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 來進行燒寫內(nèi)部與外部 flash,最后完成燒寫測試。

5、小結

本文通過實例介紹了基于 STH32H743 Nucleo 板有關 IAR 外部 flashloader 的制作與使用方法。如果客戶需要用 IAR 燒寫外部 flash,可參考本文方法及例程。

資料預覽

相關推薦