0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何通过SFL为设备添加Flash编程支持

麦克泰技术 来源:麦克泰技术 2025-05-19 16:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

SEGGER Flash Loader(SFL)是J-Link设备支持套件(DSK)的一部分,通过SFL,用户可以为自己的新设备添加Flash编程支持。

支持的CPU架构

SEGGER Flash Loader(SFL)可用于以下CPU架构:

ARMv4/v5

ARM720T, ARM7TDMI, ARM7TDMI-S

ARM920T, ARM922T, ARM926EJ-S, ARM946E-S, ARM966E-S

• ARMv6-M

Cortex-M0, Cortex-M0+, Cortex-M1

• ARMv7-M

Cortex-M3, Cortex-M4, Cortex-M7

• ARMv8-M

Cortex-M23, Cortex-M33, Cortex-M55, Cortex-M85

• ARMv7-A

Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A12, Cortex-A15, Cortex-A17

• ARMv7-R

Cortex-R4, Cortex-R5, Cortex-R7, Cortex-R8

• ARMv8-R

Cortex-R52

RISC-V RV32

支持的Flash类型

SEGGER Flash Loader通过MCU对Flash进行编程,因此可以支持任何Flash(或其他非易失性存储器),适用于经由MCU存储器映射访问的Flash(内部Flash,外部QSPI NOR Flash,…)以及非存储器映射的Flash(外部I2C EEPROM,外部NAND Flash,…)。

对于非内存映射的Flash,必须在SFL中额外实现以下接口函数:

SEGGER_FL_CheckBlank ()

SEGGER_FL_Verify ()

SEGGER_FL_Read ()

SEGGER_FL_CalcCRC ()

接口函数概述

下表概述了SEGGER Flash Loader的必须的和可选的接口函数:

ca532c58-3202-11f0-afc8-92fbcf53809c.png

详细的API介绍可以参考:https://kb.segger.com/SEGGER_Flash_Loader?mtm_campaign=li&mtm_kwd=Flashloader#Entry_functions_overview

在J-Link软件中集成SFL

将生成的SFL二进制文件集成到J-Link软件中,具体操作实现可以参考:https://kb.segger.com/J-Link_Device_Support_Kit

堆栈的使用

J-Link为SEGGER Flash Loader保留512字节的堆栈空间。对于小RAM内存的设备,可以使用256字节。

段放置

对SFL代码放置涉及的RO代码段,RO数据段,RW数据段,J-Link软件有固定的布局分配。

段放置:

ca74b22e-3202-11f0-afc8-92fbcf53809c.png

J-Link DSK提供的参考算法和模板工程中已经实现了相应段的定位分配,用户无需修改。

故障排除

通常使用最新版本的模板项目, FlashPrg.c->Functions函数不包含访问SFR的代码,使用release配置构建flash loader,使用J-Link Commander执行flash下载。Flash下载应该在验证过程中报告一个错误。执行SEGGER_FL_Erase()并重试flash下载。J-Link Commander应该仍然报告验证失败,但相应的flash区域应该是空的。否则需检查SEGGER_FL_Erase()。

实现SEGGER_FL_Program()并重试flash下载测试。预期结果:测试报告正常->编程成功。如果没有,需检查SEGGER_FL_Program()代码。

PC在flash下载后反馈异常值,此错误可能的原因:

看门狗已使能,但未在flash loader函数中喂狗。这可能导致在RAMCode执行期间出现看门狗超时,从而触发重置。

• 未启用时钟相关的特殊功能寄存器/外设访问

• 访问了无效的内存区域

J-Link软件默认在开始flash编程之前先比较flash内容,以防flash的大部分内容已经与编程数据相同。SEGGER_FL_Prepare()代码必须实现(QSPI)引脚和(QSPI)控制器的配置,以便能够通过内存映射方式访问flash。可以通过将J-Link Commander执行命令(exec SetCompareMode 0)取消比较操作。开始flash下载后,J-Link Commander将报告一个验证错误,但此时应该可以通过内存映射方式访问flash,如果没有,需检查Init()代码。

新设备通常需要一个flash加载程序,通过J-Link DSK,用户可以方便的为自己的设备添加编程支持。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1691

    浏览量

    152716
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11127

    浏览量

    218589
  • 编程
    +关注

    关注

    88

    文章

    3696

    浏览量

    95617
  • SEGGER
    +关注

    关注

    0

    文章

    56

    浏览量

    14546

