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

看板Soft_Job作者 (Cory)時間11年前 (2015/05/20 00:05), 編輯推噓3(307)
留言10則, 3人參與, 最新討論串1/2 (看更多)
各位好: 小弟目前接一個小型專案 要寫嵌入式板子 (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

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

05/20 02:07, , 2F
併回去就好
05/20 02:07, 2F

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

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

05/20 05:17, , 5F
和ARM裡的程式吸收.
05/20 05:17, 5F

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

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

05/20 13:04, , 8F
xxx-arm.c
05/20 13:04, 8F

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

05/20 13:06, , 10F
跑win32的時候就去編與連結xxx-win.
05/20 13:06, 10F
文章代碼(AID): #1LMrzLB- (Soft_Job)
文章代碼(AID): #1LMrzLB- (Soft_Job)