CH32V307啟動文件data段與bss段的拷貝與Flash的配置問題

最近有個疑問,CH32V307系列的用戶程序下載到Flash的零等待區(qū),有種說法是存在同樣大小的RAM,用于分割,一部分做RAM,一部分做Flash,F(xiàn)lash這部分代碼廠商程序會自動將其上載至RAM。

那么用戶程序相當(dāng)于就燒錄在RAM中了,讀寫速度已經(jīng)可以了,為什么在啟動文件中還要將data段和bss段拷貝至作為RAM的區(qū)域呢? 這樣不是浪費空間嗎,這塊很很不理解,官方大大可以解釋一下嗎


2:
	/*?Load?data?section?from?flash?to?RAM?*/
	la?a0,?_data_lma
	la?a1,?_data_vma
	la?a2,?_edata
	bgeu?a1,?a2,?2f
1:
	lw?t0,?(a0)
	sw?t0,?(a1)
	addi?a0,?a0,?4
	addi?a1,?a1,?4
	bltu?a1,?a2,?1b
2:
	/*?Clear?bss?section?*/
	la?a0,?_sbss
	la?a1,?_ebss
	bgeu?a0,?a1,?2f
1:
	sw?zero,?(a0)
	addi?a0,?a0,?4
	bltu?a0,?a1,?1b


您好,RAM掉電數(shù)據(jù)會丟失,程序還是放在FLASH中的,只是上電運(yùn)行時會將程序搬運(yùn)到RAM,掉電后RAM中就沒有數(shù)據(jù)了。


我精簡一下我的問題,就是Flash整體會上載到ram,為什么啟動文件中還做了一次data和bss的拷貝


您好,你可以這么理解,以64+256的配置為例,只有64K那塊區(qū)域是真正的RAM,那256K可以理解為運(yùn)行速度較快的FLASH,你需要將data段搬運(yùn)到真正的RAM區(qū)域即那64K的RAM區(qū)域里面。后面溝通可通過郵箱(lzs@wch.cn)和我溝通


你好,請問程序dubug時它反復(fù)在下面這段代碼里執(zhí)行是怎么回事

	lw?t0,?(a0)
	sw?t0,?(a1)
	addi?a0,?a0,?4
	addi?a1,?a1,?4
	bltu?a1,?a2,?1b



您好,此處就是匯編代碼在循環(huán)執(zhí)行搬運(yùn)。搬運(yùn)結(jié)束就會跳出。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频