[其他] 使用Jflash给华大半导体的MCU烧录程序

[复制链接]
2177|8
 楼主| 铁血丹心LLLL 发表于 2021-12-31 15:15 | 显示全部楼层 |阅读模式
前言
因 ST 单片机的疯狂涨价,国产单片机迎来了一个非常好的发展契机,项目上的 STM32F103VET6 因为缺货,正式将硬件方案修改为华大半导体的MCU(HC32F460PETB),程序移植好了之后,手里一直用的是JLINK调试,使用JFLASH下载程序,但是官方的JFLASH是不支持华大的MCU的,我们通过华大官方提供的算法文件,并且在JFLASH的设备列表中添加华大的MCU。

 楼主| 铁血丹心LLLL 发表于 2021-12-31 15:17 | 显示全部楼层
JFLASH添加华大MCU的方法
将华大半导体官方提供的算法文件复制到JLink的软件按键目录下

D:\Program Files (x86)\SEGGER\JLink\Devices
5914861ceae5b20bb4.png
 楼主| 铁血丹心LLLL 发表于 2021-12-31 15:17 | 显示全部楼层
先复制 Jlink 的设备列表文件 JLinkDevices.xml ,并重命名 JLinkDevices.xml.bak 作为备份,然后打开 JLinkDevices.xml 文件,在文件的最后面增加华大MCU的列表,具体如下:

  1.   <!--                 -->
  2.   <!-- HDSC (HC32) -->
  3.   <!--                 -->
  4.   <Device>
  5.   <ChipInfo Vendor="HDSC" Name="HC32L176"  WorkRAMAddr="0x20000000" WorkRAMSize="0x2000" Core="JLINK_CORE_CORTEX_M0"/>
  6.   <FlashBankInfo Name="Flash_128K" BaseAddr="0x0" MaxSize="0x20000" Loader="Devices/HDSC/FlashHC32L17X_128K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  7.   </Device>
  8.   <Device>
  9.     <ChipInfo Vendor="HDSC" Name="HC32L136"  WorkRAMAddr="0x20000000" WorkRAMSize="0x2000" Core="JLINK_CORE_CORTEX_M0"/>
  10.     <FlashBankInfo Name="Flash_64K" BaseAddr="0x0" MaxSize="0x10000" Loader="Devices/HDSC/FlashHC32L13X_64K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  11.   </Device>
  12.   <Device>
  13.     <ChipInfo Vendor="HDSC" Name="HC32L130"  WorkRAMAddr="0x20000000" WorkRAMSize="0x2000" Core="JLINK_CORE_CORTEX_M0"/>
  14.     <FlashBankInfo Name="Flash_64K" BaseAddr="0x0" MaxSize="0x10000" Loader="Devices/HDSC/FlashHC32L13X_64K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  15.   </Device>
  16.   <Device>
  17.     <ChipInfo Vendor="HDSC" Name="HC32F030"  WorkRAMAddr="0x20000000" WorkRAMSize="0x2000" Core="JLINK_CORE_CORTEX_M0"/>
  18.     <FlashBankInfo Name="Flash_64K" BaseAddr="0x0" MaxSize="0x10000" Loader="Devices/HDSC/FlashHC32F030_64K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  19.   </Device>  
  20.   <Device>
  21.     <ChipInfo Vendor="HDSC" Name="HC32L110x4"  WorkRAMAddr="0x20000000" WorkRAMSize="0x800" Core="JLINK_CORE_CORTEX_M0"/>
  22.     <FlashBankInfo Name="Flash_16K" BaseAddr="0x0" MaxSize="0x4000" Loader="Devices/HDSC/FlashHC32L110_16K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  23.   </Device>  
  24.   <Device>
  25.     <ChipInfo Vendor="HDSC" Name="HC32L110x6"  WorkRAMAddr="0x20000000" WorkRAMSize="0x1000" Core="JLINK_CORE_CORTEX_M0"/>
  26.     <FlashBankInfo Name="Flash_32K" BaseAddr="0x0" MaxSize="0x8000" Loader="Devices/HDSC/FlashHC32L110_32K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  27.   </Device>
  28.   <Device>
  29.     <ChipInfo Vendor="HDSC" Name="HC32F003"  WorkRAMAddr="0x20000000" WorkRAMSize="0x800" Core="JLINK_CORE_CORTEX_M0"/>
  30.     <FlashBankInfo Name="Flash_16K" BaseAddr="0x0" MaxSize="0x4000" Loader="Devices/HDSC/FlashHC32F003_16K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  31.   </Device>  
  32.   <Device>
  33.     <ChipInfo Vendor="HDSC" Name="HC32F005"  WorkRAMAddr="0x20000000" WorkRAMSize="0x1000" Core="JLINK_CORE_CORTEX_M0"/>
  34.     <FlashBankInfo Name="Flash_32K" BaseAddr="0x0" MaxSize="0x8000" Loader="Devices/HDSC/FlashHC32F005_32K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  35.   </Device>
  36.   <Device>
  37.     <ChipInfo Vendor="HDSC" Name="HC32L15"  WorkRAMAddr="0x20000000" WorkRAMSize="0x1800" Core="JLINK_CORE_CORTEX_M0"/>
  38.     <FlashBankInfo Name="Flash_128K" BaseAddr="0x0" MaxSize="0x20000" Loader="Devices/HDSC/HC32L15.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  39.   </Device>
  40.   <Device>
  41.     <ChipInfo Vendor="HDSC" Name="HC32F_M14"  WorkRAMAddr="0x20000000" WorkRAMSize="0x2000" Core="JLINK_CORE_CORTEX_M0"/>
  42.     <FlashBankInfo Name="Flash_128K" BaseAddr="0x0" MaxSize="0x20000" Loader="Devices/HDSC/HC32F_M14.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  43.   </Device>
  44.   <Device>
  45.     <ChipInfo Vendor="HDSC" Name="HC32F46x"  WorkRAMAddr="0x20000000" WorkRAMSize="0x10000" Core="JLINK_CORE_CORTEX_M4"/>
  46.     <FlashBankInfo Name="Flash_512K" BaseAddr="0x0" MaxSize="0x80000" Loader="Devices/HDSC/HC32F46x.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  47.   </Device>
  48.     <Device>
  49.     <ChipInfo Vendor="HDSC" Name="HC32M423"  WorkRAMAddr="0x20000000" WorkRAMSize="0x2000" Core="JLINK_CORE_CORTEX_M4"/>
  50.     <FlashBankInfo Name="Flash_512K" BaseAddr="0x0" MaxSize="0x20000" Loader="Devices/HDSC/HC32M423.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  51.   </Device>
  52.   <Device>
  53.     <ChipInfo Vendor="HDSC" Name="HC32L19x"  WorkRAMAddr="0x20000000" WorkRAMSize="0x8000" Core="JLINK_CORE_CORTEX_M0"/>
  54.     <FlashBankInfo Name="Flash_256K" BaseAddr="0x0" MaxSize="0x40000" Loader="Devices/HDSC/FlashHC32L19X_256K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  55.   </Device>
  56.   <Device>
  57.     <ChipInfo Vendor="HDSC" Name="HC32F19x"  WorkRAMAddr="0x20000000" WorkRAMSize="0x8000" Core="JLINK_CORE_CORTEX_M0"/>
  58.     <FlashBankInfo Name="Flash_256K" BaseAddr="0x0" MaxSize="0x40000" Loader="Devices/HDSC/FlashHC32F19X_256K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  59.   </Device>
  60.   <Device>
  61.     <ChipInfo Vendor="HDSC" Name="HC32F17x"  WorkRAMAddr="0x20000000" WorkRAMSize="0x4000" Core="JLINK_CORE_CORTEX_M0"/>
  62.     <FlashBankInfo Name="Flash_128K" BaseAddr="0x0" MaxSize="0x20000" Loader="Devices/HDSC/FlashHC32F17X_128K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  63.   </Device>
  64.   <Device>
  65.     <ChipInfo Vendor="HDSC" Name="HC32L17x"  WorkRAMAddr="0x20000000" WorkRAMSize="0x4000" Core="JLINK_CORE_CORTEX_M0"/>
  66.     <FlashBankInfo Name="Flash_128K" BaseAddr="0x0" MaxSize="0x20000" Loader="Devices/HDSC/FlashHC32L17X_128K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  67.   </Device>
  68.   <Device>
  69.     <ChipInfo Vendor="HDSC" Name="HC32F072"  WorkRAMAddr="0x20000000" WorkRAMSize="0x4000" Core="JLINK_CORE_CORTEX_M0"/>
  70.     <FlashBankInfo Name="Flash_128K" BaseAddr="0x0" MaxSize="0x20000" Loader="Devices/HDSC/FlashHC32F072_128K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  71.   </Device>
  72.   <Device>
  73.     <ChipInfo Vendor="HDSC" Name="HC32L07X"  WorkRAMAddr="0x20000000" WorkRAMSize="0x4000" Core="JLINK_CORE_CORTEX_M0"/>
  74.     <FlashBankInfo Name="Flash_128K" BaseAddr="0x0" MaxSize="0x20000" Loader="Devices/HDSC/FlashHC32L07X_128K.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  75.   </Device>
  76.   <Device>
  77.     <ChipInfo Vendor="HDSC" Name="HC32F120"  WorkRAMAddr="0x20000000" WorkRAMSize="0x1000" Core="JLINK_CORE_CORTEX_M0"/>
  78.     <FlashBankInfo Name="Flash_64K" BaseAddr="0x0" MaxSize="0x10000" Loader="Devices/HDSC/HC32F120.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  79.   </Device>
  80.   <Device>
  81.     <ChipInfo Vendor="HDSC" Name="HC32M120"  WorkRAMAddr="0x20000000" WorkRAMSize="0x1000" Core="JLINK_CORE_CORTEX_M0"/>
  82.     <FlashBankInfo Name="Flash_32K" BaseAddr="0x0" MaxSize="0x8000" Loader="Devices/HDSC/HC32M120.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" AlwaysPresent="1"/>
  83.   </Device>
 楼主| 铁血丹心LLLL 发表于 2021-12-31 15:19 | 显示全部楼层
 楼主| 铁血丹心LLLL 发表于 2021-12-31 15:20 | 显示全部楼层
 楼主| 铁血丹心LLLL 发表于 2021-12-31 15:20 | 显示全部楼层
本帖最后由 铁血丹心LLLL 于 2021-12-31 15:22 编辑

JFlash 中创建华大MCU的工程 2581661ceaf86cfe86.png

工程创建成功,就可以正常加载bin文件烧录了.






木青峰 发表于 2021-12-31 15:47 | 显示全部楼层
学习了
Cinderella12 发表于 2022-3-14 18:24 | 显示全部楼层
可以把这个算法发给我一下么,谢谢~
classroom 发表于 2022-3-15 14:41 | 显示全部楼层
在ST价格疯涨还不好拿货的情况下国产单片机的新机遇真的来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

76

主题

543

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部