cJson移植到STM32系统

发布者:真诚相伴最新更新时间:2024-10-09 来源: cnblogs关键字:移植  STM32系统 手机看文章 扫描二维码
随时随地手机看文章

一、下载cJson文件
     实际只包含了cJSON.C,cJson.h,cJson_utils.c,cJson_utils.h
二、添加到工程
     
三、修改代码:
   在cJson_utils.c中增加

点击(此处)折叠或打开

  1. char * strdup(const char *s)

  2. {

  3.    size_t len = strlen(s) +1;

  4.    void *new = malloc(len);

  5.    if (new == NULL)

  6.       return NULL;

  7.    return (char *)strncpy(new,s,len);

  8. }



四、测试在main.c中增加


点击(此处)折叠或打开

  1. #include 

  2. #include 

  3. #include 

  4. #include 'cJSON.h'



  5. int main(void)

  6. {

  7. //SystemInit();

  8. char *out ;

  9. cJSON *root,*fmt;

  10. root=cJSON_CreateObject();//创建项目

  11. cJSON_AddItemToObject(root, 'name', cJSON_CreateString('Jack ('Bee') Nimble'));

  12. cJSON_AddItemToObject(root, 'format', fmt=cJSON_CreateObject());//在项目上添加项目

  13. cJSON_AddStringToObject(fmt,'type', 'rect');//在项目上的项目上添加字符串,这说明cJSON是可以嵌套的

  14. cJSON_AddNumberToObject(fmt,'width', 1920);

  15. cJSON_AddNumberToObject(fmt,'height', 1080);

  16. cJSON_AddNumberToObject(fmt,'frame rate', 24);

  17. out=cJSON_Print(fmt);

  18. printf('%sn',out);//此时out指向的字符串就是JSON格式的了

  19. free(out);//释放空间

  20. while(1);

  21. return 0;

  22. }



关键字:移植  STM32系统 引用地址:cJson移植到STM32系统

上一篇:STM32最小系统设计
下一篇:STM32系统时钟配置

推荐阅读最新更新时间:2024-11-12 12:37

