2010年5月31日 星期一
2010年5月26日 星期三
Linux Device Driver Review
1. 影響driver運行機制的因素只有2種: (1). fork child process (2)pthread programming.
2. open system call 的主要用途在於初始化硬體。
3. struct file 為kernel提供出來給driver function使用,只能在kernel mode 下使用。
4. 設計driver的第一件事情是設計 file operation,user program 開啟裝置檔 -> VFS透過major # 開啟相映的裝置檔->user program 呼叫driver提供的system call。
5. kernel 會將struct file allocate 到 一個stack中,所有的kernel module 都可以存取得到。
6. read driver code 的技巧是 先了解一個區塊的code其功用,再去深入了解API等detail部分,千萬別直接深入細節部分。
7. 使用到 copy_to_user 、 copy_from_user、kmalloc 等API之函數(ex: open 、read 、write...)必須是可重覆進入函數。
8. running 狀態下的 user space process 將時間用完之後,會被重新放回至ready queue。
9. 依照硬體特性決定使用kernel timer 或 interrupt handler 。
10. sleep 中的process 在wake up 之後會先進入ready queue,並不會馬上進入執行。
11. sysfs 的概念在2.6才引進嗎? 是否改變了driver的架構。
12. make uImage 時會在kernel folder下 include/config/產生auto.conf在 kernel folder 下 include/linux/產生 autoconf.h 。
13. bash shell 將stdin --> 0 stdout --> 1 stderr --> 2 , 因此當fd = fopen(), 後fd會有3種value的可能。
2. open system call 的主要用途在於初始化硬體。
3. struct file 為kernel提供出來給driver function使用,只能在kernel mode 下使用。
4. 設計driver的第一件事情是設計 file operation,user program 開啟裝置檔 -> VFS透過major # 開啟相映的裝置檔->user program 呼叫driver提供的system call。
5. kernel 會將struct file allocate 到 一個stack中,所有的kernel module 都可以存取得到。
6. read driver code 的技巧是 先了解一個區塊的code其功用,再去深入了解API等detail部分,千萬別直接深入細節部分。
7. 使用到 copy_to_user 、 copy_from_user、kmalloc 等API之函數(ex: open 、read 、write...)必須是可重覆進入函數。
8. running 狀態下的 user space process 將時間用完之後,會被重新放回至ready queue。
9. 依照硬體特性決定使用kernel timer 或 interrupt handler 。
10. sleep 中的process 在wake up 之後會先進入ready queue,並不會馬上進入執行。
11. sysfs 的概念在2.6才引進嗎? 是否改變了driver的架構。
12. make uImage 時會在kernel folder下 include/config/產生auto.conf在 kernel folder 下 include/linux/產生 autoconf.h 。
13. bash shell 將stdin --> 0 stdout --> 1 stderr --> 2 , 因此當fd = fopen(), 後fd會有3種value的可能。
2010年5月25日 星期二
幾個討論Bootloader的文章
1.探索 Linux bootloader 的佳作: http://blog.linux.org.tw/~jserv/archives/001840.html
2. 崁入式系統 Bootloader 內幕: http://www.ibm.com/developerworks/cn/linux/l-btloader/
3. U-Boot : http://www.denx.de/wiki/U-Boot
2. 崁入式系統 Bootloader 內幕: http://www.ibm.com/developerworks/cn/linux/l-btloader/
3. U-Boot : http://www.denx.de/wiki/U-Boot
2010年5月24日 星期一
2010年5月22日 星期六
2010年5月21日 星期五
2010年5月20日 星期四
2010年5月19日 星期三
什麼是firmware?
韌體(firmware),是一種嵌入在電腦硬體裝置中的軟體。通常它是位於快閃記憶體中,而且可以讓使用者更新。韌體的範例包括,個人電腦中的BIOS、在唯讀記憶體中的電腦程式(硬體的設定通常用軟體的方式來表示),或是在可程式化唯讀記憶體中,這些程式可以被特別的外部硬體來更改,而不是經由應用程式更新。
原文連結: http://www.eettaiwan.com/SEARCH/ART/firmware.HTM
中文Wiki : http://zh.wikipedia.org/zh-tw/Firmware
英文Wiki: http://en.wikipedia.org/wiki/Firmware
原文連結: http://www.eettaiwan.com/SEARCH/ART/firmware.HTM
中文Wiki : http://zh.wikipedia.org/zh-tw/Firmware
英文Wiki: http://en.wikipedia.org/wiki/Firmware
Bootchart
1. 原文連結: http://www.bootchart.org/
2. 砍掉重練的Bootchart: http://fred-zone.blogspot.com/2008/07/bootchart.html
2. 砍掉重練的Bootchart: http://fred-zone.blogspot.com/2008/07/bootchart.html
2010年5月18日 星期二
2010年5月17日 星期一
2010年5月14日 星期五
2010年5月13日 星期四
2010年5月11日 星期二
2010年5月8日 星期六
2010年5月7日 星期五
ctags 教學網頁
1. 網頁連結: http://rickey-nctu.blogspot.com/2009/02/vim-srcexpl.html
2. 听峰's Blog: http://blog.verycd.com/yoyopub/cat=4095
3. 史丹利's Blog: http://stenlyho.blogspot.com/2010/03/vim-trinity-source-explorer-tag-list.html
4. 原文教學: http://cscope.sourceforge.net/large_projects.html
5. cscope 教學: http://vimcdoc.sourceforge.net/doc/if_cscop.html#:scscope
6. 快速setup ctags 與 cscope: link.
2. 听峰's Blog: http://blog.verycd.com/yoyopub/cat=4095
3. 史丹利's Blog: http://stenlyho.blogspot.com/2010/03/vim-trinity-source-explorer-tag-list.html
4. 原文教學: http://cscope.sourceforge.net/large_projects.html
5. cscope 教學: http://vimcdoc.sourceforge.net/doc/if_cscop.html#:scscope
6. 快速setup ctags 與 cscope: link.
2010年5月6日 星期四
2010年5月5日 星期三
2010年5月4日 星期二
2010年5月3日 星期一
2010年5月2日 星期日
2010年5月1日 星期六
訂閱:
意見 (Atom)