计算tf卡的剩余和已用内存

①剩余内存算法

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);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值