瀏覽模式: 普通 | 列表
07
02

Linux porting on different platform HowTo(5)

如果要讓kernel自解壓縮時把訊息印在console,那只要寫下列函式即可
(1)console initial函式
(2)putc函式
這兩個函式是獨立於driver之外的特殊函式,在編譯kernel時,當編譯到misc.c,會把以下這幾個函式編進去

[閱讀全文]

標籤: embedded
07
01

Linux porting on different platform HowTo(4)

修改完我之前講過的irq,timer後,渡過了一段console沒有字的debug時間,從頭到尾都用ICE去trace是很悶的,現下我把console的程式碼加上,讓console跑點字出來吧

Kernel所有的訊息都是印在console上的,所以在kernel用printk其實等於直接把buffer content倒在console

但user space的application可不是這樣,當printf印訊息時,其實是透過tty driver呼叫我們的serial driver然後請serial driver幫忙印字

藉由上面的介紹,大概瞭解console driver會用到serial driver的write函式,而serial driver也必需跟tty driver註冊自己

[閱讀全文]

標籤: embedded
07
01

Linux porting on different platform HowTo(3)

QT2410的timer一共四組,我這邊先略過timer詳細的操作步驟,相關資料在網路上都可以找得到,而timer範例程式碼可參考我之前寫的qt2410 bootloader

打開arch/arm/mach-qt2410/time2410.c,可看到如下程式碼
  1. struct sys_timer qt2410_timer = {
  2.         .init           = qt2410_time_init,
  3.         .offset         = qt2410_gettimeoffset,
  4. };

[閱讀全文]

標籤: embedded
07
01

Linux porting on different platform HowTo(2)

承之前的文章, Linux porting的步驟如下所示
1.根據你的平台和相關硬體,找出一個跟此結構最相似的architecture
2.拷貝這個結構的硬體範本到新結構的目錄下.通常只需拷貝以下幾個資料夾
  <1>arch/xxx/mach-xxx
  <2>include/arch/xxx/mach-xxx
3.試著編譯新架構並修改相關的define和Kconfig檔案
上面的步驟完成後,你已經有一個新架構的殼在那裡了

[閱讀全文]

標籤: embedded
06
20

Linux porting on different platform HowTo(1)

這篇主要是介紹如何porting Linux到不同platform的步驟,並且把該修改的檔案和kernel該選的選項稍微介紹一下,會順代提一下debug的方式

因為小弟最近在忙其它的專案,所以這篇HowTo我把它分成幾個部份分開發表,而我打算以NoMMU的QT2410 Linux做為此次移植的目標.

[閱讀全文]

標籤: embedded
06
09

不錯的Python電子書

最近找到一些不錯的python資料,底下由淺至深的把這些資料條列出來

Essential python: 大陸網友寫的python入門書,不是網路上的那本tutorial,裡面的內容我覺得跟tutorial不相上下,易學易懂

Python library reference:它把python library一一條列剖析,不管那個api,都可在這本書裡面找到,再加上有詳細易懂的範例,實是不可或缺的pyt

[閱讀全文]

標籤: python
05
30

強大的檔案控管機制-Inotify

在講到inotify這個機制前,可能要說一下它的使用限制,如果OS不是用LINUX,請按上一頁,再者如果Linux版本不是2.6.13以上,也請按上一頁,如果OS條件都符合以上兩項,請繼續往下看

什麼是inotify
我截錄一段inotify創作人Rober Love在Linux Journal上所說的一段話
inotify is a file change notification system—a kernel feature that allows applications to request the monitoring of a set of files against a list of events. When the event occurs, the application is notified. To be useful, such a feature must be simple to use, lightweight with little overhead and flexible. It should be easy to add new watches and painless to receive notification of events.
上面那段話簡單的來說,inotify可以幫助你即時的觀測檔案的改變,並回送通知給你,而inotify把檔案狀態的變化分為以下十類

[閱讀全文]

標籤: linux
05
29

Porting U-BOOT for NAND booting in 2 days

開發環境: CentOS5
第一天早上(toolchain preparation and compile u-boot):
1.下載ELDK4.1
   我下載的版本是 arm-linux-x86-uclibc. 底下是它的連結.

      
ftp://ftp.denx.de/pub/eldk/4.1/arm-linux-x86-uclibc/iso/arm-2007-01-22-uclibc-src.iso
2. Install ELDK4.1
     用指令“install –d directory [cpu family]”安裝ELDK. 舉例來說, 輸入 “install –d /usr/local/eldk arm”
3. 下載 並解壓縮U-BOOT 1.3.2
   
ftp://ftp.denx.de/pub/u-boot/u-boot-1.3.2.tar.bz2
    輸入指令"tar jxvf u-boot-1.3.2.tar.bz2"
4. 編譯 U-BOOT 1.3.2
    進入 u-boot-1.3.2 的目錄, 輸入 “make smdk2410_config” 然候再輸入 “make all”
    I如果成功的話, 你會看到u-boot(elf image) 和u-boot.bin(binary  image)在u-boot的資料夾下
    

[閱讀全文]

標籤: embedded