u-boot-2009.08在mini2440上的移植 增加USB功能
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-eabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,参考文章: 8.1,实现u-boot的usb slave下载功能 友善自带的dnw下的usb下载功能真的很好用,于是也想实现此功能,现参考博文为u-boot-2009.08 添加 dnw usb下载功能,操作如下(红色字体部分为修改或添加的代码): 【1】复制usb
[单片机]
U-Boot-2009-03移植笔记(调试篇)
对于驱动开发,系统移植来说,我们的代码可能会出现无数种bug,但是结果只有一个:驱动失败!本文简单介绍以下openjtag的裸机调试. 开发环境 操作系统:ubuntu10.04 硬件设备:xinna2440 软件:openocd 0.3.1、u-boot-2009-03 调试方法 首先我们必须得对我们的程序每条指令位于哪个地址了如指掌,所以,我们需要对我们编译好的u-boot进行反编译:使用arm-linux-objdump命令。 在u-boot源码根目录,运行:arm-linux-objdump -d u-boot u-boot.S,这样,反编译后的代码,就在u-boot.S中,我们用vim打开看看 很清楚的看到,我
[单片机]
U-Boot-2009-03<font color='red'>移植</font>笔记(调试篇)
uCOS-II优先级任务调度在PowerPC上的移植和优化
μC/OS是Jean J.Labrosse开发的实时多任务内核,最初是为Motorola 8位处理器68HC11写的。在后来的相关著作中,作者将代码移植到了PC上,以便于更多的读者学习。μC/OSII继承了μC/OS的算法,有执行效率高、占用空间小、实时性强和可扩展性好等特点,被移植到几乎所有类型的CPU上,成为在嵌入式领域非常有影响力的RTOS。然而,由于该实时内核是为8位CPU设计的,对于那些具有优先级算法硬件指令的CPU,仅做移植是很不够的。 1 基于优先级的任务调度 一个基于优先级的实时多任务内核的任务调度机制需要实现下面三个核心的处理功能: ◆ 将任务置于就绪态; ◆ 将任务取消就绪态; ◆ 找出最高优先级的就绪态任务
[单片机]
uCOS-II优先级任务调度在PowerPC上的<font color='red'>移植</font>和优化
LVGL | lvgl最新版本在STM32上的移植使用
lvgl简介 LittlevGL是一个免费的开源图形库,提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用。 特点: 强大的构建模组 按钮、图表、列表、滑块、图像等 先进的图形 动画、反锯齿、半透明、平滑滚动 多样的输入设备 触摸板、鼠标、键盘、编码器等 多显示器支持 支持同时使用多个TFT或单色显示器 多语言支持 UTF-8格式文字编码 完全自定义 图形元素 硬件无关 可用于任意微控制器或显示器 可裁剪 用于小内存(80 KB FLASH,12 KB RAM)操作 操作系统、外部存储以及GPU 支持但非必须 单帧缓存 即可实现先进的图形效果 C语言编写 以最大化兼容(C
[单片机]
LVGL | lvgl最新版本在<font color='red'>STM32</font>上的<font color='red'>移植</font>使用
MicroPython之LPC1788移植
环境搭建 环境搭建就不多说了,按照官方的 wiki 进行搭建就好了。 移植步骤 说明 micropytho使用gcc进行编译,因此使用官方的lpcopen_2_10_lpcxpresso_ea_devkit_1788开发包。将MCUXpresso IDE也下载安装好,后面有用。 需要的文件 ports目录下有个minimal目录,这是micropython的最小移植,后面都所有操作都在这个移植的基础上进行。 下面看看,这个移植里面都有哪些文件: 文件 说明 main.c micropython的入口,初始化啥的都在这了 Makefile 这个不多说,编译就靠这个了 mpconfigport.h m
[单片机]
linux-2.6.32在mini2440开发板上移植-移植UDA1341 音频驱动
1 在初始化文件中加入UDA1341 设备结构 Linux-2.6.32.2 已经完美的支持UDA1341 音频芯片的驱动, 我们只要在arch/arm/mach-s3c2440/mach-mini2440.c 文件中注册UDA1341 平台设备的控制端口就可以了,打开mach-mini2440.c,添加如下内容: ;在文件首部添加头文件 #include sound/s3c24xx_uda134x.h ;在LCD 平台设备后面添加UDA1341 设备结构 static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data = { .l3_clk =
[单片机]
移植内核2.6.24.4到S3C2440
百经周折,终于新内核启动了新的系统。 多谢小卒的指导,还有这两篇文章的作者,给了我很多帮助。 http://blog.chinaunix.net/u2/63560/showart_511924.html http://blog.csdn.net/hongjiujing/archive/2007/09/19/1790842.aspx 很多工作还刚开始,先记录下来,别以后自己都忘了。 --------------------------------------------------------------------------------------------------- 移植环境: 主机:CentOS 5.1 交
[单片机]
gsm库(libgsm)在ARM-Linux下的移植
GSM是常见的VOIP的语音编解码库,在Linux下用libgsm来实现。在项目中需要用到libgsm库。因此试着直接编译GSM库来编译.官网已经停止服务了,因此在这个网址下了最新版来编译 解压后发现,这个Makefile是一个手写而非 Au toconf生成的Makefile,并且只有编译静态库,而没有常见的动态库的Makefile. 因此将其修改一下,使用其能在ARM编译并且成动态库。这也是一个典型的Makefile的修改练习,如果想编译成静态库,简单把 LIBEXT 改成 a即可 # Copyright 1992-1996 by Jutta Degener and Carsten Bormann, Technis
[单片机]
gsm库(libgsm)在ARM-Linux下的<font color='red'>移植</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved