STM32(CubeIDE:空きメモリ容量の確認)
1.本日の内容
(1) CubeIDEで空きメモリ容量(RAMとFLASH)の確認を行う。
(どの程度使っているかの確認)
使用マイコン:
・目次
2.内容
(1) メモリとは
・メモリは大きくROM(Read Only Memory)とRAM(Random Access Memory)に分類される。
・ROMの特徴
(a) 読み出し専用のメモリ
(b) 電源の状態に関係なく、消えることはない。(非発揮性)
・Flashメモリ
(a) ROMの一つ、その中でもブロック単位でデータを消去して書き換えることが出来る。
(b) データの永続的な保存が可能な為、ここに、プログラムコードやデータの保存に使用される。
・RAMの特徴
(a) ランダムに読み書きが自由に出来る。
(b) 電源を切ると、消去される。(発揮性)
メモリの詳細に関しては下記書籍など、基本情報技術者の知識を参照。
|
(2) STM32マイコンのメモリ
・STM32マイコンには、RAMとFLASHがあり、下記の様にマイコンによって異なる。
・プログラムの規模によって必要なFLASHやRAMの容量を決定する。
・Nucleof401REの場合は、STM32F401RET6が付いている為、
FLASHは512KB、RAMは96KBある。
規模が大きくなる場合、この値を気にする必要が出る。
STM32サイト:STM32F4 | STM32, STM8ファミリはSTの32bit/8bit汎用マイクロコントローラ製品
(3) 実際に作成したプログラムの容量、空き容量を確認する。
通常プログラムをビルドすると、下記のように表示される。
・このtext、data、bssというのが現在使用しているメモリ容量になる。
(実際には、下記以外の項目がある)
Flash側:
(a) text:プログラム(コード)の保存領域
RAM側:
(b) data:初期値がを持つ変数の初期値を格納している領域
(c) bss:初期値を持たない(0で初期化される)変数の領域
(4) RAMとFlashの表示設定
上記内容だと、実際にRAMとFlashがどの程度使われているのか分かりにくい。
CubeIDEのリンカの設定を変更し、RAMとFlashの使用容量を表示する。
(a) 確認するプロジェクトの上で右クリック
(b) プロパティをクリックして開く
(c) C/C++ BuilderのSettingタブを開く。
(d) Tool Settingsを選択し、MUC GCC LinkerのCommand欄を選択する。
(e) Command欄には、gccと記載されている。
(f) gccの後ろに、-Wl,--print-memory-usageを入力する。
(gcc -Wl,--print-memory-usage とする)
(g) 適用を行い、再度ビルドする。
(h) ビルドすると、下記のような形で、
・RAMとFlashの使用量(Used Size)
・RAMとFlashのメモリ容量(Region Size)
・使用率(%age Used)
が表示されるようになる。
3.関連記事
・STM32マイコン_2(UART通信:TeraTermにHellow表示) - Project_OKI’s diary
・STM32マイコン_3(UART通信:複数文字送信) - Project_OKI’s diary
・STM32マイコン_4(NVICの設定内容) - Project_OKI’s diary
・STM32マイコン_5(スイッチ入力とLED点灯、消灯) - Project_OKI’s diary
その他:
・CubeIDEの使い方(起動~デバック実行) - Project_OKI’s diary
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary