国产探花免费观看_亚洲丰满少妇自慰呻吟_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);    


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兖州市| 洪洞县| 鄂尔多斯市| 福安市| 宁乡县| 旅游| 沙河市| 灵璧县| 惠州市| 兴业县| 北辰区| 沁水县| 龙江县| 中西区| 青河县| 曲靖市| 辛集市| 寿光市| 依安县| 泽库县| 池州市| 延安市| 黑山县| 乐平市| 赤壁市| 合川市| 岗巴县| 天津市| 高青县| 当涂县| 中卫市| 琼海市| 牟定县| 绩溪县| 当雄县| 鹤壁市| 钦州市| 改则县| 江津市| 浏阳市| 鹤壁市|