原文标题:如何通过SFL为设备添加Flash编程支持

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么通过vivado进行spi flash编程会失败?

    你好,我们使用SPI闪存(S25FL512S)作为ViTeX 7 FPGA的启动闪光灯。在我的例子中,我可以读取设备ID、内存大小等。当我尝试通过间接编程编程SPI
    发表于 10-25 07:00

    罗德施瓦茨-R&S SFL-T视频信号发生器SFL-T价格

    电视测试发射机系列中的R&S SFL-s是一种用于测试数字电视接收机和集成接收机模块以及通过地面和电缆来测试数字电视链路的完善的解决方案。该产品涵盖目前通行于全球的所有主要标准以及即将
    发表于 04-25 22:32

    Zynq设备支持使用SVF进行Flash编程怎么办

    你好,我想在Zynq组件上脱机创建svf文件。为此,我使用了documentug908-vivado-programming-debugging.pdf第8章。但是,在进程结束时,我有一个错误,上面写着“Zynq设备支持使用SVF进行
    发表于 06-10 09:56

    通过对stm32内部的flash的读写可以实现对stm32的编程操作

    一、Flash简介  通过对stm32内部的flash的读写可以实现对stm32的编程操作。  stm32的内置可编程
    发表于 08-05 07:56

    flash读写可实现对stm32的编程操作

    stm32——Flash读写一、Flash简介  通过对stm32内部的flash的读写可以实现对stm32的编程操作。  stm32的内置
    发表于 08-05 06:54

    HC32系列MCU的J-Flash编程支持

    J-Flash是一款独立的可通过J-Link对MCU的FLASH进行编程的软件,使用该工具可实现通过J-Link对MCU存储区进行擦除、
    发表于 10-14 09:55

    请问spc5 flash编程支持哪些设备列表?

    1.有没有详细信息,支持SPC5 flash编程器的设备?2.我可以使用普通的 ftdi USB 转 UART 转换器吗?
    发表于 12-06 07:20

    赛威科技推出离线式LED照明驱动IC SFL678和SFL688

    赛威科技(SiFirst Technology)继在离线式(AC/DC)中小功率LED照明领域推出SFL668和SFL669之后,近期又推出两款新的驱动IC。他们分别是SFL678和SFL
    发表于 08-25 11:13 2233次阅读

    赛威科技发布小功率LED照明驱动方案SFL628和SFL629

    赛威科技(SiFirst Technology)近期又推出两款适用于小功率LED照明领域的低成本驱动方案---SFL628和SFL629。 它们采用PSR架构,其中,SFL628驱动外部功率BJT,
    发表于 02-01 09:19 1491次阅读

    程序界面添加滑动条_《OpenCV3编程入门》书本配套源代码

    《OpenCV3编程入门》书本配套源代码:程序界面添加滑动条
    发表于 06-06 15:52 3次下载

    Google Chrome flash添加说明

    Google Chrome flash添加说明
    发表于 09-29 13:07 6次下载

    AN-946: 通过LIN—协议6进行Flash/EE存储器编程

    AN-946: 通过LIN—协议6进行Flash/EE存储器编程
    发表于 03-18 22:57 11次下载
    AN-946: <b class='flag-5'>通过</b>LIN—协议6进行<b class='flag-5'>Flash</b>/EE存储器<b class='flag-5'>编程</b>

    Flash编程的基础梳理

    众所周知,MCU的Flash保存着我们的程序,一般情况下我们在生产或者调试的时候是通过我们的烧录器或者仿真器对MCU的Flash进行编程。在这个过程中我们无需关系
    的头像 发表于 11-01 09:49 1845次阅读

    用于嵌入式单电源 FLASH 设备的 V850 自编程

    用于嵌入式单电源 FLASH 设备的 V850 自编程
    发表于 05-04 19:04 0次下载
    用于嵌入式单电源 <b class='flag-5'>FLASH</b> <b class='flag-5'>设备</b>的 V850 自<b class='flag-5'>编程</b>库

    Nor Flash编程和擦除操作实践与指南

    闪存编程也不涉及将数据写入存储单元,确保准确编程,Nor Flash 支持字节级编程,允许写入
    的头像 发表于 12-05 14:03 3422次阅读