[請益] 跨平台(PC、嵌入式)版本管理

看板 Soft_Job
作者 cory8249 (Cory)
時間 2015-05-20 00:05:39
留言 10則留言 (3推 0噓 7→)

各位好: 小弟目前接一個小型專案 要寫嵌入式板子 (Cortex M0+) C 語言程式 連接 RS232 GPS 模組 其中工作包含: * GPS message decode (純邏輯) * RS232 Setting 等等控制雜項 (平台相關) 基本上 GPS 模組都是先在 Windows PC 先測過 沒問題再丟到 ARM 上面去跑 code 都是分開寫 然後在 copy & paste 過去另一邊的 project 其實80% 程式碼都一樣 只差在 Windows PC 要呼叫 RS232 的 library ARM 那邊要設 I/O Pin 想做好一點的開發管理 預計用 git 做版本控制 主目錄下切三個資料夾: gps_module (純變數宣告、判斷邏輯) win_pc (PC的程式碼) arm (板子的程式碼) 然後 gps_module.c 設置 #ifdef WIN_PC void gps_update_buffer(...){ // call windows library } #ifdef ARM void gps_update_buffer(...){ // call ARM API } 讓不同平台的 project 跑不同的函式 這樣改 code 應該比較方便 不用再 copy & paste 很難 maintain 請問這樣的管理方式是OK的嗎 ? 或是有其他更好的建議 ? 感激不盡 --
※ 批踢踢實業坊(ptt.cc), 來自: 61.231.55.55
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1432051541.A.2FE.html

givemepass: 共同的部份拉出來, 其他的開分支, 有動到共同的再合 05/20 02:07

givemepass: 併回去就好 05/20 02:07

uid88: 既然gps_modules.c要放common code,就應該拿掉#ifdef,讓 05/20 05:16

uid88: 這裡的code在Windows和ARM都可以build.平台的差異由WIN_PC 05/20 05:16

uid88: 和ARM裡的程式吸收. 05/20 05:17

uid88: 另外1.用#if比#ifdef好 2.用#elseif比另一個#if/#ifdef好 05/20 05:17

askacis: 可以從makefile去切,xxx-win.c 05/20 13:04

askacis: xxx-arm.c 05/20 13:04

askacis: 才不會code裡出現滿天的ifdef 05/20 13:05

askacis: 跑win32的時候就去編與連結xxx-win. 05/20 13:06

您可能感興趣