2011年5月12日 星期四

NAS+Smart Phone應用方法評估

最近Bee在評估Smart Phone並利用它和家中的動物機架互連的方法。
先實驗在動物機上架FTP Server。這個不難,只是要去設防火牆這裏不熟。
至於要架那些Server,想說先參照NAS上的功能。
因為Bee認為NAS上的功能,在動物機上應該都可以架設。
目前是用另一台筆電試連,未來買進Smart Phone,就可以直接使用。

這樣的組合,就可以用手機去遙控動物機,或是監看。
但下載的節目,還是要有可以播放的地方,用手機看實在是太小了。
剛好最近平板電腦開始流行,最新的已經進展到雙核心,可以順暢播放影片。
看來新的應用組合已經到位,且價格也可以接受了。

看來新的組合運行狀況是這樣的:
1.架設家用Server,可以是NAS或是動物機,主要是節目下載。
2.利用Smart Phone可以新增下載節目,或是監看下載狀況。
3.回家看節目,或是下載到平板電腦帶出門看。
  平板電腦等於是行動播放器。

不過看來不只可以做這些事。
家用Server可以是數位家電的控制中心,這個概念Intel已經推很久了。只是一直流行不起來。
所以未來家用Server可以連接家電並做控制,只要使用手機就可以開啟或是監控。

所以生活就會變成這樣:
上班時,可以利用手機指定好下載的節目。
然後下班時,用手機遙控家中冷氣開始運轉。
再打電話訂便當,下班開車去拿便當回家。
一回家就有冷氣吹,就可以直接吃飯看節目了。
看不完的節目就轉存到平板電腦去。隔天出差坐高鐵時還可以繼續看。

Smart Phone只是開端,再來就是家用server及數位家電了。

可惜Bee沒錢,一切仍在紙上作業。


2011年4月13日 星期三

Lua排名急升

在這個月Lua成長到歷史新高,突破1%的佔有率,而且是"急升"。
一切都要感謝Apple。因為Lua已是iPhone上開發的語言。
另一個受惠於Apple的是Objective-C,可見Apple媚力很大。

以Bee猜想,Apple選用Lua是有原因的,其中之一是因為有coroutine。
因為iOS好像是單工(這個是聽來的),所以需要使用者管理多工問題。
而Lua的Coroutine可以在單工下解決多工問題,讓管理變簡單。

再來,可以預測Lua會進前十名。


2011年4月8日 星期五

虛擬機器啟動了

最近將I/O模擬做好了。
可以看到機器的輸出,再將輸出資料組合回去變成物理量。
可以大概看到機器動作起來。
先用開檔的方式,一個字一個字餵給RS232的取代函式,可以看到機器啟動去工作了。

公司的RTOS很怪,有一些不太好的行為,才會導致近十年來無法搬去PC上模擬。
有包含忙碌等待這種8051才看得到的delay方法。以及奇怪的多工系統。
現在於Windows上可以用multi-threads去模擬及觀察。
剛好最近有比較大的修改,就可以用這個虛擬機器去看一下動態行為。
一個以全域變數為主的管理系統,沒有這個虛擬機器去觀察的話,花在解析的時間會很可觀。


2011年3月11日 星期五

Win7-64下虛擬電腦的使用

64位元作業系統下,軟體的不相容是一大問題。
而做為嵌入式工程師,就是有一些舊軟體要用。
許多工具都無法在Win7-64下執行是一個頭痛問題。

經過數個月和Win7-64的奮戰,總算告一段落。整理結果如下:

1.執行到16位元程式不相容。建議找軟體公司。

  唉,我就是軟體開發人員。還真的要找Source Code重編?
  我還真的做,為了將S19檔案轉成燒錄檔(bin),找了不少程式,總算是找到了,不過人家好心已編好執行檔。
  然後,命令格式不同,還是要改。重編譯,No,先改批次檔,重編是最後手段。
 
  ->此路不要走,真的沒有產能。

 
2.使用DosBox

  部分程式轉由DosBox來執行,不過要設定好連接的目錄夾,還有點費工。
 
  ->缺點,因為要載入轉入等等動作,執行起來比較慢。
    不過純DOS程式支援度不錯。Windows3.1也可以跑。

 
