2013年5月24日 星期五

X86式微,已經回不來了

Bee最近換了手機,終於開始使用智慧手機了。
一看規格:四核心、2GB RAM及16GB儲存空間。
這規格超過七年前Bee的第一台筆電。
而最近Bee也有點想買NB,只是換手機先。
但低價NB,就i3,i5核心,沒有一台可以使用到16GB的記憶體,只能到8GB。
那NB除了硬碟容量大,64位元CPU外已沒有什麼特性了。以手機前進的速度,4GB記憶體很快會出現。
RAM的容量根本不是優勢。
NB規格上前進的速度,遠不及手機。
只有軟體環境差異,但Bee認為這點撐不了太久。
因為6502轉成X86也是一二年內就翻過來。
DOS被Win95取代也是。
NB被手機取代應該也是很快。

以SD卡做為MCU磁碟機

外部串列式儲存單元選用考量:
1.界面速度
2.單位儲存價格
3.和PC做資料交換

使用USB是一個不錯的選擇,但不是每一種MCU有USB界面。
使用UART是最普遍,但串列儲存元件未支援。
使用I2C則是慢了點。
使用SPI是不錯的選擇,但和PC又無法直通。

用了數種儲存單元後終於出現讓Bee滿意的答案=SD卡。
在界面速度上,速度算不錯。可以使用SDIO的高速模式,也可以用SPI界面,和大部分MCU連接。
在容量單位價格上,可說是非常低。
可以直接拿到PC上讀取,讀卡機容易取得。
若是MCU程式空間小到放不下FAT檔案系統,那也可以全碟讀出,再用PC軟體去分析。
不過已有Open Source解決FAT的問題,就是用FatFs,故就算是8051也是可以使用。

MCU有了大型儲存單元,再加上FAT檔案系統,可做的事就好像變多了。
從前沒有空間做大型資料計算處理,也變得可行。有機會在檔案上做儲存及暫存再轉出結果。
MCU可以做的事就如同DOS時代的PC。
其實環境還真的差不多。
DOS時代的記憶體為640KB,磁碟不到1GB。
現在MCU其RAM大約給64KB,SD卡有4GB。但另有程式空間512KB。
只要控制住RAM的使用量,真的就和DOS環境差不多了。


2013年5月23日 星期四

STM32完整C函式庫支援之可能性

IAR未實現函式列表:

作業系統相關
<stdlib>
abort()
exit()
system()

<signal.h>
raise()
signal()

時間
<time.h>
clock()
time()

檔案系統
<stdio.h>
open()
close()
lseek()
read()
write()
rename()
remove()

若是MCU有支援就可以做其他相關函式的動作。
以STM32來說,有RTC安裝時,可以將time()函式補齊。
若是有檔案系統,例如使用FatFs,也可以補齊。
但作業系統相關的是基於命令列模式,MCU可能沒有人機界面的狀況,仍不會支援。

推論:
DOS時代的程式,差不多可以不用修改就可以移植。


2013年5月22日 星期三

如何產生任意大小的磁碟影像

在使用FatFs就是為了MCU和PC之間可以做檔案交換。
也是Bee第一次在MCU上使用到64位元整數變數。
這種變數數值太大想都沒想過。但遇到檔案系統位址索引就非用不可。

FatFs可以在PC上進行模擬,會產生一個Ram Disk。
不過這個Ram Disk沒有和真實世界相通。
是可以載入SD卡影像檔,但抓取費時。

本想用其他Ram Disk的影像檔來用。結果沒想到Windows有內建。
就在控制台->系統管理工具->電腦管理->磁碟管理
可以在硬碟上產生一個新的碟。
設定上要使用固定大小,不然無法對應真實磁碟。
可以格式化,放入檔案。操作完畢後中斷連接。
再來就可以用檔案讀入的方式Copy進Ram中,給FatFs做為Disk影像用。


2013年5月12日 星期日

從CPU公司併購看科技之發展

Bee一向後知後覺:


Intel賣掉ARM核心一年後才知。


MIPSImagination Technologies併購半年才知。


這二件事時代不同,看似無關,卻是電腦科技的重要分叉路。


Intel賣掉ARM核心,Bee當時認為是不合理的事,ARM核是發展PDA的核心,Intel擺明要失去PDA市場。過了幾年,結果更慘,PDA和手機完全合體後,ARM處理器已經成為主流CPU之一。


至於MIPS被併,則可以見得,GPU的重要性已經和CPU不相上下。


 


那就電腦科技來說,路又是如何走的。


CPU一開始因需求計算力,在達到有效需求的運算力之前,其他功能皆不是重點。Intel在計算力的推展符合需求,造就了帝國企業。


CPU發展到64位元時,就出現了應用需求減緩,正代表已達到基本需求運算力。再來就會有其他問題出現,此時PDA興起,代表能量效率的需求,ARM因此發展成霸主。就目前來看,x86指令解碼電路至少是ARM的三倍,長期下去x86絶非對手。


GPU公司併購CPU公司,代表CPU已無新公司生存空間,也代表GPU已開始和CPU平起平坐。


GPU是如何和CPU能平起平坐,一般人應是無法理解。其實在生物上已經發現相同的問題,解法也是一樣,同時使用。


生物解決自然界問題,和科技是相同的。應是說工程問題相同,只是解決材料不同。在生物從單一感測細胞進展到多重感測細胞,最終發展出視覺細胞,就開始遇到計算問題。邏輯運算和影像運算無法使用同一種單元來做,應說是同是腦細胞,但二者所需的連結結構不同,無法同時存在。於是大腦就分成二個腦,一個做為邏輯運算而另一個做為影像運算。發展了上億年,二個大腦還是沒有因為是那一個重要,而有特別去發展。有的是同時變大。


電腦科技已經開始走入邏輯運算和影像運算並行發展的年代,但因影像運算較為後起,所以市場空間尚未佔足,還有可以成長的空間。而CPU核心設計的市場則是過了高原期,接下來的發展會比以前慢得多。不信的人,您可以看看,若是您買了一台新PC(NB)您說得出CPU多了什麼功能嗎?就是因為連CPU公司也說不出來,才會多了一堆型號(就這裏多一點,那裏少一點),完全沒有創新的內容。就算有創新,也不是客戶關心的內容。