さて、考えていても埒が明かないので手を動かしてみることにしたい。まず(1)の、STM32F207VG用のVC PFirmwareをそのままSTM32F407VGに食わせてみることにする。こちらのページの"Desing support"ページの下のほうにFirmwareへのリンクが容易されているが、この中に"STM32F105/7 and STM32F2xx USB on-the-go Host and device library (UM1021)"というものがあるので、これをダウンロードして任意のディレクトリに展開してやる。
この下の"Project\USB_Device_Examples\VCP"の中が目的のものである(Photo01)。この更に下にあるEWARMの中にusbd_vcp.ewwというファイルがあるので、これをIAR Embedded Workbenchで開き、まずは普通にWorkplaceの構成を"STM322xG-EVAL-USBD-FS"を選択して(Photo02)ビルドしてみると、ビルドそのものは普通にできた(Photo03)。ただしこれをST-Link経由でダウンロードしようとしても、当然ながらうまくいかない(Photo04)。
Photo01: これはExp.lzhでZIPファイルを展開したもの。VCPの下にEWARMディレクトリもあり、これを使えばすぐにWorkspaceが展開できる...筈。 |
Photo02: この際どれを選んでも同じという話はあるが、とりあえず気分で一番STM32F407VGに構成の近いSTM32F207VGを選択してみた。 |
Photo03: ここまではまぁ、機種依存部の無い処理だから普通に終わる。 |
Photo04: 「致命的なエラー」で済まされても困るのだが、ここではSTM322xG-EVALという評価ボード+J-Linkという構成を想定しており、こっちはSTM32F4 Discovery+ST-Linkなので、これがマッチしていないのが問題。 |
まぁ無駄だとは思いつつ、一応対応デバイスの変更も行ってみた。Workspaceのトップを右クリックして出てくるコンテクストメニュー(Photo05)でオプション→一般オプションを選び(Photo06)、このターゲットデバイスの選択でSTMicroのSTM32F4xxxを選択する。最終的にこう設定されればひとまずOK(Photo07)。またオプション→デバッガが現在はJ-Link/J-Traceに設定されているので(Photo08)、これをST-Linkに切り替える(Photo09)。後は当面はデフォルトのままで大丈夫だ。
Photo05: このオプション項目がツールバー側のメニューにないのが不便、というのは単に筆者がIAR Embedded Workbenchに慣れてないだけかも。 |
Photo06: 対応デバイスが多すぎる。それだけ広く使われているということかもしれないが。 |
Photo07: FPUは一応Cortex-M4だしということでVFPv4を選んだが、当面は無しでも大丈夫。ただFPUを使うときにはこれをちゃんと設定してやる必要がある。 |
Photo08: ドライバは全部で13種類ほど用意されているが、明らかにSTM32F4には無関係なものも混じっている。このあたりはやはり汎用IDEらしい。 |
設定を変更したらビルドしてダウンロードであるが、ビルドは成功するもののダウンロードの最中で今度はこんな事に(Photo10)。もう少し真面目にやる必要がありそうだ。
ところでビルドのログを見ると、こんな感じになっている。
構成 usbd_vcp - STM322xG-EVAL_USBD-FS をビルド中
ビルドツリーを更新中...
81 個のファイルを削除しました。
ビルドツリーを更新中...
app.c
core_cm3.c
lcd_log.c
misc.c
startup_stm32f2xx.s
stm322xg_eval_lcd.c
stm32_eval.c
stm32f2xx_dma.c
stm32f2xx_exti.c
stm32f2xx_flash.c
stm32f2xx_fsmc.c
stm32f2xx_gpio.c
stm32f2xx_i2c.c
stm32f2xx_pwr.c
stm32f2xx_rcc.c
stm32f2xx_spi.c
stm32f2xx_syscfg.c
stm32f2xx_usart.c
stm32fxxx_it.c
system_stm32f2xx.c
usb_bsp.c
usb_core.c
usb_dcd.c
usb_dcd_int.c
usbd_cdc_core.c
usbd_cdc_vcp.c
usbd_core.c
usbd_desc.c
usbd_ioreq.c
usbd_req.c
usbd_usr.c
リンク中
エラーの合計数: 0
ワーニングの合計数: 0
"stm32f2xx_*.c"というファイルがかなりあり、これは全部stm32f4xx_*に差し替えないと本来おかしい。またlcd_log.cというファイルがあるが、これはSTM322xG-EVALに液晶モニターが付属しており、ここに結果を出しているためで、今回はそぐわない。
このあたりをもう少し真面目にファイルを差し替えてみることにする。
(続く)