はじめに
stm32のGUIツール「stm32 CubeMX」内部の「Project Setting」内部に
「Do not generate the main()」という関数がある.最近全然stm32の開発をしていなかったこともありこれがどう役立つのかあまり考えたことがなかった.
自分の考え結果としての,利点,欠点をメモする.
利点
CPPでの開発がしやすくなる
デフォルトだと,main関数が.c
ファイルないから呼ばれると,CからCPPの関数を呼び出すのがめんどくさい(個人的に).
このため,main関数は.cpp
ファイルないに記載されていると都合が良さそう,
しかし,CubeMXは基本的にmain.c
にmain関数が記載されているため,別途.cpp
ファイル内にmain関数を書いても,main関数の競合が生じかねない.このオプションを指定することで問題が解決する.
欠点
CubeMXで生成された初期設定の関数MX_○○_Init()
系の関数,Systickまわりの初期化関数を自分で呼び出す(自分で書く必要がある)
この結果,ペリフェラルを追加したり削除してもこれがmain関数には反映されないので注意が必要.
まとめ
組み込みでもcppを使ってみたいなと感じていたので,このオプションはうれしいと感じた.