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

Asterisk-強悍的PBX平台

小弟最近都在研究VoIP的東西,在看過幾家VoIP chip vendor的solution後,其中有一樣軟體引起我的興趣,就是Asterisk,它跟SIP proxy server的優缺點比較我等會再講,先對這個軟體做個小實驗

下載和安裝
Asterisk可在其
官方網站下載,而安裝的方法很簡單,只要依照順序下configure,make,make install就可以了,而執行時請下asterisk –vvvc,就可以看到執行的過程和執行完後的console畫面(CLI)

[閱讀全文]

標籤: software linux
07
23

QEMU之奇怪體驗-Serial輸出篇

經過上次jserv網友提醒後,小弟就趁今天空檔動手下去看看能不能解決之前奇怪的問題,結果發現還是不能即時把printk的訊息秀在console上,底下是我做實驗的步驟

QEMU-Console設定


在QEMU on-line文件中有提到,模擬serial只需要設定選項-serial即可,而在它的說明中有很重要的一段我截錄如下
This option can be used several

[閱讀全文]

標籤: linux
07
10

Linux虛擬機器-QEMU初體驗

QEMU是這兩年相當火熱的一個話題,我第一次看到相關的報導,是在PTT的小軟體版,那時對這個東西的印像其實並沒有這麼深刻,”反正不過又是另一個VMWARE罷了”,我心裡這樣想著

可是後來在搜尋kernel debug相關的文章時,QEMU老是出現在搜尋的列表裡面,看了這些文章,才慢慢開啟我對它的興趣,原來kernel tracing可以這麼簡單

QEMU的特點就是內建GDBSERVER, GDBClient透過stub可以跟QEMU的GDBSERVER交換訊息,所以可以設任意的中斷點在kernel souce的任一個地方,讓使用者觀察cpu register和相關的程式執行狀態

下面這篇文章,就是在講解我做linux kernel tracing實驗的過程

[閱讀全文]

標籤: linux
07
08

檢查程式記憶體的小工具-valgrind

一般檢查memory leak的工具不外乎如electric fence, leak tracer…等,但大部份的工具在使用上都很麻煩,必需重編你的程式並連結這些debug工具的library,開什麼玩笑,為了這樣我還要改Makefile…!@#$神經病

最近發現了一個小巧且功能還不算太簡陋,又很適合懶人使用的memory leak工具,它就是valgrind.在詳細說明

[閱讀全文]

標籤: linux
07
02

Linux porting on different platform HowTo(完)

底下是操作的流程與貼圖,請先下載qt2410 noMMU image pack

(1)燒錄u-boot.bin(made by armzone
(2)開啟本機端的tftp server,並把image都擺在tftp的家目錄

(3)u-boot開機完後請在命列輸入run wkf(write kernel to nand flash and load file system)

[閱讀全文]

標籤: embedded
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