3.使用VirtualBox

  真是救星啊!早點知道就不用這樣辛苦了。
 
  第一個就是安裝WinXP。
  果然什麼問題也沒有,熟悉的環境。
  只有一個小小問題,安裝3D顯示卡Driver要進安全模式下安裝。
  雖然模擬出來的電腦效率有限,但比公司配給我的電腦還快。
  不過對硬碟取存較慢,沒關係,共享資料夾是RAMDisk,這下就不慢了。
 
  再來安裝了OS X 10.6
  這個是插花試玩的。不是完整支援。
 
  安裝Win98
  有一些網卡模擬要用的,也不是完整支援。不過可以改MAC,這點比VMware來得好。
  和外部是用網路芳鄰來通。所以也是可以作業。
  DOS就沒有裝了,因為和主端電腦不通,用DosBox還比較方便。
 
  安裝Win7-64
  一定會有人問,裝這個做什麼?
  就是用來試爆,哦!不是,試裝才對。
  因為新電腦安裝又移除許多試用軟體,沒二個月就不太對勁了。
  所以決定產生分身來試用,反正不好用,就用"快照回復"。就不會留下任何痕跡。
 
  安裝Ubuntu
  也是很好裝,只是環境不熟。
  不過,終於可以正式玩Linux了。
  只是每次都要mount來連得出來,還要再熟一段時間才行。
 
  安裝WinXP(二號試爆用)
  其實是在玩網路連線,現在一台電腦可以同時開三、四個WinXP。
  所以可以試玩網路連線。將來可以試一些網路連線程式,做分散式程式設計試驗用。
  這個不用重安裝,只要將原先的WinXP滙出,再滙入就行了。
      
為了搞這些虛擬電腦。原先的筆電做了一些調整。
記憶體升到8G,硬碟升到750G。
只差顯示卡,和我二年前買的桌機差不多同等級配備了。

現在的電腦真是不值錢。
(作業系統和電腦一樣貴,這是什麼世界?)


2011年2月3日 星期四

筆電記憶體擴充到8GB

最近因公司有需求,開始使用VirtualBox做其他作業系統的安裝及試用。

原先4GB的記憶體似乎不夠用,趁現在記憶體價格低,敗了二條4GB回來。

這下可以同時開二個以上的VirtualBox來用了。


XP是用來執行舊軟體。
                                               
OS X是公司要試的,這個真的很難裝,試了好多版本。

Ubuntu是試裝來玩。


然後看看資源監視器,這個以前沒有注意到應用程式。
原先就用了快2GB!可是Bee明明記得每次開機只用1.3GB。

記憶體只是從4BG加到8GB,怎麼又多用了700MB。


又是M$在做怪。

難怪Win7宣稱不用太多記憶體,因為它一直保留一半的實體記憶體給使用者看。

其實能有效的使用要到4GB以上,那1GB能用都是被騙的。苦的是硬碟。

所以有人一直說Win7容易讓硬碟掛掉。其實是記憶體不足,使用硬碟做為記憶體使用的結果。


顯示卡太重改裝

現在的獨立顯卡再加專用散熱片,整個很重。

放在直立機箱內,過一段時間就會當機。

只要卡片拔起重插就會好了。

可是真的不好拔,每次都花了不少時間。

有這種狀況的應該也有不少人,不過好像沒有多少人說,有人連顯示卡都燒壞。

網路上找到的方法是用竹筷去支撐。也有在賣顯示卡支撐架。

不幸的是Bee的顯示卡沒有地方可以用支撐架。

所以只好用一塊保麗龍去支撐。不過幾個星期後一樣會當機。

原因是保麗龍被壓縮了。


過年又當機,重新改造,這次用鐵絲去吊。

另外找了原子筆內的彈簧做張力支撐,這樣就不會太硬了。


2011年1月19日 星期三

verilog中讀取BMP檔

在verilog中要使用影像處理,模擬時需要一張圖檔做為驗證用。

大部分verilog都是讀取文字檔,所以圖檔要轉成文字檔。

但圖檔會修改,用以測試運行狀況。直接修改圖檔是最直接,一但轉成文字又失去感覺。

所以利用verilog 2001的檔案功能,就可以做到直接讀取BMP檔。

這樣修改圖檔進行測試會方便許多。

程式如下:
module test;
  integer fileId, i, cc;
  reg [7:0]  bmp_data [0:2000000];
  integer bmp_width, bmp_hight, data_start_index, bmp_size;

  initial begin
    fileId = $fopen("gray.bmp","rb");
    cc = $fread(bmp_data, fileId);
    bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};
    bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};
    data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};
    bmp_size  = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};
    for(i = data_start_index; i < bmp_size; i = i + 1) begin
      $display("%h",bmp_data[i]);
    end
    $fclose(fileId);
  end
endmodule

這個程式並沒有將整個BMP檔解開,只是取得資料。

至於資料格式就看個人應用。

因為應用上一般只會針對一種資料格式。

所以就要自己想辦法去排了。