国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

esp8266 sprintf函數使用溢出問題

2019-11-11 00:52:01
字體:
來源:轉載
供稿:網友

在使用ESP8266 跑freertos操作系統時,如果使用sPRintf函數進行將其他數據轉換成字符串格式時,如果將存儲字符串的數組定義成局部數組會出現程序跑死然后重啟的問題。為了避免程序跑死問題,需要將存儲字符串數組定義成全局數組或者局部數組用static關鍵字聲明。出現這種問題的原因是在線程切換時數組的地址偏移出現了問題,來回切換地址出現了問題。一般情況下我們定義成全局變量就不會出現這種問題,防止堆棧溢出。

還有一個出現重啟的原因是存儲字符串數據的數組定義的過小,通過sprintf函數的返回值來判斷需要給數組開辟多大的空間。

下面是例子:

#define BUFF_SIZE         9

uint8 signall[BUFF_SIZE];     //定義為全局變量

len = sprintf(signall,"%d,  %d", idx++, wifi_signal);    


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乡宁县| 黄陵县| 浦县| 陆川县| 阳高县| 崇阳县| 咸丰县| 克山县| 凤台县| 日照市| 新晃| 沅江市| 于田县| 富裕县| 醴陵市| 简阳市| 噶尔县| 万安县| 海兴县| 建宁县| 忻州市| 鹿泉市| 岳普湖县| 宜丰县| 阳东县| 新乐市| 峨山| 大石桥市| 东源县| 吉木乃县| 长丰县| 张家川| 阿瓦提县| 普兰县| 南陵县| 吴忠市| 江陵县| 芮城县| 右玉县| 资溪县| 广州市|