1. 以前的庫函式怎麼使用?
新版的庫的標頭檔案前面是
#ifdef __cplusplus
extern "c"
#endif
2. 中斷函式進不去呀?
中斷函式定義前也要加上 extern "c"
3. 對庫裡面定義的結構體有警告: warning: #368-d: class "" defines no constructor to initialize the following:
我用這段**遮蔽了中間警告
#ifdef __cplusplus
extern "c"
4,定義全書類變數後會有錯誤:
..\output\stm32test.axf: error: l6218e: undefined symbol __cpp_initialize__aeabi_ (referred from anon$$obj.o).
原因是microlib不支援c++,只需要將options中use microlib去掉勾選即可。
5,c++有 new 關鍵字,類似c的malloc,但是這個是需要有記憶體管理提供動態記憶體的,這個在乙個沒有作業系統的mcu上咋整呀?
(ps:看了他們的**庫,我發現我以前寫的檔案系統實在是弱啊。。。沒關係,會繼續完善的)
人家是這麼搞的,利用函式過載,過載了new操作符,(軟體**會跳進過載的函式裡)
,自己只要提供malloc和free以及堆的一些初始化就行了(這個一般要上了os才有記憶體管理的吧。。。)
/* * implement c++ new/delete operators using the heap */
void *operator new(size_t size)
void *operator new(size_t size)
void operator delete(void *p)
void operator delete(void *p)
大部分問題解決是參考前輩的方法,在這裡整理一下。
stm32建c 與c混合工程遇到的問題及解決
1.以前的庫函式怎麼使用?新版的庫的標頭檔案前面是 ifdef cplusplus extern c endif 2.中斷函式進不去呀?中斷函式定義前也要加上 extern c 3.對庫裡面定義的結構體有警告 warning 368 d class defines no constructor to...
STM32學習之 stm32中C語言的資料型別
stm32 c語言資料型別 在程式設計過程中,不同的cpu,其資料型別的意義各不相同,所以一定要注意相應變數資料型別的定義和轉換,否則在計算中可能會出現不確定的錯誤。一 c語言中的種類資料 整型 int short long 實型 float double stm32中的資料型別非常的多,常用的變數...
STM32入門筆記 環境配置 工程建立與工程移植
背景 我是機械電子工程專業的一名本科生,網名小土豆,今年報名了本校的大學生科研訓練計畫,專案內容是給無人自行車做乙個遙控裝置,可以通過遙控器操縱車輪實現相應的操作 如輪轂電機轉動,轉向電機轉動,配重電機實現搖擺動作等 目前專案由我在內的三名本科生在做,今年國慶期間算是專案正式啟動,購買了現有的ps2...