公告版位
從小害怕寫作文, 文筆不佳到現在, 還請各位讀者大大:
1. 發現有錯誤, 請留言告知. (或者你 '覺得' 不對也行)
2. 用字措辭不當, 請留言告知.
3. 有看沒有懂? 幫到忙也好, 幫倒忙也罷, 總之留個言吧.

我不知道大家在痞客邦上貼文是怎麼處理的, 以下是我過去用過的方法:

  • 直接用痞客邦提供的 '發表文章' 介面. (舊版的 '發表文章' 介面很令人抓狂, 應該是沒人還在用?)
  • 後來試過所謂的所見即所得 (WYSIWYG)的離線編輯器, 如: Microsoft Word, WLW (Windows Live Writer) 或者其他類似的離線編輯器 (Open Live Writer). 我原本是用 WLW, 但是後來 WLW 被微軟完全停掉了, 電腦重新安裝時下載不到 Windows Live Essentials 了, 不得已只好試用 Word 打, 但是試了一次內建的 '上傳部落格' 功能就放棄, 原因是:
    • 它無法像 WLW 那樣自動下載網站的樣式, 離線檢查上傳之後的外觀.
    • 它無法像 WLW 那樣切換成純文字模式模式來直接檢視或修正 HTML tag. (我需要修改 HTML 附加 CSS 和 JavaScript)
    • 直接由 Word 剪下貼在痞客邦提供的網頁介面上則貼文中殘留太多不必要的樣式設定. 雖然這樣可以大致上保持原本 Word文件的外觀, 但也意味著貼文用的樣式必需一開始就完全固定下一來, 否則日後要修改並維持整體貼文風格的一致性代價是很高.
  • 至於 OLW (Open Live Writer) 雖然保留了 WLW 的大部份功能, 但是:
    • 無法下載貼文回來修改. (只能修改由 OLW 送出的貼文)
    • Plugins 功能整個都不相容, OLW 官網也沒有提供任何 plugins, 所以沒辦法修改樣版, 也沒辦法客製快速功能.

我目前用的方法:

  1. 使用 UltraEdit 和痞客邦舊版的 '發表文章' 介面, 但是切換到編輯器的純文字模式, 直接面對 HTML 語法來達成想要的效果. 例如: 附加共同的 CSS, 或者再作一些 CSS 的微調, 又或者想辦法停掉痞客邦的廣告... (哈哈, 因為工作的關係一天到晚在程式和網路協定裡打滾, 所以對 HTML 語法還算熟悉, 所以直接面對 HTML 語法並沒什麼壓力)
  2. 使用 portable 版的 WLW (感謝 阿榮福利味), 加上一個叫 'Text Template' 的 plugin.

如果你有其他好用的 (你自己認為即可) 方法或工具, 歡迎留言告訴我喔!

文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

在網頁中使用 Font Awesome 加一些圖形字元 (icon) 大概很多人都會: 下載 font awesome 提供的壓縮檔 (內含 fonts, CSS ...), 並放到 web server 上, 然後在網頁的前頭加上 <link> tag 來下載就完成了必要的準備工作.

<link type="text/css" rel="stylesheet" href="css/font-awesome.min.css" />

或者是直接使用 font awesome 提供的 cdn 連結也行.

文章標籤

MagicJackTing 發表在 痞客邦 留言(1) 人氣()

前言


  • 現在的 git for windows 已經改用 MSYS2 當作執行環境的基礎了. 如果需要自己重新編譯 git for windows 的話, 也有 git for windows SDK 可用, 不再需自己重新由 MSYS2, GCC, git... 一路安裝設定, 接著還要下載原始程式, 上 patch, 才能開始編譯 git. 我以前自己試著作過一次, 結果是一關接著一關的卡, 卡關卡得非常嚴重... 不只是挑戰你對 unix/linux 環境及指令的了解, 更要具備對 GNU cygwin 開發環境的知識. 總之就是沒有神人帶你走過一遍真的很難順利把建置的環境弄好.
  • 日前想為 git for windows 加裝個 python, 可是一直找不到直接給 MSYS2 用的(註一), 只找到獨立安裝的 python for windows. 雖然一樣可以在 git for windows 的 bash 視窗中使用, 但是 git for windows SDK 裡明明就有 python 可用啊! 於是想到何不想辦法自行安裝這個版本的 python 呢? 但是問題來了 git for windows 內部沒有附 pacman 指令, 沒辦法像 git for windows SDK 或者是 MSYS2 那樣直接用 pacman 安裝. 於是再一次的找 Google 大神幫忙, 找到了 StackOverflow 這一篇 很快的就把它搞定了.

其實最重要的是裝了 pacman 之後呢, 發現有缺什麼工具或指令就可以直接安裝 MSYS2 的版本, 不必像以前那樣一定得找 Windows 原生的替代程式, 或是 GnuW32 的版本, 或是 Cygwin 的版本了.

註一: 後來發現原來是自己的搜尋方法不得當, 原來都在 MSYS2 的版本資料庫網站: http://repo.msys2.org/ 裡. orz

文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

今天在網上爬文, 無意間學到了 named initializer 這個到 C99 才出現的語法.

enum 的應用例子


先來看一個 enum 的應用例子:

