Markdown 學習筆記:從「這啥挖溝?」到每天都在用

Why Markdown?

說真的,一開始是被逼的。

在寫 GitHub README 的時候,看到別人的專案頁面排版超漂亮,有標題、有表格、有程式碼區塊,我的卻是一坨純文字。

然後去查了一下,才知道那個叫 Markdown。

心想:「這東西看起來很簡單嘛,應該半小時就學完了吧?」

嗯⋯⋯大致上是對的,但要用得順手還是花了一點時間。

閱讀全文

那些年我踩過的 Memory Leak

做嵌入式 Linux 開發那幾年,Memory Leak 大概是我遇過最多次、最難抓、最容易被忽略的問題。

桌面應用程式記憶體洩漏,頂多讓程式跑慢、被 OS 回收。但在嵌入式系統上,RAM 本來就不多,一旦洩漏,輕則效能下降,重則系統直接 OOM crash,而且往往要跑好幾個小時才會發作

這篇文章整理我這幾年踩過的幾個經典 Memory Leak 案例,每個都有點不一樣,希望能幫你少走一些彎路。

⚠️ 程式碼為簡化示意版本,重點在於呈現問題模式


案例一:最經典的忘記 free 🐣

閱讀全文

一場軟硬體工程師的爭論:UART 等於 RS-232嗎?

最近想到幾年前目睹的一場「技術辯論」,至今仍覺得有趣。

A 同事(軟體工程師):「UART 跟 RS-232 差不多啊,不都是串列通訊嗎?」

B 同事(硬體工程師):「什麼差不多?這兩個明明就差很多,是完全不一樣的東西!」

當時我聽到的反應是:「這不是差不多的東西嗎?」畢竟在我的認知裡:

  • 都叫 serial 通訊
  • 都可以設定 baudrate(9600、115200...)
  • 開發時都是透過電腦用 USB 轉 RS-232 接到開發板上
  • 程式碼裡面都是叫它 UART

看起來根本就是同一件事啊?為什麼 B 同事會這麼激動?

閱讀全文

[GNSS筆記]衛星導航系統的千禧蟲問題(Rollover)

全球導航衛星系統(GNSS)是現代生活不可或缺的基礎設施,從智慧型手機定位、車輛導航到精密測量,都仰賴這些衛星系統。然而,這些系統存在一個鮮為人知的技術限制——週數翻轉(Week Number Rollover)問題。

什麼是GNSS週數翻轉?

週數翻轉是指GNSS系統用來記錄時間的週數計數器達到上限後歸零的現象。這就像汽車里程表跑滿後重新從零開始計算一樣,但對於依賴精確時間的導航系統來說,這可能造成嚴重的問題。

為什麼會發生週數翻轉?

閱讀全文

[GNSS筆記]低軌衛星定位革命:Starlink、OneWeb將改變遊戲規則

當你在高樓林立的都市峽谷中迷路,GPS訊號時有時無;當你在地下停車場找不到出口,手機定位完全失效;當你在偏遠山區遇險,衛星電話是唯一的求生希望——這些場景都指向傳統衛星導航系統的同一個痛點:訊號太弱

SpaceX的Starlink、OneWeb、Amazon的Kuiper計劃——這些低軌衛星星座原本是為了提供全球互聯網服務,但它們帶來的「副產品」可能更具革命性:比GPS強1000倍的定位訊號。想像一下,在室內、地下室、甚至水下都能精確定位;想像一下,定位精度從米級躍升到釐米級;想像一下,定位延遲從秒級降到毫秒級。

這不是科幻,而是正在發生的現實。今天,讓我們深入探討低軌衛星如何顛覆傳統定位技術,它們將帶來哪些機遇與挑戰,以及這場革命將如何改變我們的生活。


一、低軌 vs 中軌:一場物理定律的較量

要理解低軌衛星的革命性,我們首先需要了解軌道高度帶來的根本差異。

軌道高度的物理影響

閱讀全文

[GNSS筆記]A-GPS/A-GNSS 輔助定位是怎麼運作的?手機如何透過網路加速定位

你是否曾經好奇,為什麼手機在室內或剛開機時,明明GPS訊號很弱,卻能在幾秒鐘內就顯示你的位置?而傳統的車用GPS導航器,在冷啟動時卻需要等待好幾分鐘才能定位成功?

這背後的秘密,就是A-GPS(Assisted GPS)A-GNSS(Assisted GNSS)技術。這項技術巧妙地結合了衛星定位和行動網路的優勢,讓手機的定位速度比傳統GPS快上10倍甚至100倍!

今天,讓我們深入探討這個看似神奇、實則精巧的技術:它如何運作?為什麼能大幅縮短定位時間?又有哪些限制和隱私考量?無論你是科技愛好者,還是單純想了解手機定位原理的一般用戶,這篇文章都將為你揭開A-GPS/A-GNSS的神秘面紗。


一、傳統GPS定位的「慢」在哪裡?

要理解A-GPS的價值,我們首先需要知道傳統GPS為什麼這麼慢。

閱讀全文

[GNSS筆記]定位系統比較:GPS、北斗、Galileo、GLONASS 誰最強?

全球有四大主要衛星導航系統正在運作:美國的GPS、中國的北斗、歐盟的Galileo,以及俄羅斯的GLONASS。它們各有千秋,也各有擅長的領域。究竟哪個系統最準確?在不同場景下該選擇哪個?多系統聯合定位又能帶來什麼優勢?讓我們一起深入探討這個與日常生活息息相關的科技議題。


一、四大系統的身世背景

1. GPS:開山鼻祖,穩如泰山

閱讀全文

[GNSS筆記]CEP、2DRMS 到底是用來做什麼的?

記得有一天下午,同事傳來一份 GNSS 測試報告,說要我幫忙確認。我打開檔案,滿滿的數據表格映入眼簾:

測試項目:定位精度
CEP: 2.5m
2DRMS: 5.8m
測試點數: 1000

當下我的內心 OS:「CEP?2DRMS?這是什麼外星文?🤔」

閱讀全文

[GNSS筆記]星曆與年曆:衛星的兩種軌道參數

為什麼GPS有時候秒定位,有時候要等好幾分鐘?關鍵就在「星曆」和「年曆」!


📡 什麼是星曆(Ephemeris)?

基本定義

星曆是描述單顆衛星特定時間段內精確軌道參數

簡單比喻:就像飛機的「即時飛行計劃」,告訴你這架飛機現在精確在哪裡、往哪飛、速度多快。

包含哪些資訊?

  • 🛰️ 衛星的精確位置座標
  • 📍 衛星的運行速度和方向
  • ⏰ 衛星時鐘的修正參數
  • 🔧 軌道攝動修正數據

閱讀全文

AT命令錯誤訊息解密:ERROR 和 +CME ERROR 原來大不同!

最近在開發物聯網設備時,遇到了一個讓我困惑很久的問題:為什麼同樣是錯誤,有時候模組回傳 ERROR,有時候卻回傳 +CME ERROR: 3?一直覺得很奇怪,都是錯誤,但是訊息卻不一樣。所以去研究了一下,發現原來還有這層意義!今天就來分享這個發現。

一開始的困惑

當我在測試 AT 命令時,遇到了這樣的情況:

AT+ABCDEFG
ERROR

AT+KSREP
+CME ERROR: 3

同樣都是失敗,為什麼錯誤訊息格式完全不同?這讓我開始深入研究 AT 命令的錯誤機制。

閱讀全文