最近有個疑問,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