記一次資料越界的事

2021-09-12 21:39:19 字數 372 閱讀 4496

最近在作乙個基於聯盛德的 w600晶元進行ayla雲移植時,用到了作業系統的tick獲取,獲取函式如下:

u32 clock_ms(void)

else

return ms;

}測試**現了奇怪的問題,系統走著走著就不發心跳包了,最後跟蹤後發現是上面這個函式返回的值突然變零;

我們預想上面的返回值會一直增加,至少要很久才會翻轉,但它只跑了2個多小時就反轉了,後來作了修改:

u32 clock_ms(void)

else

return ms;

}這樣後,反轉的就不那麼快了;

再在其它地方加上對反轉的判斷,系統心跳包總算傳送正常;

在家可以體會一下上而所加的括號的用處!

一次陣列越界的bug經歷

陣列和指標都是c裡面的好東西,但是一旦使用不當,真的會讓人抓狂。下面是寫程式時遇到的一次陣列越界的經歷,感覺對以後寫程式有點啟發,所以記錄下來。我想用oled動態顯示一組浮點數,而且浮點數的長度是不定的。於是有了下面這樣的程式 sprintf char weight string,1f weight...

記一次資料提取過程

某次需要乙個中文電碼本,然而網上搜到的要麼收費,要麼不行,所以打算自己做乙份,但是看了下資料量實在太大只能放棄,那麼怎麼辦呢。收到乙個軟體teleccodetool 可以查詢漢字對應的電碼,隨即準備提取,過程記錄如下。無關的檔案已經刪除了,只剩三個核心檔案 乙個個看,第乙個配置檔案開啟沒啥有用的訊息...

記一次資料查詢優化

某天搬磚搬得熱火朝天,突然乙個 打來,業務部門反映,某功能特別卡,簡直不能忍。有多慢?大概90s。是突然很慢?還是之前就很慢?之前就有點慢,但是沒有這麼慢。好了,不扯犢子了,直接檢視原始碼 public dataset getstockbyuserandtime string warehouseid...