1. 程式人生 > >keil環境下移植cJSON

keil環境下移植cJSON

前言

由於工作需要,需要在STM32上使用Json,所以把一個JSON庫移植到了STM32(keil MDK),實際上keil已經有了JSON擴充套件包(Jansson),只需要從keil官網上下載JSON Pack再匯入就行。

這篇文章主要講解如何把cJSON移植到keil環境下,用於STM32。

測試平臺

  • keil版本:uVision 5.2.1a
  • 晶片型號:STM32F051

下載並移植cJSON庫

cJSON有三個原始檔及其對應的標頭檔案:cJSON.c/cJSON.h,cJSON_Utils.c/cJSON_Utils.h,test.c/test.h。我們主要使用cJSON和test,把這些檔案拷貝到keil工程目錄下,並新增入keil工程目錄。 
新增cJSON到keil工程目錄

由於test.c檔案裡面有main主函式,可以把這個主函式改一下,然後在自己工程的main主函式呼叫該測試函式即可。

儲存,編譯,燒寫程式碼。

注意事項

  1. 由於cJSON使用printf列印資料,要先重定向printf輸出到串列埠,之後用串列埠除錯工具檢視cJSON除錯資訊,具體做法可以點選這裡或者參考其他資料;
  2. 正常執行cJSON的測試例程需要3KB的heap,如果晶片記憶體足夠,可以在啟動檔案(startup_XXX.s)裡修改。 
    修改堆大小 
    我這次專案使用的晶片是STM32F051,預設大小是512B,不修改這裡的話解析test檔案的json是會出錯的,最多隻能解析三層鍵值項。
  3. cJSON的文件檢視
    github
    即可;
本文轉自: http://blog.csdn.net/yannanxiu/article/details/52712078

相關推薦

keil環境移植cJSON

前言 由於工作需要,需要在STM32上使用Json,所以把一個JSON庫移植到了STM32(keil MDK),實際上keil已經有了JSON擴充套件包(Jansson),只需要從keil官網上下載JSON Pack再匯入就行。 這篇文章主要講解如何把cJSON

KEIL環境指定輸出檔案路徑

      我們在KEIL 上面建立的工程,如果不作任何設定而進行編譯、連結等等動作,必定在工程檔案當前目錄產生字尾為 .o .crf .dep .d .lst 等檔案。簡單的工程,其生成的檔案數量尚能容忍,一旦工程裡頭包含的原始檔有一定的規模,到達那個程式設計水平的你一定不

Android開發——Android Studio使用Cmake在NDK環境移植Dlib庫

環境要求 使用AS2015平臺,SDK Manager中已經安裝了Cmake(編譯工具),NDK(環境),LLDB(偵錯程式)。沒有裝的話,開啟SDK Manager選中安裝重啟AS就可以了。 AS專案結構: 我從不勾選C++ Support的專案開始

Keil環境“無法執行C:\Keil\C51\BIN\A51.exe”

