2013年3月29日 星期五

如何在Windows環境下安裝OpenSSL

然在網路上有在Windows下安裝OpenSSL的教學,但很多都有看沒有懂,所以乾脆自己記錄一下這次自己安裝的流程以備日後可以回頭查閱。
  • 安裝環境

  1. 作業系統:Win 7 32-bit
  2. OpenSSL版本:openssl-1.0.1e.tar.gz 

  • 需事先安裝的軟體

  1. Perl 編譯工具:http://www.activestate.com/ActivePerl
  2. NASM編譯工具:http://nasm.sourceforge.net/
  3. Visual C++(我是使用2010版)
  4. 解壓縮OpenSSL(使用7-zip,解壓縮後會有許多檔案,其中INSTALL.W32是安裝OpenSSL的教學,如果安裝過程有疑問可以查看這一個檔案)
   P.S. 在安裝完NASM後,要將NASM的資料夾加入到環境變數的Path裡,否則在安裝過程中可能會出現找不到nasm這個錯誤訊息,以下說明如何將NASM加入到Path。

  •     將NASM加入到環境變數

  1. 安裝完NASM後預設的路經應該為C:\Program Files (x86)\NASM。
  2.  點選  電腦 -> 系統內容 -> 進階系統設定 -> 環境變數,在系統變數欄位裡有一個變數名為Path,快速點兩下。
  3. 在變數值欄位裡的最後面先加一個分號 ";",在分號後面加入NASM資料夾的路徑
    C:\Program Files (x86)\NASM
  •  安裝流程

  1.  點選桌面的開始 -> 所有程式 -> Microsoft Visual Studio 2010 Express ->Visual Studio 命令提示字元 (2010),就會跳出命令視窗如下圖。

    2. 進入到解壓縮的OpenSSL資料夾。
(Ex:假如OpenSSL的資料夾是放在D槽,並且資料夾名稱叫TestOpenSSL,那麼先打 D: 再打 cd TestOpenSSL)

    3. 進入到OpenSSL的資料夾後,輸入指令
        perl Configure VC-WIN32 --prefix=c:\some\openssl\dir
(P.S. c:\some\openssl\dir是指說要將OpenSSL安裝到這一個路徑,所以如果你想放到自訂的資料夾內,譬如c槽的UserOpenssl資料夾,那就將c:\some\openssl\dir 改成c:\UserOpenssl)

    4. 輸入指令
        ms\do_nasm

    5.輸入指令
       nmake -f ms\ntdll.mak
(P.S. 如果沒將NASM加入到環境變數這裡就會compile失敗,如果已經加入但還是失敗的話,那就重開機再試一次)

    6. 輸入指令
        nmake -f ms\ntdll.mak test
(P.S. 如果前一個步驟通過的話那這一個可以略過,因為這一個步驟只是Test前一個步驟是否有正確安裝)
  
    7. 輸入指令
        nmake -f ms\ntdll.mak install

以上步驟全都完成之後,如果沒有更改步驟3的安裝路徑的話,就可以進入到c:\some\openssl\dir\bin 裡有一個執行檔名為openssl,點兩下就會出現命令視窗,就可以進行OpenSSL所提供的指令,至於有那些指令以及參數可用請參考OpenSSL的網站 http://www.openssl.org/

2012年11月8日 星期四

韌體工程師有幫助的書單

這裡整理一下對韌體工程師有幫助的書

1. 建立嵌入式系統:傑出軟體的設計模式
     Elecia Wbite 著, 莊宏祥 譯
     出版社:O'REILLY
     p.s. 這一本在入門時幫我了解的很多觀念,大推~

2. 8051單晶片徹底研究-入門篇
                                         基礎篇
    作者:林伸茂
    出版社:旗標

3. 嵌入式系統開發之道-菜鳥成長日誌與專案經理的私房菜
    作者:邱毅凌
    出版社:悅知文化

4.Test-Driven Development for Embedded C(待買)
  
出版社:Oreilly & Associates

2012年11月7日 星期三

如何閱讀Datasheet

        Datasheet裡包含了許多硬體元件的資訊,如電器特性、建議運作條件及配線(layout)等等之類的,內容就長達數百頁,看完之後完全不知道在說什麼... 因此韌體工程師比較需要注意的部分為是否有"應用程式資訊(Application information)" 或者是"運作原理(Theory of operation)" 等等與Coding有相關的部分。要知道時做驅動程式的方式?如何進行通訊?初始化?為了有效率使用元件,軟體應該做什麼?有沒有嚴格的時序要求,以及處理器該如何處理?
        在Chip的user guide文件裡有Programming章節,這一章蠻重要的。在來是記憶體的配置,各家的記憶體配置位子不盡相同,我目前看的Maxim記憶體是採用哈佛(Harvard )架構,共分3個部分,1. Programming, 2. Data, 3. Register 這3種記憶體。其中Register是蠻重要要仔細研讀的部分,其主要功能有3個,1. 控制動作, 2. 設定狀態, 3. 儲存資料。
     

開版首PO

建立這個Blogger的主要用意是來記錄自己的學習心得。
最近剛成為社新鮮人,第一份工作是韌體工程師,雖然是一間小公司,
但這裡的環境我還蠻喜歡的,帶我的是一位跟我同年的工程師,
不過他已經有2年的資歷。
由於什麼都不懂,所以最近一直猛K文件,光Datasheet就百頁以上,內容有如外星文,不知道哪些是重點,就已就一行一行的慢慢看,又買了一些書來K,所以建立這個Blogger來記錄一下自己的學習心得,不然一下子塞這麼多東西,不爆炸才怪。