#include <stdio.h>
void main()
{
        int i;
        enum month {JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,DEC};
        for (i=JAN; i<=DEC; i++)
                printf("\n%d",i);
}
文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

連結


上一篇: 嵌入式系統之軟體架構-1 (Software Architecture of Embedded System)

下一篇: 嵌入式系統之軟體架構-3 按鍵掃描

進化一: 定期執行 IO



上一篇在說明無窮迴圈時, 我們提到了使用 LED 和 keypad 的例子:

文章標籤

MagicJackTing 發表在 痞客邦 留言(1) 人氣()

C 語言的編譯器有一個內建的巨集 sizeof() 可以用來取得配置給變數的記憶體大小. 例如:

 uint32_t varX = 1234;
        int       size;

        size = sizeof(varX);

這樣變數 size 所存儲的數值就會是變數 varX 到底在電腦裡佔用了多大的記憶體. uint32_t 型態的變數 (沒有意外的話) 應該都會佔用 4 bytes.

文章標籤

MagicJackTing 發表在 痞客邦 留言(7) 人氣()

我們開發嵌入式系統時總會需要修修改改. 不管是個人獨自創作, 多人小組協同開發, 或者是多家公司聯合團隊, 甚至是跨國合作, 理所當然的必需要有一套好用的版本控制軟體, 才能事半功倍. 而 git 正是這樣一套好用的分散式版控軟體, 重點是它還是個免費的.

這一篇記的是如何讓 ARM 的官方開發工具 Keil µVision IDE 在編譯程式的時候自動git 取得版本資訊, 省去人工修改的麻煩.

發想



因為 Keil µVision IDE 可以讓使用者自訂在編譯 (compile) 程式之前和編譯完成之後呼叫指令或者是批次檔. 所以一開始我的想法是:

文章標籤

MagicJackTing 發表在 痞客邦 留言(1) 人氣()

JTAG vs. SWD/SWO


這幾年 Cortex-M 系列的 ARM 微控制器大行其道, 在開發工具上也有一些使用上的調整:

  • 以前的晶片除錯器 (debugger) 用的是 JTAG 介面標準, 可以多個 CPU/DSP 一起除錯.
  • Cortex-M 則主推 SWD 介面, 一個 debugger 一次只能除錯一個 MCU 晶片.
  • 以前 ITM 是標準配備, 現在則為選配.
  • SWD 介面還有另一個選配: SWO.

ITM 的晶片一般都可以繼續使用 JTAG 介面的除錯器. 有 SWO 功能則可以使用 trace tool 協助分析無法以單純設斷點可以找到的問題. 例如: STMicroelectronics 比較阿沙力, 所有 Cortex-M 系列的晶片都有內含 ITM, 也有 SWO 功能. 但是像 Nuvoton 的 Cortex-M MCU 則都只有 SWD (是的, 連 SWO 都沒有). 差別是:

  • STMicroelectronics 可以使用 JTAG 介面的除錯器, Nuvoton 則只能用 SWD 介面的除錯器.
  • 使用 Keil µVision 除錯時, semihost 的系統訊息一個是從原本的 'Debug (printf) Viewer' 視窗檢視 (由 View --> Serial Windows --> Debug (printf) Viewer 開啟). 沒有 ITM 的晶片則只能從虛擬的 'UART #1' 視窗檢視 (由 View --> Serial Windows --> UART #1 開啟)
  • SWO 可以輸出 Debug Trace Output 給 trace tool 分析問題. 沒有 SWO 則遇到難解的 bug, 只能用你的 '智力' 想辦法解決了.

關於 semihost


semihost 是開發 ARM MCU 應用時很好用的軟體工具. 硬體線路板上不必真的把 UART 的接腳接出來就可以由 debugger 接收 MCU 利用 printf() 吐出來的訊息 (除錯訊息或者系統訊息).

文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

通常, 嵌入式系統 (Embedded System) 都是為了執行特定工作/功能而設計的. 為了達成這些特定的任務, 系統會有一些必要的 IO 晶片/模組: (使用外加的 IO 晶片或者是 MCU 內建的 IO 模組)

  • 數位輸出/輸入類.
  • 類比輸出/輸入類.
  • 整合式的輸出/輸入模組.
    有些模組可能市場需求量很大, 或者會需要比較複雜的計算/控制, 或者和某些專利有關的, 它們有時會內含一顆 MCU 負責基本的訊號接收及計算再以特定的介面輸出(註一). 例如: GPS 模組, 或者內含三軸加速計, 三軸陀螺儀, 三軸磁力計 (電子羅盤) 的九軸 MEMS (Microelectromechanical Systems) 感測器模組, 有些模組還多了第十軸: 氣壓計. 這些模組經常是利用 MCU 的擴充匯流排介接, 例如: SPI 介面, I2C 介面. 也有少部份會以 UART 介面介接.
  • 傳輸擴充模組.
文章標籤

MagicJackTing 發表在 痞客邦 留言(1) 人氣()

早期的 PC 或 NB 為了要連接串列滑鼠數據機 (modem)以及印表機 都會加購 2S1P 介面卡 (2 個 Serial Port + 1 個 Parallel Port).

isa 2s1p

早先的 2S1P 介面卡 (ISA 介面)
圖片借用自 露天拍賣

文章標籤

MagicJackTing 發表在 痞客邦 留言(0) 人氣()

Close

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