跳到主要內容

發表文章

目前顯示的是 2015的文章

[Qt][Embedded][PXA270]
Porting Qt 4.8.6 for Creator XScale PXA270

這篇文章介紹這學期我在嵌入式作業系統課程,使用Creator XScale PXA270板子的一些學習筆記與製作final project的一些過程,歡迎各位多多指教~ 背景介紹 Creator XScale PXA270開發版是一塊由 新華電腦(microtime) 公司出品的 模組化XScale/ARM/SoC/FPGA/DSP嵌入式行動通訊發展平台 ,在此課程與final project主要使用的是"Create XScale‐PXA270 子板"與"MTLCD‐0708048 LCD Module",在Create XScale‐PXA270子板上的為Intel(現在已出售給Marvell)的 Xscale系列 PXA270 處理器,基於ARMv5TE架構指令集,在旁附有SDRAM Memory 64MB、Flash Memory 32MB、SD Card Connectors、RJ45 10/100 Base‐T Ethernet Interface、USB 1.1 Device/Host Port各一、AC97 Audio Codec(Line_in、Mic_in、Headphone)、ADC Interface*4、PWM Interface、CMOS Camera Interface、TFT-LCD Interface、GPIO Interface...等;在軟體功能部分,由新華科技提供了GNU GCC cross compiler toolchain(arm-unknown-linux-gnu-gcc 4.0.2)、Uboot 1.1.5、Linux Kernel 2.6.15.3與patch(提供支援子板上的Ethernet、USB Host、TFT‐LCD(Frame buffer、Touch Screen)、AC97‐Codec...等與母板LED、7‐Seg LED、Key Pad...等的device driver)、rootfs,相關的實驗環境設定可以參考 User Guide 。 看到以上這麼多的軟硬體介面,別以為這板子有多強,其實這是 2006 年 ASUS P535 手機使用的規格了,不禁讓人感嘆科技進步之快阿~ 在此附上開發版本尊 Qt 是自由且開放原始碼的跨平台C...

[Qt][Embedded][PXA270]
[Audio Codec][ALSA][alsa-lib][OSS][madplay]
支援Audio Codec: 關於Qt 4.8.6的AudioOutput與Creator XScale PXA270的聲音輸出之兩三事

這篇文章原本預計是在Qt 4.8.6上支援Audio輸出,在Qt 4.8.6上的聲音輸出使用的是 ALSA (Advanced Linux Sound Architecture)的user-space library: alsa-lib來操作硬體裝置輸出聲音,然而後來因為缺乏alsa.conf的問題,於是改用回舊版Linux Sound System: OSS (Open Sound System)搭配madplay來操作硬體裝置輸出聲音,以下紀錄在Creator XScale PXA270支援Audio Codec到處踩雷的一些過程,歡迎各位多多指教~ Qt與ALSA Qt的Audio輸出在multimedia模組內的audio部分(src/multimedia/audio),其中qaudiodevicefactory.cpp可以明顯看出在linux平台上,使用的是ALSA: #ifndef QT_NO_AUDIO_BACKEND #if defined(Q_OS_WIN) #include "qaudiodeviceinfo_win32_p.h" #include "qaudiooutput_win32_p.h" #include "qaudioinput_win32_p.h" #elif defined(Q_OS_MAC) #include "qaudiodeviceinfo_mac_p.h" #include "qaudiooutput_mac_p.h" #include "qaudioinput_mac_p.h" #elif defined(HAS_ALSA) #include "qaudiodeviceinfo_alsa_p.h" #include "qaudiooutput_alsa_p.h" #include "qaudioinput_alsa_p.h" #elif defined(Q_OS_SYMBIAN) #include "qaudiodeviceinfo_symbian_p.h" #include "qaudiooutput_...

[Qt][Embedded][PXA270][Touch Screen][tslib]
在Qt 4.8.6 for Creator XScale PXA270支援觸控螢幕

