CH32V208Flash问题

你好

    我现在想用CH32V208的慢速flash区存储一些设备配置信息,后期量产的时候这个区域的固件和快速flash区的程序固件可以分别生成吗?如果可以分别生成烧录的时候是怎么操作的,我参考了一下BLE的官方工程,发现BLE的库是存储在慢速flash的区的但是没看懂BLE库的hex是如何生成和烧录的,能否给些这方面的参考资料,我的邮箱是:个人信息保护,已隐藏

谢谢!

您好,可以分别生成,具体操作方法我这边咨询了解一下会发至你的邮箱。关于在非零等待区域存储一些信息,可以参考一下下帖说明。后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通。

https://www.cnblogs.com/liaigu/p/17330342.html





可以拿riscv-none-eabi-objcopy去处理,在ld里面先分段,把nzw的分到其他段,然后分割一下


我这边的参考是搞了块虚拟的外置flash用cmake后处理分离的,可以供你参考一下


COMMAND ${CMAKE_OBJCOPY} -Oihex --only-section=.extflash --change-section-address .extflash=0 ${PROJECT_NAME}.elf ${FLASH_FILE}

COMMAND ${CMAKE_OBJCOPY} -Iihex -Obinary ${FLASH_FILE} ${FLASH_BIN}

COMMAND ${CMAKE_OBJCOPY} -Oihex --remove-section=.extflash ${PROJECT_NAME}.elf ${HEX_FILE}


EXTFLASH(r) : ORIGIN = 0x90000000, LENGTH = 2M

SECTIONS {

? ? .extflash : {

? ? ? ? . = ALIGN(4);

? ? ? ? PROVIDE( _extflash_ld_addr = . );

? ? ? ? *(.extflash);

? ? ? ? *(.extflash.*);

? ? ? ? . = ALIGN(4);

? ? } > EXTFLASH

}


#define LV_ATTRIBUTE_LARGE_CONST_EXT_FLASH __attribute__((section(".extflash")))


static LV_ATTRIBUTE_LARGE_CONST_EXT_FLASH const uint8_t glyph_bitmap[] = ...


这样glyph_bitmap就会被放在FLASH_BIN文件里面了,HEX_FILE里面也不会有glyph_bitmap,访问glyph_bitmap也能拿到链接进固件的地址


只有登录才能回复,可以选择微信账号登录