Re: [問題] 程式是如何建構出來的???
: 我真的很佩服寫底層的
: 寫driver阿 寫一些核心技術的人
: 感覺他們才是真正又會寫程式 又會開發新技術的人員...
: 請板友們 替我解解惑吧.....
如果以系統整合廠來說,就算是寫 driver,很多時候也是 call function。
舉例來說,假設我有一顆 IC 要透過 I2C 下參數給它,
你會發現其實那個 I2C 的函式也是人家做好的。
有興趣的話,可以 trace code,並對照 I2C 的運作原理,就會比較容易理解。
不過大部份的人應該都是沒興趣吧?
我倒覺得可以先拿簡單一點的例子來練習,比如說要設定 CPU 某一根 pin 腳,
大部份會再有一個 function 把設定暫存器的細節隱藏起來,
如果 trace code 看到一堆奇怪的 #define,去找到實際 mapping 的位址,
再對照 cpu spec 有關 gpio 的章節,便會有原來如此的感覺。
我覺得很多事情實際碰到會比較有感覺,會比看書有感覺多了。
(還在寫 AP 時,手頭約有三、四本嵌入式的書,當時只覺得好像是天書!)
: 自己覺得我再寫上層的東西 但是要是沒底層的人 我根本就無法寫出來
: 我覺得我已經變成 要寫程式 只要找不到API就不會寫了的情況...
: 是只有我有這種疑惑嗎 大家都對整個 os hw driver firmware 這些
: 都有基本的觀念嗎?? 我是都沒有才想潑版請教各位
正巧我也有寫過 AP!
拿我前前公司的一個例子來說好了,
客戶要測試做出一張 DVD 塞滿醫療影像專屬格式(DICOM DIR)的時間要多久?
很不巧的我們的程式跑了兩天都還沒結束!
後來在幾個重要地方插入時間,終於順利找到兇手,
原來問題是出在購買函式庫的 function 上,
但問題就來了,我們又不可能叫原廠改?
(很恐怖,不要問XD)
最後的解決方式就是自己 K 規格書,
搞清楚 binary 檔案的格式,
自己用二進位寫檔的方式解決。
所以囉,你說你不會寫,是因為還沒有遇到問題吧XD
不管如何,掌握判斷問題的能力與解決問題的能力是一定要有的,
這樣有問題時才會有個方向,
這必須仰賴自己的不斷進修。
當然不同程式會有不同需求的地方,
就從相關且自己有興趣的地方切入吧。
假設寫 browser,試著只用最簡單的 TCP API,自己去組 http 的 header,
重點是這件事做了會讓你覺得有趣並想繼續。
畢竟 Code 海茫茫,學海無涯呀。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.210.105
→
03/27 22:00, , 1F
03/27 22:00, 1F
推
03/27 22:02, , 2F
03/27 22:02, 2F
→
03/27 23:05, , 3F
03/27 23:05, 3F
→
03/27 23:05, , 4F
03/27 23:05, 4F
推
03/28 00:51, , 5F
03/28 00:51, 5F
推
03/31 11:28, , 6F
03/31 11:28, 6F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章