Previous: 5.4.6. ファームウェアの修正 |
Up: 5.4.6. ファームウェアの修正 |
Next: 5.4.6.2. クリスタルの周波数が異なるボードの場合 |
STM32には用途に応じて様々な製品があり、実装している周辺回路やクロックの仕様が異なっています。ファームウェアではすべてのSTM32に対応するため、予めどのSTM32を使用するのかを指定することにより、対応したコードが有効化されるようになっています。
makefile.inでマイコンを指定をした場合には、自動的に対応するSTM32の種別が指定されるようになっています。内部的には、コンパイルオプション(-D)で強制的にマクロ定義を上書きしています。
自分で指定をする場合には、/lib/CMSIS/CM3/DeviceSupport/ST/STM32F10xフォルダ内にあるstm32f10x.hを開いてください。開くときに下図のようなスケーラビリティオプションの設定を促すダイアログが現れます。その都度確認されると面倒ですので、チェックをつけておきましょう。
図 5?50 Editor Scalabilityの確認
48行目以降が以下のようなコードとなっているはずです。
#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) ? /* #define STM32F10X_LD */???? /*!< STM32F10X_LD: STM32 Low density devices */ ? /* #define STM32F10X_LD_VL */? /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */? ? /* #define STM32F10X_MD */???? /*!< STM32F10X_MD: STM32 Medium density devices */ ? /* #define STM32F10X_MD_VL */? /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */? ? /* #define STM32F10X_HD */???? /*!< STM32F10X_HD: STM32 High density devices */ ? #define STM32F10X_XL????? /*!< STM32F10X_XL: STM32 XL-density devices */ ? /* #define STM32F10X_CL */ ????/*!< STM32F10X_CL: STM32 Connectivity line devices */ #endif |
下記の表に従い、使用するマイコンボードに搭載されたマイコンのメモリ量に対応した行のコメントを外し、該当しないものはコメントアウトします。上記のコードはHigh density用にコメント記号を付けた例です。VLはバリューライン用、CLはコネクティビティライン用ですので本書では使用しません。
メモリ量 |
本書で取り上げるマイコンボード |
密度の分類 |
対応するマクロ名 |
64~128 Kバイト |
STBee mini STM32-H103 STM32-P103 CQ-STARM |
Medium density |
STM32F10X_MD |
256~512 Kバイト |
STBee CQ-ST103 STM3210E-EVAL |
High density |
STM32F10X_HD |
Previous: 5.4.6. ファームウェアの修正 |
Up: 5.4.6. ファームウェアの修正 |
Next: 5.4.6.2. クリスタルの周波数が異なるボードの場合 |