最近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年5月12日 星期四
2011年4月13日 星期三
Lua排名急升
在這個月Lua成長到歷史新高,突破1%的佔有率,而且是"急升"。
一切都要感謝Apple。因為Lua已是iPhone上開發的語言。
另一個受惠於Apple的是Objective-C,可見Apple媚力很大。
以Bee猜想,Apple選用Lua是有原因的,其中之一是因為有coroutine。
因為iOS好像是單工(這個是聽來的),所以需要使用者管理多工問題。
而Lua的Coroutine可以在單工下解決多工問題,讓管理變簡單。
再來,可以預測Lua會進前十名。
一切都要感謝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去模擬及觀察。
剛好最近有比較大的修改,就可以用這個虛擬機器去看一下動態行為。
一個以全域變數為主的管理系統,沒有這個虛擬機器去觀察的話,花在解析的時間會很可觀。
可以看到機器的輸出,再將輸出資料組合回去變成物理量。
可以大概看到機器動作起來。
先用開檔的方式,一個字一個字餵給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。
只差顯示卡,和我二年前買的桌機差不多同等級配備了。
現在的電腦真是不值錢。
(作業系統和電腦一樣貴,這是什麼世界?)
而做為嵌入式工程師,就是有一些舊軟體要用。
許多工具都無法在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容易讓硬碟掛掉。其實是記憶體不足,使用硬碟做為記憶體使用的結果。
原先4GB的記憶體似乎不夠用,趁現在記憶體價格低,敗了二條4GB回來。
這下可以同時開二個以上的VirtualBox來用了。
XP是用來執行舊軟體。
OS X是公司要試的,這個真的很難裝,試了好多版本。
Ubuntu是試裝來玩。
然後看看資源監視器,這個以前沒有注意到應用程式。
原先就用了快2GB!可是Bee明明記得每次開機只用1.3GB。
記憶體只是從4BG加到8GB,怎麼又多用了700MB。
又是M$在做怪。
難怪Win7宣稱不用太多記憶體,因為它一直保留一半的實體記憶體給使用者看。
其實能有效的使用要到4GB以上,那1GB能用都是被騙的。苦的是硬碟。
所以有人一直說Win7容易讓硬碟掛掉。其實是記憶體不足,使用硬碟做為記憶體使用的結果。
顯示卡太重改裝
現在的獨立顯卡再加專用散熱片,整個很重。
放在直立機箱內,過一段時間就會當機。
只要卡片拔起重插就會好了。
可是真的不好拔,每次都花了不少時間。
有這種狀況的應該也有不少人,不過好像沒有多少人說,有人連顯示卡都燒壞。
網路上找到的方法是用竹筷去支撐。也有在賣顯示卡支撐架。
不幸的是Bee的顯示卡沒有地方可以用支撐架。
所以只好用一塊保麗龍去支撐。不過幾個星期後一樣會當機。
原因是保麗龍被壓縮了。
過年又當機,重新改造,這次用鐵絲去吊。
另外找了原子筆內的彈簧做張力支撐,這樣就不會太硬了。
放在直立機箱內,過一段時間就會當機。
只要卡片拔起重插就會好了。
可是真的不好拔,每次都花了不少時間。
有這種狀況的應該也有不少人,不過好像沒有多少人說,有人連顯示卡都燒壞。
網路上找到的方法是用竹筷去支撐。也有在賣顯示卡支撐架。
不幸的是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檔解開,只是取得資料。
至於資料格式就看個人應用。
因為應用上一般只會針對一種資料格式。
所以就要自己想辦法去排了。
大部分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檔解開,只是取得資料。
至於資料格式就看個人應用。
因為應用上一般只會針對一種資料格式。
所以就要自己想辦法去排了。
訂閱:
文章 (Atom)



