ATE(Auto Test Equipments), known as Device Under Test(DUT), Unit Under Test(UUT)
分兩個階段
- die
- package
System Level Test(SLT)
Reference
ATE(Auto Test Equipments), known as Device Under Test(DUT), Unit Under Test(UUT)
分兩個階段
System Level Test(SLT)
Reference
white noise
雜音涵蓋全頻域猶如白色一樣。
pink noise
白色+紅色 = 粉紅
紅色頻率 = 電器產品
Reference:
最近想要用手機與自己的愛車VW polo的原廠音響做連線,看看可不可以免持聽筒或是音樂的傳播,但聽到只出張嘴巴的sales說原配沒有這樣的支援,除非要貼錢換更好的台製音響才能有這樣的功能。
於是就開始了一連串的研究,首先,如果有跟我一樣是VW的車主,可以參考下面的網址。
http://my.vw.com/2013-passat/technology/bluetooth-faqs
簡單來說,把音響打開,bluetooth也打開搜尋連線,應該會有類似的裝置名稱(EL-540-CON2)跑出,應該每台車子有不同的名稱,接下來把密碼"0000"打進去。就OK了~~只是第一次連線會比較久一點,設定好之後就可以使用免持聽筒的功能囉。
這時候,大家一定在想如果可以使用免持聽通那是不是就可以傳音樂了呢?
答案是可能要看音響的規格,依我的來說只有支援Hands-Free Profile (HFP)。
所以說並沒有正規的方式傳遞音樂,如果硬是要傳也是可以,但音質就大大折扣。
如果有支援Advanced Audio Distribution Profile (A2DP)那就可聽比較好的音樂囉。
至於,Audio/Video Remote Control Profile (AVRCP)是用來控制設備的協定。
因為我是用iphone的手機,所以要找到用來破壞協定方式傳定音樂的相關軟體,難呀。
有也是要付費
A2DPblocker
或是破解手機,
Bluetooth Mono SBSettings Toggle
但其他系統的APP應該就比較容易些。
這邊有兩個軟體給各位參考一下。
Reference
Fix-point arithmetic
Floating point unit(FPU)
Reference
The computer program memory is organized into the following:
Reference:
SEC是UEFI最早啟動的階段,也就是當按下Power-on後的第一件工作,
其中有三個主要的工作,分別為
1)與其他硬體確認開機BIOS的安全性,Core Root of Trust Module(CRTM)。
這必須要透過第三方硬體支援來確認BIOS本身的安全性,接者BIOS本身還會有機制繼續驗證下去,就有如一環接者一環,chain of trust。
2)決定CPU Operation Mode。
CPU因為相容性的問題,都會先用16bit width做處理,此階段可以先將16bit轉換成可支援的32bit, 64bit…,來提升開機速度。
3)暫時記憶體的設立。
在這項工作中,SEC會找尋適合的記憶體,來取代位於南僑所控制的ROM記憶體,來增加執行速度。因此,會利用SRAM, CPU Cache等等來載入初始的BFV,其容量都必須大於4KB<1><2>。
Reference
不管中文或是英文都有很多文章在介紹這兩個理論的概念,在這裡是想用這兩種概念將程式寫的更容易維護和設計。
State Machine(SM)第一次看到這個名詞是我在研讀HMM的時後(有機會將這有趣的數學分享給大家),簡單來說就是狀態之間的轉移,數學上是以"機率"作為轉移依據,而在程式上是以"條件式"來決定。條件式在C語言裡不外乎使用 if / switch,
先來簡單的狀態序列<2>,配上常見的寫法我想會是~~
if (S=1) S = 2; do event S1
elseif (S=2) x = 3; do evnet S2
elseif (S=3) do event S3
或是用switch case…,想要讓狀態機多活一下,很直覺得就給它加個do while。這樣就大功告成了!?
小小狀態機或許這樣應該足夠了,但現在隨著硬體技術隨著<1>Moore定律的規範下不斷進步,其實軟體這裡也不會閒著,狀態機也是龐大的可怕,那這樣的寫法好maintain嗎? 我想這部分可以等到各位在工作時可以驗證一下,這裡是討論程式概念。
要怎麼做才直接且容易維護呢? 首先我們仔細想想,上述概念的寫法應該是這樣的SM。
首先,我想引用<3><4>來解釋SM table的設計,這方法可以用來紀錄下一個狀態位置。
CurrentState = SMTable[CurrentState ] ;
很好,有了這個機制我們的架構就變成這樣了!
這是俗稱的多此一舉,脫褲子放屁? 問題出在哪呢? 因為每個狀態有屬於自己的函式要處理,如果能跟著CurrentState這index改變,那就兩全其美了。所以就有function point<5-7>存在的必要性。
此外,要寫好貼切的function point,我想宣告的問題可是非常重要,如#define, typedef, 宣告型態<8>...
這是我簡單寫一個上面所形容的狀態機(source code)分享給各位,希望能讓各位產生一絲絲的共鳴。
<Reference>
<1>http://en.wikipedia.org/wiki/Moore's_law
<2>http://www.swarthmore.edu/NatSci/echeeve1/Class/e15/E15Lab2/CStateMachines/CStateMachines.html
<3>http://www.conman.org/projects/essays/states.html
<4>http://johnsantic.com/comp/state.html
<6>http://stackoverflow.com/questions/133214/is-there-a-typical-state-machine-implementation-pattern
設計程式之所以有趣不外乎是它的千變萬化,同樣的結果卻有不同的寫法。 但這些不同寫法當中也並沒有分誰對誰錯,也沒有制定標準來規範何事該用何解。 這也就是我們設計者的珍貴!! [1] Primitive Instantiations 在Verilog中最基本的邏輯...