では、早速プログラムを書いてみましょう。CoIDEを起動してください。プロジェクトの作成は「Project」の「New Project」から行います。
するとCPUを選択する画面になります。
僕らが使うSTM32F4Discoveryは「STM32F407VG」ですのでそれを探します
見つけたらクリックします。すると選択肢が出てきます
ここで「New Project」を選択します。すると、どこにプロジェクトを置くのか聞かれます。
どこでもいい場合はこんな感じで設定しちゃいましょう。
保存が完了するとこんな画面になるかと思います。
左側がプロジェクトの画面で早速main.cが用意されています。
CMSISの追加
やはり、CMSISはあるととても便利です。
これはメーカーから公開されているプログラムなどをプロジェクトに取り込む作業です。
上の画像にある画面から追加削除できます。(家のアイコンのボタンを押せばこの画面を開けます)
今回はとりあえず動かすための最低限なので
- cmsis_core
- STM32F407xx_cmsisboot
の2つを追加します。Addボタンを押せば追加できます。
追加するとプロジェクトに現れます。こんな感じです。
何故か追加していないHAL_Driverが入っていますが、依存関係でしょうか。。。
不思議な事にcmsisbootいかにもhalって言うディレクトリがあるので同じファイルが2つあることになってしまいます。
案の定、試しにビルドボタンを押してみると(左から3つ目のアイコン、虫アイコンの2つ左)同じファイルが2つあるエラーになってしまいました。なので、HAL_Driverの方を右クリックしてDeleteから削除します。
こうします。おそらくCoIDEのバグかと思いますが、これで正常にビルドできるようになりました。
試しにプログラムを書き込んでみましょう。
main.cに以下のプログラムを書き込みます。ただ、LEDをボタンに合わせて点灯させるだけのものです。
[c]
#include “stm32f4xx.h”
int main(void)
{
RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN;
GPIOD->MODER = 0x40000000;
GPIOD->ODR = 1 << 15;;
while(1);
}
[/c]
そしてビルドします。
ビルドしたらフラッシュボタンを押します。このIDEからプログラムも書き込めるのは素晴らしいですね。書き込みは虫アイコンの右側です。STM32F4 DiscoveryをUSBでWindowsに繋いでください。
これで書き込めるんですが、しかし、押すとこのようなエラーが。
[shell]
<div align=”left”><span style=”font-family: Courier New; font-size: small;”>C:\CooCox\CoIDE_V2Beta>”C:/CooCox/CoIDE_V2Beta/bin\coflash.exe” erase STM32F407VG –adapter-name=ST-Link –port=SWD –adapter-clk=500000 –driver=”C:\Users\yuki\AppData\Roaming\CooCox\CoIDE\config\flash\CooCox-Flash\CoIDE_STM32F4xx_1024K\STM32F4xx_1024.elf” </span></div>
<div align=”left”><span style=”font-family: Courier New; font-size: small;”>Chip Erase: Failed</span></div>
<div align=”left”><span style=”color: #ff0000; font-family: Courier New; font-size: small;”>Error: Flash driver function execute timeout</span></div>
<div align=”left”></div>
[/shell]
調べたところ、どうやらDiscoveryボード上のST-Linkチップのファームウェアが古いようです。最新にUpdateしましょう。
ST-LinkのファームウェアをUpdateするにはSTMが出しているST-Link Utilityを使います。
ちょっと長くなるので次回にしましょう。
目次へ戻る