[C 的那些眉角]malloc 之後一定要檢查 — 記憶體配置的防禦性寫法

平常在嵌入式系統上用 malloc
寫完之後覺得很爽,動態配置記憶體,好像很厲害。

uint8_t *buf = malloc(1024);
memset(buf, 0, 1024);
// 開始用 buf...

有一次朋友看了一眼問我:「malloc 失敗怎麼辦?」

我說:「會失敗嗎?記憶體應該夠吧?」

他說:「嵌入式的 heap 就那麼大,你確定嗎?」

我 ........ 當然不是很確定。

閱讀全文

台科大校地全解析:從公館到新竹,六大校區完整盤點

國立臺灣科技大學作為台灣頂尖的科技大學,其校地分布範圍遍及北台灣多個縣市。本文將完整介紹台科大目前擁有的六大校地,以及各校區的面積與功能定位。

一、台科大有幾個校區?

根據台科大官方資料,目前共有六大校地,總面積約40-48公頃,分布於台北市、新北市、基隆市及新竹縣[1][3][7]。

閱讀全文

好奇到底有多少人願意為 AI 付費?答案是…

最近用 ChatGPT 的時候,突然冒出一個念頭:身邊好像大家都在用 AI,但有多少人真的有付費訂閱呢?

我自己也是免費用戶,偶爾會看到「升級到 Plus」的提示,但總覺得免費版就夠用了。於是我開始好奇,使用付費版的人到底佔多少比例?

帶著這個疑問,我花了點時間查資料,結果發現的數據還真的蠻有趣的。

事實:大約 95% 的人都在用免費版

閱讀全文

嵌入式系統中廣泛使用的頻率 – 32.768 kHz

為什麼32.768 kHz在嵌入式系統中被廣泛使用

在嵌入式系統中,32.768 kHz 晶體的使用非常普遍,尤其在計時和低功耗應用中。這個頻率比其他如10 kHz、15 kHz、16 kHz、20 kHz、30 kHz、33 kHz或40 kHz的頻率更受到青睞,這是由於多方面的技術和實際原因。理解這些原因可以幫助我們明白為什麼32.768 kHz成為產業標準。

閱讀全文

[筆記]NMEA:GPS設備間通訊的語言

當我們使用GPS設備時,或許聽過「NMEA」這個詞。那麼,NMEA又是什麼呢?它在GPS設備中扮演著什麼樣的角色?讓我們用淺顯易懂的方式來介紹NMEA的基礎知識。

什麼是NMEA?
NMEA是「National Marine Electronics Association」的縮寫,是一個組織,也是一種通訊協議的名稱。在GPS領域,NMEA是一種常用的通訊協議,用於不同GPS設備之間的數據交換和通訊。

NMEA的格式
NMEA數據通常以ASCII文本的形式進行傳輸,其中包含了特定的數據字段和信息。最常見的NMEA格式是NMEA 0183,它定義了不同類型的數據消息和對應的格式。

閱讀全文