本人近來編寫了些許硬體程式碼,一些問題還是較坑,在此記錄下來: 前提:程式是針對80C51晶片的。 編譯器編譯時程式碼正確無誤,但是建立目標時出現錯誤:“無法執行C:\Keil\C51\BIN\A51.exe” 解決辦法:(1)先用管理員許可權執行,不行的話看下一步; (2

Android環境移植busybox-1.21.1

前言:本移植主要是為了實現安卓環境下DHCP伺服器和telnetd伺服器功能。 Dhcp伺服器主要修改快取檔案路徑“/tmp/leases”,telnetd主要新增登陸驗證,這個牽扯到login命令。

Keil環境使用JLink實現printf輸出重定向至debug視窗

在工程裡面新增下列程式碼: #include <stdio.h> #define ITM_Port8(n) (*((volatile unsigned char *)(0xE0000000+4*n))) #define ITM_Port16(n) (

Mac環境Android Studio移植FFmpeg

準備: 1. Android Studio 2. FFmpeg-2.8.4   3. android-ndk-r10e 一、ndk編譯ffmpeg 1.下載ffmpeg和ndk ffmpeg下載地址:http://

ethercat IGH移植linux環境出現的問題

問題1:當進行核心編譯的時候出現了編譯出錯的問題 如圖 編譯核心時出現“Disable CONFIG_CC_STACKPROTECTOR in your kernel configuration”字樣,在網上查詢資料最終在 https://blog.csdn

linux環境ARM移植libcurl

因為用的板子是ZLG的imx280a,所以我安裝的Ubuntu直接用他們給的了。 系統環境:VM-Ubuntu-12.04-64bit-zlg(這個無所謂,我直接用的ZLG官方給的映象安裝的) libcurl的安裝包:curl-7.55.1.tar(這是我做的時候出的最

【轉】集群/分布式環境5種session處理策略

學習 原理 memcache 可選 ret 當前 memcach uil 服務器 轉載至:http://blog.csdn.net/u010028869/article/details/50773174 在搭建完集群環境後,不得不考慮的一個問題就是用戶訪問產生的sessi

window7環境ZooKeeper的安裝運行及監控查看

nap keep data utf 如果 兩個文件 direct directory 服務 原文:http://www.cnblogs.com/RainAndWind/p/4668427.html ZooKeeper是一個分布式開源框架,供了協調分布式應用的基本服務。這些

Linux環境的 pyenv的安裝

pyenvCentOS上安裝pyenv:在安裝pyenv前,需要先安裝如下的依賴包:在 CentOS/RHEL/Fedora 下:yum install readline readline-devel readline-static yum install openssl openssl-devel open

linux環境部署zabbix3.2、模板、郵件告警詳細過程

-1 ice erer without zlib zip ever native item 服務端部署: 系統環境及軟件版本: Linux:release 6.3 zabbix:zabbix-3.2.5.tar.gz nginx:nginx-1.12.0.tar.gz ph

Hyperledger fablic 0.6 在centos7環境的安裝與部署

maker ber gin sudo 管理 lease nts eve blank 原文:http://blog.csdn.net/zhaoliang1131/article/details/54617274 Hyperledger Fabric超級賬本 項目約定共同遵守

【甘道夫】Ubuntu14 server + Hadoop2.2.0環境Sqoop1.99.3部署記錄

tool share 環境變量 解壓 gdi yar base soft mil 第一步。下載、解壓、配置環境變量: 官網下載sqoop1.99.3 http://mirrors.cnnic.cn/apache/sqoop/1.99.3/ 將sqoop解

win 環境報錯 Namespace declaration statement has to be the very first

ica found space all fopen 頭文件 bstr spa while 啟動 start_for_win.bat 的時候報錯 Namespace declaration statement has to be the very first ,這是由於 b

Android 開發之Windows環境Android Studio安裝和使用教程(圖文詳細步驟)

9.png 虛擬機 jdk版本 編寫 clip 開發平臺 集成開發 arc 電腦安裝 鑒於谷歌最新推出的Android Studio備受開發者的推崇,所以也跟著體驗一下。 一、介紹Android Studio Android Studio 是一個Android

2.Linux環境配置Solr4.10.3

margin 內容 src source -type alt 技術 tgz 安裝包 1.準備階段 操作系統:CentOS 6.8 安裝包:/home/test solr-4.10.3.tgz.tar IK Analyzer 2012FF_hf1.zip jdk-8u12

windows環境wampserver的配置教程

module 單獨 ext 寫作 還需 sta write 打開 服務器 對於初做PHP網站的朋友來說,第一步肯定是希望在自己電腦是搭建PHP環境,省去空間和上傳的麻煩!但搭建環境也不是件容易的事情,特別是對於新手同學來說!因此在這裏跟大家介紹我作為一名新手在使用的方便好用

由一個簡單需求到Linux環境的syslog、unix domain socket

message python domain 服務器 import 需求:回到頂部  工作中有一個在Linux(debian8)環境下運行的服務器程序,用python語言實現,代碼中有不同優先級的日誌需要記錄,開發的時候都是使用python的logging模塊輸出到文件,示例代碼如下: