發表文章

目前顯示的是 八月, 2011的文章

Kscope使用教學

圖片
本文章將會簡單的說明如何使用Kscope的GUI,來讓你快速Trace Source Code,我將會用
Linux Kernel來做說明。

1.  首先下載Linux Kernel跟安裝好Kscope (Kscope不會安裝看我寫的教學
http://hamisme.blogspot.com/2011/02/kscope.html)

2. 開啟Terminal,並輸入kscopeapp按下Enter鍵,應該會看到以下的畫面





















3. 接著建立一個專案,所以請按New的按鈕

新的專案有幾個部份要設定:

Name        :  專案名稱Root Path  :  Source Code的目錄Project Configuration Directory : 這部份通常是不用去設定,這個目錄會存放Cscope跟Ctags還有Kscope所需要的檔案         
























4. 加入你要Trace的檔案,請按下Add的按鈕

































然後會跳到下面的對話方塊,因為Linux Kernel的code很多,所以需要點選Tree
這個功能我們才不需要一個檔案或一個目錄的慢慢加。

選擇Linux Kernel的目錄








等待Kscope將*.c 跟 *.h全找到

全找到了,數量可是很多的,有興趣可以一個一個慢慢看 ^ ^ ,好了就按下OK鍵

































這邊只是讓你看整個目錄的架構,所以也是按OK

































接著Kscope就會開始建立database來放我們之後要Trace code的資料













5. 好拉,要開始Trace code了,請先打開要Trace的檔案File->Open or 快速鍵 Ctrl+o
我這邊用/linux-2.6.38/driver/char/i8k.c做範例
當我不知道 I8K_SMM_FN_STATUS這個Macro定義的是什麼,也不想一個一個慢慢找,這時
將滑鼠移到這個Macro上,並且按下Ctrl+]這個快速鍵(還有其他搜尋的方法請看工具列的Query
快速鍵為Alt+Q)




























Kscope就會幫你找到了,當你要回到上一個檔案的話,就按Alt+Left( 其他快速鍵可以參考
工具列的Navigate,或快速鍵alt+N)

Titanium的安裝教學 for Android on Linux

圖片
這篇文章的內容就如同標題一樣,所以應該看標題就知道我要教什麼。Titanium是可以同時開發 iPhone以及Android手機的開發軟體,而且是用Javascript、Css和HTML就可以同時開發iPhone以及Android。當然這篇不會教你怎麼寫App,因為我也是剛接觸 ><  所以這邊只會教你如何在Linux底下安裝Titanium。


官方網站:http://www.appcelerator.com/products/titanium-mobile-application-development/

1.首先先去官方網站下載Titanium,首先要註冊appcelerator才能下載。

因為我的Linux是Ubuntu 11.04 x64的環境所以我下載了 titanium.linux.gtk.x86_64.zip這個檔案


2.解壓縮titanium.linux.gtk.x86_64.zip

$ unzip titanium.linux.gtk.x86_64.zip

3. 下載Android SDK

http://developer.android.com/sdk/index.html

$ wget http://dl.google.com/android/android-sdk_r12-linux_x86.tgz

4.解壓縮android-sdk_r12-linux_x86.tgz

$ tar zxvf android-sdk_r12-linux_x86.tgz

5.更新Android SDK

$ cd android-sdk/tools/
$ ./android

按下 Update All全部更新,因為更新的檔案還算多所以更新時間看網路的快慢


























6. 執行Titanium以及建立Mobile專案

當你解壓縮了 titanium.linux.gtk.x86_64.zip應該會看到Titanium Studio的目錄,所以進去Titanium Studio

$ cd Titanium\ Studio/
$ ./TitaniumStudio

執行了之後應該會跳出對話方塊要求你輸入在appcelerator註冊的email跟密碼,輸入完畢後應該會看到Titanium完整開啟。




















接著開啟專案File->New->Titanium Mobi…

HTML5在safari相關文章

HTML5 Device rotation範例

Ruby & Rail設定相關網站

CSS Webkit設定

Reference :
http://css-infos.net/properties/webkit.php
http://www.yuiblog.com/blog/2010/10/01/quick-tip-customizing-the-mobile-safari-tap-highlight-color/

http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariCSSRef/Introduction.html

* {
       -webkit-touch-callout: none;
       -webkit-tap-highlight-color: rgba(0,0,0,0);
       -webkit-text-size-adjust: none;
       -webkit-user-select: none;
}


Customizing the Mobile Safari tap highlight color
 -webkit-tap-highlight-color: rgba(0,0,0,0);  // 將tap highlight color設為看不見
不懂意思的話,可以用IPhone or IPad的 Safari來看
http://dl.dropbox.com/u/131998/yui/demos/webkit-tap-highlight/index.html

 -webkit-user-select: none;  //將複製跟貼上的動作取消掉

Linux Kernel Module的教學網站

在Ubuntu下寫Linux Kernel驅動程式的心的

OS                   :  Ubuntu 10.04
Linux Kernel :  2.6.32-28-generic

        最近在Ubuntu開始寫Linux Device Driver,首先遇到的一個問題就是當我寫好了一個簡單
的Driver,也下載了 2.6.32-28的kernel並且將我寫得Driver丟進去編譯,一個簡單的Driver當然
編譯過程都沒有任何的錯誤也編出了ko檔,但是呢?當我用insmod的指令去掛載我的Driver這
時出現了一個錯誤訊息:

insmod: error inserting 'test.ko': -1 Invalid module format

        我一開始也不太懂為什麼這樣的問題是怎樣,後來我就想了一下會不會是我的OS的Kernel
根本不認識我的驅動程式,所以我就開始重新編譯OS的Kernel,並且將我的Driver也加上去(
我是寫一個字元裝置"char device",所以我的Driver放在kernel/drivers/char/底下,記得要去編輯
kernel/drivers/char/底下Kconfig跟Makefile,還有在做make menuconfig的時候自己Driver的選項
必須設在M,如果你設在Y那Driver可是不能用rmmod去將Driver給卸載掉與不能用insmod重新
安裝新的driver上去,這部份我有空在寫文章做個簡單的教學)。

        所以我在重新編譯之後,也將kernel換上去,進入:

/lib/modules/2.6.32-33-core3/kernel/drivers/char/

        應該可以看見你所寫得Driver了,記得用insmod去安裝上去,然後在用dmesg看看kernel有
沒有吐出什麼訊息。還有記得用cat /proc/device 跟lsmod來看看你的Driver有沒有安裝成功。


P.S.  至於如何重新編譯Ubuntu的kernel記得看我寫得Ubuntu 10.04 重新編譯Kernel