看板 C_and_CPP 關於我們 聯絡資訊
寫韌體 禁用 C++ ?? 有這樣的說法嗎 ?? 不好意思小弟不才 從事嵌入式系統 近十年 也待過幾家大小公司 只是最近所處的公司 部門調動關係 新主管上任 看到小弟寫的一些(軟體層)程式 C/C++ 混用 就說 不要用 C++ 寫韌體 然後說一些 主管待過的公司 "韌體部門有禁用 C++" 只是覺得奇怪 如果今天寫的是 LINUX driver 或是 kernel 之類的 當然 C 是唯一 (畢竟一開機起來什麼都沒有的環境) 然而 軟體層的部分 應該就還好吧? 只是想問問看 有無先進可以分享一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.52.48 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1603273112.A.32E.html
descent: c++ 也可以寫 linux driver 10/21 18:17
descent: 我們公司是開發的人決定, 主管不會管這個。 10/21 18:19
jacky1989: 沒考慮過組合語言嗎? 10/21 18:24
Lipraxde: 不是不能用 C++ 寫韌體,而是為了某些原因 (例如整個部 10/21 18:25
Lipraxde: 門只有你看得懂 C++) 所以不用 10/21 18:25
Lipraxde: 是說,韌體裡的軟體層,是屬於韌體,還是軟體@@? 10/21 18:27
chuegou: 混用是指什麼 10/21 19:02
james732: 第一個問題可能是toolchain對C++的支援是否足夠? 10/21 19:22
james732: C++的各種自動產生的程式碼也會提高韌體的debug難度 10/21 19:23
james732: 需要追到指令層次的反組譯碼應該會很恐怖 XD 10/21 19:23
ketrobo: toolchain的支援問題,用C++結果更便宜的料只能用C,公司 10/21 19:55
ketrobo: 會賠錢 10/21 19:55
final01: 混用的話就用C吧... 10/21 21:17
loveme00835: 你會寫才有這個問題 10/21 21:26
kingofsdtw: c++ cross參數不過你要免費加班做功德? 10/21 23:56
kingofsdtw: 而且C++並不是必修,87%人根本只會當C寫 10/21 23:57
kingofsdtw: 公司沒資源(錢)請人就乖乖依標準做事吧 10/22 00:00
kingofsdtw: 你開公司要用java perl python也行 10/22 00:01
MartinJ40: 因為C++沒有C穩定 10/22 10:00
MartinJ40: 底層用C還是比要穩 10/22 10:00
sunneo: 如果韌體沒移植minix/linux這類小系統 10/22 12:37
sunneo: stl使用者會先在exception handler受挫 10/22 12:39
sunneo: 得轉用別的stlporting像是easystl,ustl 10/22 12:42
sunneo: 純軟體被禁用就只是避免維護困難 10/22 12:43
loveme00835: 不懂, STL 跟 exception 的關係是? 10/22 14:09
sunneo: 可以試看看在uefi用g++ build 最需要克服的是STL 10/23 10:44
F04E: 沒有 10/23 12:23
mrtzou: 因為C++ ABI不stable 10/24 14:55
mrtzou: https://reurl.cc/pypG0b 10/24 14:56
hhashoww: 超討厭寫C++... 10/24 22:44
tinlans: 沒第三方 binary 要 ABI stable 幹嘛 10/25 12:06
alex70266: 不是沒有,只是真的少 10/25 22:50
alex70266: 靠硬體那側的fw通常沒人會刻意寫c++控制硬體暫存器,小 10/25 22:55
alex70266: 系統比方說跑在PIC/stm32等級的軟體側通常也不會刻意用 10/25 22:55
alex70266: c++,除非軟體功能整個專案從0開始做 10/25 22:55
alex70266: 但也不是真的完全沒有人弄啦,這就要看專案發展怎麼搞. 10/25 22:57
alex70266: .. 10/25 22:57
alex70266: 如果是弄在嵌入式的linux ap用c++寫很常見就是了 10/25 22:59
james732: 話說嵌入式似乎開始要把Rust導入到商用產品了 10/26 00:34
zxzx8059: arm自己的那個rtos用c++吧 10/26 18:09
Killercat: c++還有個問題就是 link libstdc++比link glibc大很多 10/27 00:02
Killercat: 如果你系統不是寸土寸金的話就比較沒差就是了.... 10/27 00:02
Killercat: 這可不是只有佔儲存空間 而且記憶體空間也有差 10/27 00:03
CoNsTaR: 因為改用 Rust 了(X 11/02 00:09
WPC001: 真的寫C++(並非當成C來寫),保證肥大... 你主管是對的 11/23 22:55
WPC001: 對MCU而言,code size就等於競爭力... 直接禁用才是對的 11/23 22:56
WPC001: MCU的libc常常都是用new lib / nano / pico...不能接受C++ 11/23 22:57