[討論] 關於程式可攜性的問題

作者: MaxHaru (懂得放手..才是王道)   2015-03-28 12:14:36
請教一下版上的前輩,
我目前在寫韌體函式庫, 最常遇到的就程式碼可攜性的問題.
常常Hardware一代與一代產品之間的差別可能不大,
可一但換了新的產品時, 都會需要去修改source code,
這會造成客戶對於程式正確性的懷疑,
甚至連客戶在reference function的時候都需要跟著一起連動.
不知道對於可攜性為導向的程式設計,
大家都用什麼方法來maintain自己的code的呢?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-03-28 15:04:00
你寫韌體差半層就是硬體了,在這麼底層還有可攜性的存在嗎…我每天下課穿過學校後面的菜園就可以回家,現在菜園主人拉了一層鐵絲網,那你還要堅持穿過菜園嗎…
作者: wuliou (wuliou)   2015-03-28 16:45:00
韌體本來就可攜性低 這沒辦法解的除非你硬抽一層出來 但是這樣會變慢
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-03-28 17:28:00
頂多設法把他包裝到舊的程式不需要修改…吧韌體一定要改 但是客戶那邊程式改越少越好 是這樣嗎?
作者: Killercat (殺人貓™)   2015-03-28 17:28:00
通常用HAL當分界線,HAL以下就別想了....
作者: damody (天亮damody)   2015-03-28 22:20:00
#ifdef USE_ARM_CORTEX_M3用大量的巨集啊 原廠都這樣用 你不會學喔有人會寫code自動產生器看需求吧 有些要速度 有些要硬體低成本
作者: james732 (好人超)   2015-03-29 01:30:00
或許可以看看Chromium OS的EC?
作者: sunneo (艾斯寇德)   2015-03-29 11:36:00
不然只好把llvm ir/codegen帶到韌體層
作者: MaxHaru (懂得放手..才是王道)   2015-03-30 00:29:00
謝謝客位的討論,韌體要有它的限制這我也知道,但還是希望可以減少客戶修改的幅度,目前的做法頂多就是用#define去多包一層,不過有些case仍然需要動到客戶的code,所以才來這問問大家的經驗Chromium OS的EC code網上找的到嗎?有聽過它寫方式可攜性不錯
作者: sunneo (艾斯寇德)   2015-03-30 02:51:00
http://ppt.cc/2ciO 這邊看看
作者: james732 (好人超)   2015-03-30 02:53:00
作者: MaxHaru (懂得放手..才是王道)   2015-03-30 17:10:00
十分感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com