硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1076|回复: 3
收起左侧

[J-Link] STM32H750下载算法,内部2M

[复制链接]

2

主题

7

回帖

13

积分

新手上路

积分
13
发表于 2024-8-17 13:18:43 | 显示全部楼层 |阅读模式

使用SEGGER Open Flashloader,制作适用于J-Link的H750内部2M Flash算法。

引言:
这个下载算法是为了配合VS Code + CMake开发使用的。个人觉得MDK添加文件极其麻烦,又用不惯Eclipse的CubeIDE,正好CubeMX更新了生成CMake工程,于是搞出了CubeMX生成,VS Code编译,J-Link下载,Ozone调试的方式。有时间的话整理成文章。

原理:
该下载算法相当于重写了一遍,与内置的STM32H750XB不同,相当于另一个设备。这时可以同时在J-Link的设备中挂在内部Flash与外部Flash。使用这种方法可以方便的使用内外部Flash混合编程的方式。

说明:
新版的J-Link驱动只能在用户目录下添加新设备(详见JLinkDevices folder),具体到Windows就是C:\Users\<USER>\AppData\Roaming\SEGGER\JLinkDevices。其中,JLinkDevices文件夹如果没有,需要手动创建。
J-Link驱动会遍历查找该目录下的xml文件,最大深度有4层(没测过)。随便添加一个xml文件,里面填入如下内容:
[XML] 纯文本查看 复制代码
<Database>
  <Device>
    <ChipInfo Vendor="ST" Name="STM32H750xx" WorkRAMAddr="0x24000000" WorkRAMSize="0x80000" Core="JLINK_CORE_CORTEX_M7" />
    <!-- 2 MB internal code flash bank with 1 loader -->
    <FlashBankInfo Name="Internal flash 2MB" BaseAddr="0x08000000" AlwaysPresent="1" >
      <LoaderInfo Name="Default" MaxSize="0x200000" Loader="H750xx/STM32H750xx_2M.elf" LoaderType="FLASH_ALGO_TYPE_OPEN" /> 
    </FlashBankInfo>
    <!-- Max. 16 MB external QSPI flash with 1 loaders. Real size + sectorization is determined by loader at runtime -->
    <FlashBankInfo Name="Exnternal flash" BaseAddr="0x90000000" AlwaysPresent="0" >
      <LoaderInfo Name="External flash W25Q64JV" MaxSize="0x00800000" Loader="H750xx/H750xx W25Q64JV.elf" LoaderType="FLASH_ALGO_TYPE_OPEN" />
    </FlashBankInfo>
  </Device>
</Database>


其中,第一个FlashBankInfo 中的就是内部2M算法,第二个是外部Flash下载算法,可以替换为自己的外部Flash算法。

注意:
  • ChipInfo 中的Vendor与Name可以随便写,不过Name是J-Link识别的名称,改了的话下载时要选对。
  • FlashBankInfo 中的就是Flash信息,第一个是内部Flash,两个Name与JFlash识别的名称有关;MaxSize要与实际大小相符,否则会错误,此处是2M的hex码;Loader里面要填相对于xml文件的相对路径,不然会提示找不到;AlwaysPresent是JFlash识别的默认开还是默认关,比如如上述的设置在JFlash中就需要手动打开外部Flash,不然下到外部会报错(Commander下载不用管)
  • 第二个FlashBankInfo 也同上,测试过FLM文件也可以,stlder没有试。


最后给一个目录结构示例:
[C] 纯文本查看 复制代码
JlinkDevices
|-- Devices.xml
`-- H750xx
    |-- H750xx W25Q64JV.elf
    `-- STM32H750xx_2M.elf



参考链接:

SEGGER Open Flashloader 模板 - 开发环境 - 硬汉嵌入式论坛 - Powered by Discuz! (armbbs.cn)

STM32H750xx_2M.zip

606.84 KB, 下载次数: 18

评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

2

主题

7

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2024-8-17 13:22:48 | 显示全部楼层
本帖最后由 SourFish 于 2024-8-17 13:24 编辑

对了,有一点忘记说了,我手边只有H750XB,因此也只测过XB。不过这只涉及内部Flash擦写,问题应该不大,有问题可以留言。


以及,该下载算法使用内部HSI,时钟设置为了480MHz。不知道750有没有400M的版本,如果有,那是用不了这个算法的。

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115518
QQ
发表于 2024-8-18 10:43:30 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2024-8-21 13:53:36 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-29 15:31 , Processed in 0.245520 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表