公告版位
2012/9/12 開始每週三的父子時間!!

目前分類:韌體設計 (6)

瀏覽方式: 標題列表 簡短摘要

近來在撰寫 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 這個服務。


ccchiu 發表在 痞客邦 PIXNET 留言(0) 人氣()

學習  make file 的撰寫,一開始就出師不利。

執行 make -f makefile01 時,就出現下列錯誤訊息:

makefile01:2: *** missing separator.  Stop.

查詢後,發現後原來是因為 makefile01 中,gcc -c mymath.c;gcc 前面不可使用空格,一定要使用 tab 開始。



ccchiu 發表在 痞客邦 PIXNET 留言(0) 人氣()

簡單說哩,透過設定 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 的作業系統。進入後,設定參數即可。


ccchiu 發表在 痞客邦 PIXNET 留言(0) 人氣()

轉載自 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.

 

ccchiu 發表在 痞客邦 PIXNET 留言(0) 人氣()

Referenced Material


ccchiu 發表在 痞客邦 PIXNET 留言(0) 人氣()

轉載自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 需求一定不得了。我上述的那個問題就發生了。我列一張表格您可以看看:

ccchiu 發表在 痞客邦 PIXNET 留言(0) 人氣()