2012年3月28日 星期三

嵌入式系統開機流程

1. CPU到指定的memory address抓取第一行instruction執行,有兩種常見的作法
    (1)CPU會把PC設定為一個特定的address,從這邊開始執行
    (2)CPU會把Interrupt Vector Table設定為特定的address,並且發出Reset interrupt
         在Reset的ISR中執行某個開機的function

2. 初始化CPU (IVT的addres, SP)

3. 把code和data從ROM或是 Flash搬到RAM上執行,通常使用DMA搬
    (有些code可直接在external flash上執行就不需要搬)

4. 初始化板子相關設定和參數

5. 初始化系統(ex 執行OS、GUI)

6. 執行主程式,很多嵌入式系統會執行一個無窮迴圈

2012年3月27日 星期二

在Windows底下dump DLL

問題:
今天碰到一個bug,有一個.net程式用到_controlfp_s這個function
在Win7底下是放在msvcrt.dll,但是在Win XP中的msvcrt.dll卻找不到這個function

找到此問題的方法: 
使用dumpbin把DLL的function name dump出來看
(有點像Linux底下的object dump)

步驟:
1.執行Visual Studio Command Prompt

2.C:\WINDOWS\system32>dumpbin /exports msvcrt.dll | more

解決方法:
更換XP和 Win7都有的function,或是在程式當中附上DLL檔

2012年3月14日 星期三

約耳續談軟體:探究軟體經營的根本實學

這本書是『約耳趣談軟體:來自專案管理的現場實錄』的續集,同樣是由充滿幽默感的約耳所撰寫。大部分文章其實之前在網路上都有人翻譯。約耳還是延續他一貫幽默的風格,很輕鬆就能讀完他。和前一本不同的地方在於,這本書主要的主題是在探討如何管理一間軟體公司,其實蠻適合主管和老闆來看看。這本書可以看到約耳對待員工以及如何管理他的公司,看了會很令人羨慕,面試時候不但有豪華轎車到機場接送,還免費住在高級的旅館並且在高級的旅館舉辦party。辦公室裡頭有私人的辦公室,坐得是一張900美金的椅子。就如同約耳文章所寫得,最好的管理就是找最優秀的人進來,讓他們認同你並放手讓這些專家自己去做。當然約耳的徵才標準也是非常高,他同時也花了幾章在抱怨目前大學課程(Java學校帶來的危害,耶魯大學的演講),相信能進去他的公司都是數一數二的高手。

其中有幾章作者特別替微軟的IE還有Office的格式做出解釋,還蠻值得一看得,有些東西真的是因為有歷史包袱在,結果就是現在使用者看到的這樣。