Friday, April 18, 2008

程式集

列出了這幾年在公司寫的程式以及尚未寫完的
  1. 第一隻是用BCB寫的測試程式,很清楚寫了一個星期到最後一天才拼出來的。主要是要測試磁碟的RW效能,當時只有用sequential方式做。
  2. 第二隻是用BCB寫的Duplicator,主要是一對八的拷貝程式,要做Read/Write/Verity功能,當時因為有用到multi-thread機制所以搞了兩個多月才寫出來。
  3. 第三隻是寫driver,USB Driver,也是我第一次努力往DDK邁進。那時是為了要解決手機和PC透過USB連線時要寫一隻程式filter資料。當時只有研究到Upper Filter Driver而已,而我也只有初步理解怎麼寫和如何做debug而已。
  4. 第四隻是用BCB寫Album Disk,主要是作相片的處理,用運到相片的縮放、轉換等功能,也摸透了BCB。
  5. 第五隻是寫Video Stick,主要是要在USB Disk上面作video撥放功能。當時我參考了幾個範例,也自己寫了一隻小小的撥放程式。不過最後改用windows media player內建的功能,不同的是這隻是用VC寫的。
  6. 第六隻是Mobile Bank,解決第三隻的問題,改用應用層解決,用VC寫的。開始理解VC的前端部分。
  7. 第七隻我自己把USB Filter Driver給完成了,那時用了空檔時間努力K完USB的所有範例,也成功抓到了透過USB傳輸的封包。需要一個INI檔、自己寫的sys檔和一隻應用程式就可以了。
  8. 第八隻有點忘記了,大概是用VC寫的,應該是iSmart吧。主要是針對ATA command內部有一個iSmart功能抓取flash的bad block和spare block機制,也一併將所有disk資訊都抓出來,包含geometry, layout, performance, bus資訊等等。
  9. 第九隻是用VC寫的,自己寫的一隻format程式,完全參考FAT32格式去實作出格式化程式。後來也嘗試理解MBR和建立partition的方法。當然此時已經開始摸了FAT32了。
  10. 第十隻是自己寫的firmware,用我以前那塊8051板子作power cycling。也因為這樣我開始接觸ATX power規格,很久沒有碰的51再度讓我喚起當時的努力。
  11. 第十一隻是我開始接觸ARM920T的核心,順利將linux kernel 2.4.2 port到板子,也嘗試寫了關於frame buffer的程式,可以在LCD上面顯示自己的圖片以及改變圖示。此時開始理解kernel核心,不過我決定從ARM920T著手。
  12. 第十二隻是SATA Test程式,這隻是量產測試程式,主要是針對disk作R/W,最後加入很多功能。包含log, MBR, format, timeout機制,當然也是用VC加上multi-thread下去寫的,其實不到一個月就寫好了。
  13. 第十三隻我開始研究ATA spec和Flash核心,我trace了mirror code,也加上自己的code,可惜我沒有板子不能用。不過同時期也寫了在dos送的ec command/e5 command等程式。
  14. 第十四隻是duplicator的進階板,改用VC寫,加上image功能。
  15. 第十五隻是我目前正在寫的,要在ARM920上改寫boot loader,我要將vivi濃縮下來,順便作最佳化動作。

No comments: