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

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

esp8266 sprintf函數使用溢出問題

2019-11-11 02:46:11
字體:
來源:轉載
供稿:網友

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

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

下面是例子:

#define BUFF_SIZE         9

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安新县| 图们市| 芒康县| 搜索| 章丘市| 米易县| 澄江县| 福清市| 广灵县| 泸溪县| 丰宁| 沁水县| 北流市| 芷江| 炉霍县| 社旗县| 娄底市| 兰考县| 双流县| 临江市| 滦平县| 阳原县| 聊城市| 玛沁县| 五原县| 通海县| 凤山市| 金乡县| 阿瓦提县| 砀山县| 灵台县| 万安县| 宁国市| 天水市| 南宫市| 新源县| 万载县| 醴陵市| 达拉特旗| 大足县| 泽普县|