①剩余内存算法
static int text_tf_space_update(){
static char fsize_buf[32];
static char tsize_buf[32];
int err = 0;
static u8 buf[64];
u32 cur_space;
struct vfs_partition *vfs;
err = fget_free_space(CONFIG_ROOT_PATH, &cur_space);
if(err)
{
printf("tonker >>> %s,%d\r\n",__func__,__LINE__);
sprintf(buf,"%s","0.00MB|0.0GB");
}
else
{
printf("tonker >>> %s,%d\r\n",__func__,__LINE__);
vfs = fget_partition(CONFIG_ROOT_PATH);
printf("vfs->total_size=%d\n", vfs->total_size);
printf("cur_space=%d\n", cur_space);
u32 size_high = vfs->total_size/(1024*1024);
u32 size_low = vfs->total_size*100/(1024*1024)%100;
memset(tsize_buf, 0, 32);
sprintf(tsize_buf, "%d.%dGB", size_high, size_low/10);
printf("LAYOUT_MN_TOTAL_TXT = %s\n", tsize_buf);
memset(fsize_buf, 0, 32);
if(cur_space < 1024*1024) // > 100M
{
if(cur_space <= 128) // < 0.2 set to 0
cur_space = 0;
size_high = cur_space/(1024);
size_low = cur_space*100/1024%100;
if(size_low/10 == 0){
sprintf(fsize_buf, "%d.0%dMB", size_high, size_low/10);
}else{
sprintf(fsize_buf, "%d.%dMB", size_high, size_low/10);
}
}
else
{
size_high = cur_space/(1024*1024);
size_low = cur_space*100/(1024*1024)%100;
if(size_low/10 == 0){
sprintf(fsize_buf, "%d.0%dGB", size_high, size_low/10);
}else{
sprintf(fsize_buf, "%d.%dGB", size_high, size_low/10);
}
}
sprintf(buf,"%s| %s",fsize_buf,tsize_buf);
}
ui_text_set_str_by_id(TEXT_MEMORYSIZE, "ascii", buf);
ui_show(TEXT_MEMORYSIZE);
}
②已用内存算法
static int text_tf_space_update(){
static char fsize_buf[32];
static char tsize_buf[32];
int err = 0;
static u8 buf[64];
u32 cur_space;
u32 use_space;
struct vfs_partition *vfs;
err = fget_free_space(CONFIG_ROOT_PATH, &cur_space);
if(err)
{
printf("tonker >>> %s,%d\r\n",__func__,__LINE__);
sprintf(buf,"%s","0.00MB|0.0GB");
}
else
{
printf("tonker >>> %s,%d\r\n",__func__,__LINE__);
vfs = fget_partition(CONFIG_ROOT_PATH);
printf("vfs->total_size=%d\n", vfs->total_size);
printf("cur_space=%d\n", cur_space);
u32 size_high = vfs->total_size/(1024*1024);
u32 size_low = vfs->total_size*100/(1024*1024)%100;
memset(tsize_buf, 0, 32);
sprintf(tsize_buf, "%d.%dGB", size_high, size_low/10);
printf("LAYOUT_MN_TOTAL_TXT = %s\n", tsize_buf);
memset(fsize_buf, 0, 32);
if(cur_space < 1024*1024) // > 100M
{
if(cur_space <= 128) // < 0.2 set to 0
cur_space = 0;
use_space = vfs->total_size - cur_space;
size_high = use_space/(1024);
size_low = use_space*100/1024%100;
if(size_low/10 == 0){
sprintf(fsize_buf, "%d.%dMB", size_high, size_low/10);
}else{
sprintf(fsize_buf, "%d.%dMB", size_high, size_low/10);
}
}
else
{
use_space = vfs->total_size - cur_space;
size_high = use_space/(1024*1024);
size_low = use_space*100/(1024*1024)%100;
if(size_low/10 == 0){
sprintf(fsize_buf, "%d.%dGB", size_high, size_low/10);
}else{
sprintf(fsize_buf, "%d.%dGB", size_high, size_low/10);
}
}
sprintf(buf,"%s/%s",fsize_buf,tsize_buf);
}
ui_text_set_str_by_id(TEXT_MEMORYSIZE, "ascii", buf);
ui_show(TEXT_MEMORYSIZE);
}