文章總列表

Embedded System Studying note 11/23

UART driver 弄得比想像中還要久一些
這支 driver 如果想要跑在 multi-tasking 的環境
而且速度要快, 必須搭配一個 ring buffer

為了要加速, 對 ring buffer 的存取要要最佳化
並且考慮 UART 硬體的限制
還有 Tera Term 的限制: 換行時, 要輸出 \n\r, 只輸出 \n 是不夠的

這部分的 driver 陸續修好了好幾次
終於有一個比較穩定的版本出來了


----


為了要讓我的 uC/OS II 有一個 shell 可以用
把先前開發完畢的 getopt() 拿來撰寫我的 shell
目前已經可以支援一些簡單的命令:

help Show this help
irq Show IRQ status, incluing IRQ name, # of ISR hooked, Call count
r1 Read 1-byte from memory
r2 Read 2-byte from memory
r4 Read 4-byte from memory
w1 Write 1-byte to memory
w2 Write 2-byte to memory
w4 Write 4-byte to memory

透過像這樣的命令列介面, 如果只是想看某個記憶體的數值
比起使用 Keil ARM 這樣的工具, 有時候更能直接的完成目的

其中 irq 工具會列出一張表, 紀錄所有中斷的狀態
這個是從公司的開發工具裡, 偷回來的 idea XD

寫這個 shell 的感覺很有意思, 很像在開發 DOS 作業系統裡的命令


----


USB 的部分, 我當然不會寫 Windows Driver...
好在有 LibUSB-Win32 這個好東西...

http://libusb-win32.sourceforge.net/
http://libusb.sourceforge.net/
http://www.jollen.org/blog/2008/01/libusb_hello_world.html

這東西真的有意思, 有了他, 不用自己寫 Windows Driver 也可以操控 USB 裝置

我靠 LibUSB 配 Visual C++ 6.0 寫了簡單的程式
成功的從 PC 丟了一些資訊到 ARM 裡面, 算是打通 USB 了


----


Todo:

1. Shell 可以想一想, 還要加些什麼功能進去
2. USB 底層的 driver (Hardware Abstration Layer) 有 OS 對應的 driver 再想一想, 寫得完整一點...
3. 思考一下, 我要拿 USB 來傳什麼
4. 研究 Windows MFC 程式要怎麼寫... 配上 USB driver 來做點東西...

留言

這個網誌中的熱門文章

STM32 UART + DMA,使用HAL實作TX/RX,以及不定長度接收

幼犬書桌椅選擇心得 升降桌 兒童桌椅

CANON G3000 廢墨瓶改裝