|
08 26 |
|
記得之前在面試某家CHIP Vendor時,面試官對我之前寫過的(應該是抄過的)S3C4510b網路驅動程式很有興趣,他很詳細的問我每個流程,而且還不准我看資料必需馬上回答他,說老實話,S3C4510B的網卡驅動有點小複雜,再加上我已經有一段時間(2,3年)沒碰S3C4510B,整個驅動的細節幾乎都忘了,不過我還記得我開發S3C4510B driver的大概流程
首先針對開發板寫driver時,我都會用ADS搭ICE寫Boot code開始,然後再一步一步新增driver code測試,像4510b上面的UART, nor flash, network,都是慢慢堆積起來的,而這樣邊寫邊看datasheet會讓自己學到很多東西,我覺得一開始寫driver的環境最好不要搭OS,用最乾淨的環境測試,問題會少很多,只要專注在硬體控制就可以了,而且實驗板大部份都通過QC,需要請示波器出來的情況幾乎沒有
|
08 22 |
|
會想寫這個東西的介紹是因為之前在酷學園看到有人提到如何在embedded system上做firmware upgrade, firmware upgrade每家公司的做法都不一樣,但目標都差不多,不外乎bootloader , linux kernel , file system upgrade,有強一點的公司還有做upgrade failure save的功能,而我這邊舉一個很簡單的例子,示範如何在embedded device上做linux kernel的upgrade,並且用jffs2 file system當我們的根檔案系統
JFFS2自2.6開始支援NAND Flash, NAND Flash與NOR Flash的設計理念差很多,為了cost down, NAND flash減少了在NOR Flash上不必要的位址線,改為page read/write方式存取,以QT2410的NAND Flash為例,一次的讀/寫,都是以512 byte為單位,所以Linux為了NAND Flash新增了NFTL(NAND Flash Transition Layer),NFTL最主要的目的,是讓EXT2,EXT3...等不是FLASH專屬的file system讀寫nand flash,而JFFS2或YAFFS都可以不透過NFTL進行FLASH read/write(2009.1.19修改),而細節部份小弟不多說了,google一找都一堆資料
|
08 21 |
|
網路上有一堆介紹如何使用它的文章,所以我這邊就不重覆了,而我這篇主要的目的是為了記錄在設定CentOS-Base.repo時碰到的問題,第一個碰到的問題是如何找到國內有提供yum update的站台,第二個問題是如果公司有設防火牆擋部份http通訊,該如何處理
在眾多介紹yum的文章中,我挑選了ftp2.tnc.edu.tw,這是國內少數有提供yum update service並且也還存活的站臺,當然,除了http之外,它也提供ftp傳輸的功能,所以我的CentOS-Base.repo檔的內容就可寫成如下
|
08 19 |
|
|
07 24 |
|
|
07 23 |
|
|
07 10 |
|
QEMU是這兩年相當火熱的一個話題,我第一次看到相關的報導,是在PTT的小軟體版,那時對這個東西的印像其實並沒有這麼深刻,”反正不過又是另一個VMWARE罷了”,我心裡這樣想著
可是後來在搜尋kernel debug相關的文章時,QEMU老是出現在搜尋的列表裡面,看了這些文章,才慢慢開啟我對它的興趣,原來kernel tracing可以這麼簡單
QEMU的特點就是內建GDBSERVER, GDBClient透過stub可以跟QEMU的GDBSERVER交換訊息,所以可以設任意的中斷點在kernel souce的任一個地方,讓使用者觀察cpu register和相關的程式執行狀態
下面這篇文章,就是在講解我做linux kernel tracing實驗的過程
|
07 08 |
|
一般檢查memory leak的工具不外乎如electric fence, leak tracer…等,但大部份的工具在使用上都很麻煩,必需重編你的程式並連結這些debug工具的library,開什麼玩笑,為了這樣我還要改Makefile…!@#$神經病
最近發現了一個小巧且功能還不算太簡陋,又很適合懶人使用的memory leak工具,它就是valgrind.在詳細說明