這篇文章介紹在Qt 4.8.6 for Creator XScale PXA270上支援觸控螢幕一些過程,歡迎各位多多指教~ 背景介紹 上一篇文章 Porting Qt 4.8.6 for Creator XScale PXA270介 紹如何cross compile Qt 4.8.6 此篇接續該篇的結果繼續說明支援觸控螢幕的步驟 首先拜問Google大神,尋找參考資料: 官方文件提供了詳細的說明:  Qt for Embedded Linux Pointer Handling 甚至有論文( Wang Xibo; Yang Jianan, "Add Touch Screen Support for QT/Embedded," in  Computer Science-Technology and Applications, 2009. IFCSTA '09. International Forum on  , vol.3, no., pp.303-306, 25-27 Dec. 2009 doi: 10.1109/IFCSTA.2009.314 )專門討論如何在Qt上支援觸控螢幕... 在這裡我們使用官網的Tslib Mouse Driver方案!! Tslib,顧名思義就是Touch Screen Library(此句來源: 小耕的隨手筆記: TSLIB on Android gingerbread ),提供觸控螢幕矯正、過濾雜訊...等功能,據資料指出Android也有使用到該library,詳細資訊可以看作者github的README: https://github.com/kergoth/tslib 加入與修改tslib 由Github下載tslib-1.1版、解壓縮並進行修改 wget https://github.com/kergoth/tslib/archive/1.1.tar.gz tar zxvf 1.1.tar.gz cd tslib-1.1/ 修改一 、首先是修改etc/ts.conf,將第二行module_raw input取消註解 # Uncomment if you wish to use the linux input layer event interface mod...

[Arduino]Inside Arduino: 分析Andes Andino M1的系統核心

這篇文章以Andes Andino M1為例,探索Arduino的系統組成,揭開Arduino的神秘面紗。 歡迎各位多多指教~ 順帶一提 使用SSD的朋友們,為了減少占用C槽的空間,可以將你的Arduino IDE在安裝時選擇裝到D:下 然而,preference設定檔位置似乎無法修改路徑,在安裝新的板子時,toolchain等檔案會佔用不少C槽空間,因此可以在Windows建立以下連結,將檔案存放到D:再link回來歐~ mklink /d "C:\Users\使用者\AppData\Local\Arduino15" "D:\Program Files\Arduino\Arduino15" 另外,以下貼程式碼部分使用的是Google Code Prettify,有興趣的人自己Google啦~ 直攻核心 以下用${P}代表preference設定檔位置的省略(preference設定檔位置在前一篇介紹過) 在Andino M1的board support package,其架構分為: ${P}\packages\Andino\hardware有nds32\1.6.5資料夾存放與板子相關的Arduino系統核心程式碼 ${P}\packages\Andino\tools有m2c_burner\0.0.1與nds32le-elf-mculib-v3m\4.0.3分別為燒錄程式與toolchain 如同上一篇提到的,main.cpp出現在${P}\packages\Andino\hardware\nds32\1.6.5\cores\arduino\main.cpp 因此我們由這個Arduino系統核心程式碼main.cpp開始看起 #include "Arduino.h" HardwareSerial Serial(UART0); HardwareSerial Serial1(UART1); int main( void ) { System_init(); TIMER1_init(); setup(); for (;;) { loop(); } return 0; } 在以上程式碼中,L...

[Arduino]Inside Arduino: Andes Andino M1

這篇文章記錄了最近探索Arduino與 台灣晶心科技Andes出的Andino M1('Andino'沒打錯!!他真的叫這名字)相容Arduino的IoT板子 的一些hacking與紀錄,歡迎各位多多指教~ 先來看看本尊 是的就是它!!小小一片 吐槽一下,在下圖看到橘框處竟然看到ARM Cortex-M3,不過在這邊這顆ARM似乎只拿來處理介面轉換,不然就都用這顆ARM應該效能更好? XDD 下載與安裝Arduino IDE 請到官網下載Arduino IDE https://www.arduino.cc/en/Main/Software?setlang=en 如果是使用Andes Andino M1,請務必下載Windows平台的 因為目前board support package只支援windows版... Arduino Board Manger 下載安裝好之後,接下來是加入Andes Andino M1的board support到Arduino 這邊有一個很重要的雷點!!!就是 Editor language務必要設為English ( 紅框處 ,預設使用Windows系統預設語言),否則在開啟Board Manger時會出現java.lang.RuntimeException: java.lang.IllegalArgumentException: Unmatched braces in the pattern.的錯誤訊息 在Additional Board Manger URLs中,輸入(橘框處): http://knect.me/andino/M1/package_Andino_knectme_index.json 然後按OK,到board manger按instasll安裝(點紅框處會出現按鈕): 安裝成功後,會看到有Andino M1可選(紫框處) 關於package_Andino_knectme_index.json的原理,我們可以看到在這個json檔案內,定義了platform與tools的資訊,Arduino會在開啟Board Manger時,去下載讀取所有使用者額外新增的json網址,然後在按下安裝時去下載於該檔內定義的toolchain,這...