近來在撰寫 led 的控制程式,但執行該程式所產生的執行檔似乎不太給面子。怎麼說勒,因為 led 並沒有依照我的想法作變化。mini2440 上面的 led 依然故我的在那邊作他自己的動作,我也不曉得是為什麼。透過網路搜尋網友的經驗,才發現原來是 embidded linux 上的 service 搞的鬼。
實際查了一下 linux 上的設定,的確在 /etc/init.d/rcS 檔案中確實有起動 leds 這個 service。也因為那個 service ,讓 leds 自己玩得很開心。此外,我們也可以透過 /etc/rc.d/init.d/leds 這個服務來 Start/Stop 該 service。
如此一來,總算找到兇手。所以勒,執行 led 控制程式前,要記得先將該 service 關掉。或者直接修改 /etc/init.d/rcS 裡的設定,讓系統不要一起動就執行 leds 這個服務。
公告版位
目前分類:韌體設計 (6)
- Jul 03 Fri 2009 08:35
led 程式設計 - 前篇
- Jun 21 Sun 2009 16:33
missing separator. Stop.
學習 make file 的撰寫,一開始就出師不利。
執行 make -f makefile01 時,就出現下列錯誤訊息:
makefile01:2: *** missing separator. Stop.
查詢後,發現後原來是因為 makefile01 中,gcc -c mymath.c;gcc 前面不可使用空格,一定要使用 tab 開始。
- Jun 18 Thu 2009 00:14
mini2440 - 透過 NFS 啟動系統
簡單說哩,透過設定 mini2440 super vivi 的參數。可以讓 mini2440 連接到指定位置的 NFS,並啟動該 NFS 裡的 Linux OS。
紀錄一下步驟:
1. 設定 ubuntu
預設的 ubuntu 並沒有安裝 nfs server ,並需安裝 nfs server 套件。安裝完成後,再設定 /etc/export 將 Linux OS 的目錄分享
2. 設定 mini2440
先將 mini2440 透過 nand flas 啟動,於啟動時按空白鍵來進入 super vivi 的作業系統。進入後,設定參數即可。
- Apr 27 Mon 2009 15:56
Introduction to SimpleScalar
轉載自 http://www.ecs.umass.edu/ece/koren/architecture/Simplescalar/SimpleScalar_introduction.htm
Introduction to SimpleScalar
SimpleScalar (http://www.simplescalar.com) is an open source computer architecture simulator developed by Todd Austin (http://www.eecs.umich.edu/~taustin/) while he was a PhD student at the University of Wisconsin Madison.
It is a simulator, which in simple words means that it can be used to show that Machine A is better than Machine B without building either Machine A or Machine B. It is written using ‘C’ programming language.
SimpleScalar is a set of tools that model a virtual computer system with CPU, Cache and Memory Hierarchy. Using the SimpleScalar tools, users can build modeling applications that simulate real programs running on a range of modern processors and systems. The tool set includes sample simulators ranging from a fast functional simulator to a detailed, dynamically scheduled processor model that supports non-blocking caches, speculative execution, and state-of-the-art branch prediction. In addition to simulators, the SimpleScalar tool set includes performance visualization tools, statistical analysis resources, and debug and verification infrastructure.
- Apr 25 Sat 2009 16:31
Referenced Material for Embedded System
Referenced Material
- Source Code and Tracing Tools
- Books
- Linux Assembly
- C Language and C Preprocessor
- System Call
- Fedora Core 6
- Other Versions
- Linux System Call Howto
- How to Add a New System Call to Linux (Please read the following article also.)
- Supplement to the above system call article
- Kernel Debugging
- The linux-kernel mailing list FAQ
- Kernel Rebuild Guide
- System call optimization with the SYSENTER instruction
- Per-CPU Variables
- IA-32 Intel Architecture Software Developer's Manuals.
- Linux i386 Boot Code HOWTO
- Understanding The Linux Virtual Memory Manager
- Apr 16 Thu 2009 09:07
您是寫韌體呢?還是在寫軟體呢?!
轉載自http://chamberplus.myweb.hinet.net/misc_1.htm
剛接觸寫韌體的工程師,往往可能是以前是寫個人電腦的應用軟體的機會很多,或許,現在寫韌體的工程師越來越少呢?還是現在寫單晶片的系統工具比較好呢?所 以,許多寫韌體工程師所受的韌體程式訓練或機會不多,一上機寫韌體,就當作寫個人電腦的程式一般的寫法,一路往下寫。其實,我沒有說這樣子不行,但是,當 您看完我這篇文章之後,或許,您會有不同的看法?
我以前看或寫引擎控制程式都是組合語言,後來寫掃描器的韌體或是USB也都是組語。當然,以這些工作機會,是用不到 8051 的C組譯器(Keil C)。但那時,KEIL C 也剛推出整合性高階語言的開發環境,我就自學把KEIL C學起來。後來很巧,我接了MP3 系統開發計畫時,就剛好派上用場,這件事讓我體會到一點:技能總是在工作中磨練,但若是未來您可能會接觸到的,您可能要提早自己自學,這樣子,等機會一來,您就比別人多一份機會了。就像投資您自己一樣,像這種屬於基本技能的東西,還是得好好的投資一下自己。
寫MP3 系統程式,因為牽涉許多DOS File system 的東西,用C寫的確是比較快一點,但卻也發現用高階C寫韌體的許多盲點。後來,看到公司內有一些部門在招一些寫韌體工程師時,竟也以資訊系為優先考量,結 果整個部門幾乎都是寫軟體出身的韌體發展部門?結果是什麼呢?開給IC設計部門的規格,所需求的記憶體空間就大到很難想像?8051 要寫到 1MBytes ?! 真是很誇張,對工程師來說:寫不出精緻的韌體,剩下的便是作苦工的寫程式。不知您是否可以體會到這點?!
什麼是精緻的韌體?我想您寫韌體在上機前,做了多少前置準備動作?還是,接到一個案子就批哩叭啦的從第一行往下寫?其實,寫韌體最難能可貴就是它是一份系統整合工作。除了程式語言以外,就是您對系統他所展現的專業知識。這話怎麼說?譬如說:當您寫完引擎控制程式後,您不只知道引擎控制韌體怎麼寫而已,還深深的體會到引擎機械系統的瞭解。我常常說:您作一行就是要入一行。所謂入一行,不是會寫寫基本程式而已,您還能體會到那一行的種種問題。這樣子,您才能出奇制勝,當然啊。當您要換工作時,您就會明明白白的知道您為什麼會離開原來的那一行?
好~我就舉一兩個例子來說明這件事情:
首先,您還記得我在單晶片與引擎控制 (二)--- 數學篇 中舉的例子嗎?
針對引擎的轉速,您是用一個integer 來宣告 呢?還是用 八位元的255 來表示呢?若您是寫軟體出身的,鐵定一定是用 Integer 來宣告,那因為在引擎控制系統中會用到許多這個變數,包括許多查表功能,那您查表公式是不是也是一路用integer 來運算呢?!結果當然對CPU執行效率或變數memory 需求一定不得了。我上述的那個問題就發生了。我列一張表格您可以看看: