首頁 > 應用 > 單片機應用
[導讀]關于怎么移植的網上有很多參考文檔,也很簡單,因為cjson只有2個文件,一個cJSON.c 一個cJSON.h文件。我用的是原子的stm32 工程文件測試,他們有自己定義的malloc.cmalloc.h,很方便可以直接用。需要修改的就是下面:

61浙江体育彩票走势图 www.ltkihs.com.cn

關于怎么移植的網上有很多參考文檔,也很簡單,因為cjson只有2個文件,一個cJSON.c 一個cJSON.h文件。

我用的是原子的stm32 工程文件測試,他們有自己定義的malloc.cmalloc.h,很方便可以直接用。

需要修改的就是下面:把原本的json malloc 和free替換成我們自己的,如下代碼

staticvoid*(*cJSON_malloc)(size_tsz)=malloc;staticvoid(*cJSON_free)(void*ptr)=free;----------------------------------------

void *(*cJSON_malloc)(size_t sz) = mymalloc;
void (*cJSON_free)(void *ptr) = myfree;

[cpp]view plaincopy

voidcJSON_InitHooks(cJSON_Hooks*hooks)

{

if(!hooks)

{

cJSON_malloc=malloc;

cJSON_free=free;

return;

}

//cJSON_malloc=(hooks->malloc_fn)?hooks->malloc_fn:malloc;

//cJSON_free=(hooks->free_fn)?hooks->free_fn:free;

cJSON_malloc=(hooks->malloc_fn)?hooks->malloc_fn:mymalloc;

cJSON_free=(hooks->free_fn)?hooks->free_fn:myfree;

}


通過上面這樣修改就可以運行例子了。

代碼運行可以,但是有個問題要注意:

我們在 運行p=cJSON_Print(root);
后務必要要進行如下釋放操作

cJSON_Delete(root);

free(p)

關于free這點特別加粗注意,我被這個問題困擾兩天,默認網上的介紹都是這樣寫的,編譯代碼也沒要出現錯誤。

其實不對的,應該使用myfree(p); 這個函數才能給真正釋放內存,要不然程序跑幾分鐘就卡死了,這個特別要注意。喜歡做驗證的朋友可以自己測試下。

這問題不容易發現,我幾乎快放棄cjson了?;購米詈蠼餼雋?。


換一批

延伸閱讀

[技術專訪] M7+M4雙核架構MCU,STM32H7將微控制器性能進一步提升

M7+M4雙核架構MCU,STM32H7將微控制器性能進一步提升

在微控制器的市場上,雙核設計多為M4+M0/M+的架構,往高性能方向走,一般都是采用單核M7,鮮有M7+M4的這種組合。而此次STM32H7正是在單核M7的基礎上,又添加了一個M4的內核,雙核跑分合計達到了3200CoreMark,將微控制......

關鍵字:STM32 雙核H7 微控制器

[技術專訪] 將人工智能的觸角將延展到邊緣設備上,STM32全面升級應對AI挑戰

將人工智能的觸角將延展到邊緣設備上,STM32全面升級應對AI挑戰

將人工智能的觸角將延展到邊緣設備上,STM32全面升級應對AI挑戰......

關鍵字:人工智能 stm32 物聯網

[行業觀察] 為什么說STM32的生態在中國是做的最好的?

為什么說STM32的生態在中國是做的最好的?

合作伙伴是ST文化中的重要一環,在此生態中的每一員,包括ST本身,都相互給予并收獲了很多。......

關鍵字:STM32 正點原子 RTT 出門問問 GUI

[單片機新聞] STM32峰會 合作共贏 生態共建

STM32峰會 合作共贏 生態共建

2019年4月26至27日,一年一度的意法半導體STM32峰會在深圳如期舉行,根據最終統計,實際參會人數達到了3,500人,在線人數最高達5萬人。 ......

關鍵字:STM32 峰會 微控制器

[單片機新聞] STM32之父談STM32產品藍圖

STM32之父談STM32產品藍圖

在2019年STM32峰會上,STM32之父,意法半導體微控制器事業部全球市場總監Daniel Colonna介紹了STM32產品規劃及生態戰略。......

關鍵字:STM32 微控制器

[單片機新品] 意法半導體推出雙核無線MCU STM32WB

意法半導體推出雙核無線MCU STM32WB

意法半導體的STM32WBx5 *雙核無線微控制器(MCU)配備Bluetooth® 5、OpenThread和ZigBee®3.0**連接技術,同時兼備超低功耗性能。......

關鍵字:意法半導體 低功耗 微控制器 STM32WB

[單片機應用] 關于STM32單片機GPIO口上拉與下拉輸入

關于STM32單片機GPIO口上拉與下拉輸入

以前GPIO上接的電路都是低電平觸發的那種,新畫了個板子有一個按鍵設計的是高電平觸發,結果IO口設置成上拉輸入后,怎么讀都不正確,按鍵電路如圖1。無奈只能去調試一下,發現當設置為上拉輸入后,其ODR(GPIO輸出......

關鍵字:STM32 單片機 GPIO口 上拉 下拉輸入

[單片機應用] stm32 移植cJson 注意free釋放內存

stm32 移植cJson 注意free釋放內存

關于怎么移植的網上有很多參考文檔,也很簡單,因為cjson只有2個文件,一個cJSON.c 一個cJSON.h文件。我用的是原子的stm32 工程文件測試,他們有自己定義的malloc.cmalloc.h,很方便可以直接用。需要修改的就是下......

關鍵字:stm32 移植cJson 釋放內存

[單片機應用] SPI通信協議—STM32f1學習筆記

SPI通信協議—STM32f1學習筆記

SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,分別為:1.MISO,主機數據輸入從機數據輸出線(“M”表示主機master,“I”表示輸入in,“S”表示從機slaver,“O”表示輸出out。)2.......

關鍵字:SPI 通信協議 STM32f1

[單片機應用] STM32 keil 添加.h文件方法

STM32 keil 添加.h文件方法

新建并添加.h文件,文件名稱命名與引用相同。即如引用led.h,則保存的.h文件也應命名為led.h例如:在main函數中,引用......

關鍵字:STM32 keil 添加.h文件

[特別報道] 為數據存儲護航 東芝助力“智慧醫療”

為數據存儲護航 東芝助力“智慧醫療”

“2018第四屆國際智慧醫療創新論壇暨healthcare智創獎頒獎盛典” 于昨日在武漢落下帷幕。東芝此次攜手普安科技,為大家帶來混合云存儲解決方案,分別滿足醫療資源共享與備份,大數據,人工智能與醫療的整合,以及遠程醫療的存儲需求。......

關鍵字:數據存儲 智慧醫療 東芝

我 要 評 論

網友評論

技術子站

更多

項目外包

更多

推薦博客