搜索
bottom↓
回复: 11

64KRam的STM32f103移植CJSON内存需要很大?只是C到JSON转换!

[复制链接]

出0入4汤圆

发表于 2018-11-15 13:08:37 | 显示全部楼层 |阅读模式
64KRam的STM32f103移植CJSON内存需要很大?只是C到JSON转换! 项目中只是单向的把结构体打包成Cjsin格式发送到远端服务器,反向解析不需要。  数据量大约30个u16型变量

希望用过Cjson的的朋友评估下,另外是否cjson也可以裁剪,只使用c--->Json这部分。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2018-11-15 13:23:04 | 显示全部楼层
如果是固定的json结构就自己写个了,不会占用多少空间的。

出0入0汤圆

发表于 2018-11-15 13:47:41 | 显示全部楼层
二楼说的对,如果是固定的格式,搞个字符串,把中间的值替换下就行了,不需要cjson。 cjson对于单片机来说比较吃内存,我曾经在项目中用过,一条命令最大可以吃20K内存,跑了rtos,有malloc  free机制。

出0入90汤圆

发表于 2018-11-15 14:33:16 | 显示全部楼层
不需要那么大的内存的。但是你的内存一定要能够申请,释放。一般有1-20KB就足矣。随便这么用都OK。不释放的话,那就几下子就挂掉了。
我现在程序里面都是JSON的。

出0入0汤圆

发表于 2018-11-15 19:01:22 来自手机 | 显示全部楼层
mjson 了解一下

出0入0汤圆

发表于 2018-11-15 23:02:33 | 显示全部楼层
数据较为固定的,搞个字符串发出去,不到1k,亲测很好用。

出0入0汤圆

发表于 2018-11-16 09:50:22 | 显示全部楼层
最近也在用cjson,感觉挺爽的,记得及时释放内存。

出10入18汤圆

发表于 2018-11-16 09:53:37 | 显示全部楼层
64K足够了,我用STM32L151RB都跑着没问题,注意内存分配,用完及时释放。特别是cjson内部申请的,有的也需要你手动释放。

出0入0汤圆

发表于 2018-11-16 10:01:29 | 显示全部楼层
64K 妥妥的够。 我的48K freertos 2个分别模块与上位机 下位机通讯,都要调制解调 json。 都没问题。  任务的栈要开够,不然容易死机,你裸奔的话,也一样要配置栈大一点 。 通讯用的倒问题不大,只要记得free掉。

出0入0汤圆

发表于 2018-11-16 10:52:42 | 显示全部楼层
我8K RAM用着也没事.....放心吧.....
Stack_Size      EQU     0x00000400

出0入8汤圆

发表于 2018-11-16 15:37:17 | 显示全部楼层
这用不了几个内存。自己写一下就行了。编码不复杂。

出0入0汤圆

发表于 2018-11-16 17:19:43 | 显示全部楼层
不用那么大吧,我用的简单的拼凑。
2、查询设备设置的全部电话号码
平台发送:
system_alarm
{
"ReqType":"GWS1N",       
  "Status":"1",        (主机当前状态。解释:1表示布防,2表示撤防,3表示在家布防,4表示报警)
  "Numbering":"123456#",        (用户可以修改见后面附件默认123123)               
  "Cmd":"21#",        (解释:命令,查询设备设置的全部电话号码)               
}
设备返回:
warn/system_alarm
{"dto":{
"ReqType":"GWS1N",       
  "Status":"1",        (主机当前状态。解释:1表示布防,2表示撤防,3表示在家布防,4表示报警)
  "Numbering":"123456#",        (用户可以修改见后面附件默认123123)               
  "Cmd":"21*",        (解释:命令)               
  "PhoneNum1":"13100000000*",(第1个电话号码。)       
"PhoneNum2":"13200000000*",(第2个电话号码。)       
"PhoneNum3":"13300000000*",(第3个电话号码。)       
"PhoneNum4":"*",(无号码为空。)       
"PhoneNum5":"13100000000#",(第5个电话号码。)       
}}
        case SMSTYPE_InquireAlarmPhone://²éѯ±¨¾¯µç»°ºÅÂë
                                                {
                                                                 strcat((char *)GPRS_Buftemp, "\"Cmd\":\"21*\",");
                                                                 strcat((char *)GPRS_Buftemp, "\"PhoneNum1\":\"");
                                                                 memcpy(Password, &PARA_UserPhone(ZERO, ONE), PARA_UserPhone(ZERO, ZERO));
                                                           strcat((char *)GPRS_Buftemp, (char *)Password);
                                                           strcat((char *)GPRS_Buftemp,"*\",");                        //1×éµç»°ºÅÂë

                                                                        memset(Password, '\0', sizeof(Password));
                                                                        strcat((char *)GPRS_Buftemp, "\"PhoneNum2\":\"");
                                                                 memcpy(Password, &PARA_UserPhone(ONE, ONE), PARA_UserPhone(ONE, ZERO));
                                                           strcat((char *)GPRS_Buftemp, (char *)Password);
                                                           strcat((char *)GPRS_Buftemp,"*\",");                        //2×éµç»°ºÅÂë
                                                                 //
                                                                 memset(Password, '\0', sizeof(Password));
                                                                 strcat((char *)GPRS_Buftemp, "\"PhoneNum3\":\"");
                                                                 memcpy(Password, &PARA_UserPhone(TWO, ONE), PARA_UserPhone(TWO, ZERO));
                                                           strcat((char *)GPRS_Buftemp, (char *)Password);
                                                           strcat((char *)GPRS_Buftemp,"*\",");                        //3×éµç»°ºÅÂë
                                                                 //
                                                                 memset(Password, '\0', sizeof(Password));
                                                                 strcat((char *)GPRS_Buftemp, "\"PhoneNum4\":\"");
                                                                 memcpy(Password, &PARA_UserPhone(THREE, ONE), PARA_UserPhone(THREE, ZERO));
                                                           strcat((char *)GPRS_Buftemp, (char *)Password);
                                                           strcat((char *)GPRS_Buftemp,"*\",");                        //4×éµç»°ºÅÂë
                                                                 //
                                                                 memset(Password, '\0', sizeof(Password));
                                                                 strcat((char *)GPRS_Buftemp, "\"PhoneNum5\":\"");
                                                                 memcpy(Password, &PARA_UserPhone(FOUR, ONE), PARA_UserPhone(FOUR, ZERO));
                                                           strcat((char *)GPRS_Buftemp, (char *)Password);
                                                            strcat((char *)GPRS_Buftemp,"#\"}");                        //5×éºÅÂëÈ«²¿Íê³É         
                                                                 ///////////////////////                                                                                        
                                                }
                                                break;
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-2 09:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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