你好
????我現(xiàn)在想用CH32V208的慢速flash區(qū)存儲一些設(shè)備配置信息,后期量產(chǎn)的時候這個區(qū)域的固件和快速flash區(qū)的程序固件可以分別生成嗎?如果可以分別生成燒錄的時候是怎么操作的,我參考了一下BLE的官方工程,發(fā)現(xiàn)BLE的庫是存儲在慢速flash的區(qū)的但是沒看懂BLE庫的hex是如何生成和燒錄的,能否給些這方面的參考資料,我的郵箱是:個人信息保護,已隱藏
謝謝!
你好
????我現(xiàn)在想用CH32V208的慢速flash區(qū)存儲一些設(shè)備配置信息,后期量產(chǎn)的時候這個區(qū)域的固件和快速flash區(qū)的程序固件可以分別生成嗎?如果可以分別生成燒錄的時候是怎么操作的,我參考了一下BLE的官方工程,發(fā)現(xiàn)BLE的庫是存儲在慢速flash的區(qū)的但是沒看懂BLE庫的hex是如何生成和燒錄的,能否給些這方面的參考資料,我的郵箱是:個人信息保護,已隱藏
謝謝!
您好,可以分別生成,具體操作方法我這邊咨詢了解一下會發(fā)至你的郵箱。關(guān)于在非零等待區(qū)域存儲一些信息,可以參考一下下帖說明。后續(xù)若有問題,可通過郵箱(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里面也不會有g(shù)lyph_bitmap,訪問glyph_bitmap也能拿到鏈接進固件的地址