Keil MDK-ARM v5.14 Project Generator (1) ― 2015年05月01日 21時22分04秒
MDK5 Software Packs の一部は GCC がサポートされている。
今回はそれをどうやって使うのか調べてみよう。
テストのために使うだけなのでできるだけ小さなパッケージにしたい。
Keil.STM32F2xx_DFP.2.2.0.pack が 67,991,464 と比較的小さいのでこれにしよう。
さっそく Pack Installer から Keil.STM32F2xx_DFP をインストール。
ちなみに Keil.STM32F2xx_DFP.2.0.0.pack から STMicroelectronics STM32CubeF2 Firmware Package がベースになっている。
さてインストールが終わったので New uVision Project で新規プロジェクトを作成する。
デバイスは STM32F205RBTx だ。
OK をクリックすると Run-Time Environment の画面になる。
特に ARMCC と GCC の選択項目はない。
どこで切り替えるのだろう。
CMSIS CORE と Device Startup にチェックして OK 。
startup_stm32f205xx.s と system_stm32f2xx.c がプロジェクトに入っている。
Project の Options for Target を見ると GCC になっている。デフォルトが GCC なのだろうか?
それとも何か設定を見逃したのか?
Source Group 1 にダミーの main を入れてコンパイルしてみる。
いつものエラーだ。
再度コンパイル
Project の Options CC Tab Include Paths に
C:\Keil_v5\ARM\PACK\Keil\STM32F2xx_DFP\2.2.0\Drivers\STM32F2xx_HAL_Driver\Inc を追加。
再再度コンパイル
C:\Keil_v5\ARM\Pack\Keil\STM32F2xx_DFP\2.2.0\Drivers\STM32F2xx_HAL_Driver\Inc に stm32f2xx_hal_conf_template.h があるので名前を変えてそのまま使うことにしよう。
再再再度コンパイル
Project の Options CC Tab Include Paths に
C:\Keil_v5\ARM\PACK\Keil\STM32F2xx_DFP\2.2.0\Drivers\CMSIS\Device\ST\STM32F2xx\Include を追加。
再再再再度コンパイル
Project の Options Linker Tab Linker Script File: に stm32_flash.ld を登録。
再再再再再度コンパイル
Misc controls に -Xlinker --gc-sections を指定する。
再再再再再再度コンパイル
コンパイルが通る。
プロジェクトジェネレータに GCC が復活したのはいいことだが、パスとデファインとリンカースクリプトを何とかしたいところだ。
そして、ARMCC と GCC の切り替え方法はどうなっているんだ?
参照:
MDK5 Software Packs
環境:Keil MDK-ARM V5.14
+ GCC ARM/embedded-4_9-branch revision 218278
+ Keil.STM32F2xx_DFP.2.2.0.pack
今回はそれをどうやって使うのか調べてみよう。
テストのために使うだけなのでできるだけ小さなパッケージにしたい。
Keil.STM32F2xx_DFP.2.2.0.pack が 67,991,464 と比較的小さいのでこれにしよう。
さっそく Pack Installer から Keil.STM32F2xx_DFP をインストール。
ちなみに Keil.STM32F2xx_DFP.2.0.0.pack から STMicroelectronics STM32CubeF2 Firmware Package がベースになっている。
さてインストールが終わったので New uVision Project で新規プロジェクトを作成する。
デバイスは STM32F205RBTx だ。
OK をクリックすると Run-Time Environment の画面になる。
特に ARMCC と GCC の選択項目はない。
どこで切り替えるのだろう。
CMSIS CORE と Device Startup にチェックして OK 。
startup_stm32f205xx.s と system_stm32f2xx.c がプロジェクトに入っている。
Project の Options for Target を見ると GCC になっている。デフォルトが GCC なのだろうか?
それとも何か設定を見逃したのか?
Source Group 1 にダミーの main を入れてコンパイルしてみる。
いつものエラーだ。
RTE/Device/STM32F205RBTx/system_stm32f2xx.c(1): error: target CPU does not support ARM modeProject の Options CC Tab Compile Thumb Code にチェックを入れる。
再度コンパイル
RTE/Device/STM32F205RBTx/system_stm32f2xx.c(65): error: fatal error: stm32f2xx_hal.h: No such file or directoryどうやら Path が通っていないらしい。
Project の Options CC Tab Include Paths に
C:\Keil_v5\ARM\PACK\Keil\STM32F2xx_DFP\2.2.0\Drivers\STM32F2xx_HAL_Driver\Inc を追加。
再再度コンパイル
C:/Keil_v5/ARM/PACK/Keil/STM32F2xx_DFP/2.2.0/Drivers/STM32F2xx_HAL_Driver/Inc/stm32f2xx_hal.h:48:32: fatal error: stm32f2xx_hal_conf.h: No such file or directorystm32f2xx_hal_conf.h が無い。これは自分で用意しなければならないらしい。
C:\Keil_v5\ARM\Pack\Keil\STM32F2xx_DFP\2.2.0\Drivers\STM32F2xx_HAL_Driver\Inc に stm32f2xx_hal_conf_template.h があるので名前を変えてそのまま使うことにしよう。
再再再度コンパイル
C:/Keil_v5/ARM/PACK/Keil/STM32F2xx_DFP/2.2.0/Drivers/STM32F2xx_HAL_Driver/Inc/stm32f2xx_hal_def.h:48:23: fatal error: stm32f2xx.h: No such file or directoryPath が通っていない。
Project の Options CC Tab Include Paths に
C:\Keil_v5\ARM\PACK\Keil\STM32F2xx_DFP\2.2.0\Drivers\CMSIS\Device\ST\STM32F2xx\Include を追加。
再再再再度コンパイル
c:/program files/raisonance/ride/arm-gcc/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld.exe: warning: cannot find entry symbol _start; defaulting to 00008000これはリンカースクリプトが無いときのエラーだ。
Project の Options Linker Tab Linker Script File: に stm32_flash.ld を登録。
再再再再再度コンパイル
c:/program files/raisonance/ride/arm-gcc/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libc.a(lib_a-init.o): In function `__libc_init_array': init.c:(.text.__libc_init_array+0x20): undefined reference to `_init'Project の Options Linker Tab [Do not use Standard System Startup Files] のチェックをはずし
Misc controls に -Xlinker --gc-sections を指定する。
再再再再再再度コンパイル
コンパイルが通る。
プロジェクトジェネレータに GCC が復活したのはいいことだが、パスとデファインとリンカースクリプトを何とかしたいところだ。
そして、ARMCC と GCC の切り替え方法はどうなっているんだ?
参照:
MDK5 Software Packs
環境:Keil MDK-ARM V5.14
+ GCC ARM/embedded-4_9-branch revision 218278
+ Keil.STM32F2xx_DFP.2.2.0.pack
コメント
トラックバック
このエントリのトラックバックURL: http://syslab.asablo.jp/blog/2015/05/02/7624847/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。