CoIDEでSTMF4Discovery用プロジェクトを作成してみる

では、早速プログラムを書いてみましょう。CoIDEを起動してください。プロジェクトの作成は「Project」の「New Project」から行います。

codeide9

するとCPUを選択する画面になります。

codeide10

僕らが使うSTM32F4Discoveryは「STM32F407VG」ですのでそれを探します

codeide11

見つけたらクリックします。すると選択肢が出てきます

codeide12

ここで「New Project」を選択します。すると、どこにプロジェクトを置くのか聞かれます。
どこでもいい場合はこんな感じで設定しちゃいましょう。

codeide13

保存が完了するとこんな画面になるかと思います。
左側がプロジェクトの画面で早速main.cが用意されています。

codeide14

CMSISの追加

やはり、CMSISはあるととても便利です。
これはメーカーから公開されているプログラムなどをプロジェクトに取り込む作業です。
上の画像にある画面から追加削除できます。(家のアイコンのボタンを押せばこの画面を開けます)
今回はとりあえず動かすための最低限なので

  • cmsis_core
  • STM32F407xx_cmsisboot

の2つを追加します。Addボタンを押せば追加できます。

codeide15

追加するとプロジェクトに現れます。こんな感じです。

codeide16

何故か追加していないHAL_Driverが入っていますが、依存関係でしょうか。。。
不思議な事にcmsisbootいかにもhalって言うディレクトリがあるので同じファイルが2つあることになってしまいます。
案の定、試しにビルドボタンを押してみると(左から3つ目のアイコン、虫アイコンの2つ左)同じファイルが2つあるエラーになってしまいました。なので、HAL_Driverの方を右クリックしてDeleteから削除します。

codeide18

こうします。おそらく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]
&lt;div align=”left”&gt;&lt;span style=”font-family: Courier New; font-size: small;”&gt;C:\CooCox\CoIDE_V2Beta&gt;”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”&nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div align=”left”&gt;&lt;span style=”font-family: Courier New; font-size: small;”&gt;Chip Erase:&nbsp; Failed&lt;/span&gt;&lt;/div&gt;
&lt;div align=”left”&gt;&lt;span style=”color: #ff0000; font-family: Courier New; font-size: small;”&gt;Error: Flash driver function execute timeout&lt;/span&gt;&lt;/div&gt;
&lt;div align=”left”&gt;&lt;/div&gt;
[/shell]

codeide19

調べたところ、どうやらDiscoveryボード上のST-Linkチップのファームウェアが古いようです。最新にUpdateしましょう。
ST-LinkのファームウェアをUpdateするにはSTMが出しているST-Link Utilityを使います。

ちょっと長くなるので次回にしましょう。
目次へ戻る