关于FR800x os_get_free_heap_size
-
uint32_t er_zi_limit = (uint32_t)&Image$$ER_ZI$$Limit; uint32_t heap_base = (uint32_t)&Image$$RAM_CHECK$$Base; uint32_t free_space = heap_base - er_zi_limit; printf("%s os_get_free_heap_size = %d (~%dKB)\r\n",__FUNCTION__,os_get_free_heap_size(),os_get_free_heap_size()/1024); printf("Sct config Heap Base[%X] size = %d (~%dKB)\r\n", heap_base-1, free_space, free_space/1024); printf("%-20s 0x%08X %-12u %-12u\r\n", "ER_ZI", (uint32_t)&Image$$ER_ZI$$Base, (uint32_t)&Image$$ER_ZI$$Length, ((uint32_t)&Image$$HEAP_KE$$Base - (uint32_t)&Image$$ER_ZI$$Base)); printf("%-20s 0x%08X %-12u %-12u\r\n", "HEAP_KE", (uint32_t)&Image$$HEAP_KE$$Base, (uint32_t)&Image$$HEAP_KE$$Length, (0x1100C000 - (uint32_t)&Image$$HEAP_KE$$Base));17:24:21<-[S49]: proj_init os_get_free_heap_size = 26676 (~26KB)
17:24:21<-[S53]: Sct config Heap Base[1100BFFF] size = 27980 (~27KB)17:24:21<-[S63]: Region Name Base Addr Size (Bytes) Span (Bytes)
17:24:21<-[S63]: ER_ZI 0x110052B4 0 6860
17:24:21<-[S63]: HEAP_KE 0x11006D80 4 21120请问SDK中os_get_free_heap_size 的大小,是与(uint32_t)&Image$$ER_ZI$$Limit 关联还是 (uint32_t)&Image$$HEAP_KE$$Base 关联? 按照打印出来的数据,我的理解是最大不超过21120 ,但是os_get_free_heap_size = 26676 ,是否包含ER_ZI的空间了,还是我的理解有误?