STM32建c 與c混合工程遇到的問題及解決

2021-08-17 19:56:55 字數 1008 閱讀 8151

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...