OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4653|回复: 2

stm32f103RCT6使用CJSON死机

[复制链接]

34

主题

76

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
金钱
489
注册时间
2015-2-5
在线时间
113 小时
发表于 2022-8-29 09:14:48 | 显示全部楼层 |阅读模式
1金钱
在使用CJSON库的时候调用cJSON_Parse(jsondata); 时候程序会死机    堆栈:Heap_Size      EQU     0x1000    也是用了内存管理 借用原子哥的malloc程序    希望用过的朋友 帮忙指引一下。
void CParsejson(void *data)
{
    u8 i=0,*jsonstrx;
   u8 jsondata[250];
   u8 status;
    cJSON * root, *itemName,*itemAge,*order;
    jsonstrx=strstr((const char*)data,(const char*)"{");
    if(jsonstrx)
    {
         while(1)
        {
            if(jsonstrx[i]==0x0D)
            {   
                jsondata[i-1]=0;
                i=0;
                break;
            }
            jsondata[i]=jsonstrx[i];
            i++;
        }
    }
    root = cJSON_Parse(jsondata);   
    order = cJSON_GetObjectItem(root, "status");
    if (order)
    {
        status=order->valueint;
      LREALY(1);
    }
    memset(jsondata, 0, 250);
    cJSON_Delete(root);  
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

322

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1836
金钱
1836
注册时间
2014-12-4
在线时间
717 小时
发表于 2022-8-29 14:50:42 | 显示全部楼层
回复

使用道具 举报

5

主题

134

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1389
金钱
1389
注册时间
2019-5-29
在线时间
163 小时
发表于 2022-8-30 09:24:51 | 显示全部楼层
内存太小,用CJSON需要增加堆栈,但是有些时候还是运行不起来,可以用JSMN更轻量化,也很简单
偷偷摸鱼
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 06:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表