主要是要讓MCU程式可以在Windows環境下可以編譯,或是簡單執行。
因為Bee成功將68K的程式移轉到Windows下成功。
這才了解在Windows下除錯是多麼幸福的事。
尤其在有作業系統的環境中,一般Debuger無法作用的環境中寫了數年的程式。
可以單步中斷、追蹤,是很幸福的。
在Visual Studio下,在執行時仍可以修改程式碼,立刻修改錯誤,這是不可能在MCU中可以做到的。
另外可以看呼叫來源,可以知道是如何進入函式,可以省去追各路分支。
MCU可以用Visual Studio去寫及模擬,我就不可能回到過去那種人工看Code的日子。
可以操作的等級差太多了。
以前面對10MB的原始碼,根本不知如何追起。
現在就覺得10MB不是那樣可怕,很輕鬆就可以設定及追蹤。
以下為需要修改的。
1.I/O
使用巨集,函式外型。
因為在沒有實體硬體時,需要另一組軟體函式來模擬。
要是做成記憶體存取,就會變成無法模擬。
2.組合語言
跳過
以C重寫
組合語言轉C
3.MCU內部設定
幾乎都是跳過
4.中斷
使用Windows Thread,另外開獨立高權限Thread來模擬中斷。
5.RTOS系統呼叫
找出對應的地方,套入Windows系統呼叫。
但仍有一些操作上和實體不同
1.堆疊
不會用配置記憶體做為堆疊,Windows有自己的。
2.當機的回復
這個不是硬體當掉,而是將堆疊設置錯誤產生的。
MCU有時會重啟RTOS,然後因全域變數留有工作,會連下去做。
但Windows可不會。
老實說,發現這個動作Bee很驚訝,這個明顯是程式設計錯誤。
也終於了解公司的怪O.S.為何不能移到正常的作業上執行的原因。
程式根本會死當,再利用怪怪的作業系統回復其工作,正常作業系統那裏有這招的。
2011年6月3日 星期五
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沒錢,一切仍在紙上作業。
先實驗在動物機上架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會進前十名。
一切都要感謝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的顯示卡沒有地方可以用支撐架。
所以只好用一塊保麗龍去支撐。不過幾個星期後一樣會當機。
原因是保麗龍被壓縮了。
過年又當機,重新改造,這次用鐵絲去吊。
另外找了原子筆內的彈簧做張力支撐,這樣就不會太硬了。
訂閱:
文章 (Atom)



