10年以上前の古いマイコンですが、使う必要があったので、備忘録として残しておきます。
手順
- ツールのインストール
- STLINKドライバのインストール
- STM8SDiscoveryの入手
- 標準ライブラリの入手
- Lチカ
- サンプルコードを動かしてみる
ツールのインストール
STVD(ST Visual Developer)
IDEのSTVDをダウンロードします。無料です。以下のURLからダウンロードします。会員登録が必要です。
https://www.stmcu.jp/design/sw_dev/pc_soft/52941/
ダウンロードが終わったらzipファイルを展開し、インストーラーを動かしてインストールします。基本的に手順に従えば問題なくインストールできます。
COSMIC STM8
CコンパイラのCOSMIC STM8をダウンロードします。無料です。以下のURLからダウンロードします。会員登録が必要です。
http://www.cosmic-software.com/download.php#stm8
ダウンロードが終わったらexeファイルを実行し、インストールします。進めていくとアクティベーションの手順になります。
ここのチェックを忘れないようにしてください。
アクティベーションで最後に「On the Web」ボタンを押します。
Webページから必要な情報を入力し、登録します。登録したメールアドレスに1年間有効の無料ライセンスファイルが送られてきます。
送られてきた「license.lic」ファイルを以下のフォルダにコピーします。
C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8\License
これでCOSMIC STM8 Cコンパイラは有効になります。
STVDとCOSMIC STM8のリンク
STVDを起動して、メニューのTools→Optionsからダイアログを開きます。
Toolsetのタブを開いて、STM8 Cosmicを選んで、Root pathに
C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8
を設定します。
これでコンパイラとIDEの準備はOKです。
STLINKドライバのインストール
STLINKドライバをダウンロードします。無料です。以下のURLからダウンロードします。会員登録が必要です。
https://www.stmcu.jp/design/sw_dev/pc_soft/53405/
ダウンロード後zipファイルを展開してstlink_winusb_install.batをダブルクリックします。
さらに
C:\Program Files (x86)\STMicroelectronics\st_toolset\stvd\dao
にある
ST Toolset.msi
を右クリックしインストールします。
STM8SDiscoveryの入手
色々入手先はあると思いますが、ここではchip1stopを紹介します。
https://www.chip1stop.com/USA/en/view/searchResult/SearchResultTop?zaikoFlg=true&makerCd=STMI&keyword=STM8S-DISCOVERY&cid=STM8S-DISCOVERY
標準ライブラリの入手
STM8用の標準ライブラリをダウンロードします。無料です。以下のURLからダウンロードします。会員登録が必要です。
https://www.stmcu.jp/design/sw_dev/firmware/52859/
適当なフォルダに展開します。日本語が入っていると、この後コンパイラが動作しないので、英語で空白無しのフォルダがいいと思います。
Lチカ
標準ライブラリのSTM8S_StdPeriph_Lib\Projectフォルダに移動します。STM8S_StdPeriph_Templateをコピーして「blinky」という名前にします。blinkyは読み取りのみに設定しているファイルを含んでいるので、読み書き出来るようにプロパティを変更します。
STVDを起動して、File→Open Workspaceから、STM8S_StdPeriph_Lib\Project\blinky\STVD\Cosmic\Project.stwを開きます。
STM8S-DiscoveryにのっているSTM8はSTM8S105なので、STVDでSTM8S105を選びます。
main.cの中を以下のように書き替えます。
/* Private function prototypes -----------------------------------------------*/
static void Delay(uint32_t t);
/* Private functions ---------------------------------------------------------*/
void main(void)
{
GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_HIGH_FAST);
/* Infinite loop */
while (1)
{
GPIO_WriteReverse(GPIOD, GPIO_PIN_0);
Delay(10000);
}
}
static void Delay(uint32_t t)
{
__IO uint32_t n = t;
while (n--) {
nop();
}
}
メニューのBuild→Buildからコンパイルしてエラーがないことを確認してください。
メニューのDebug InstrumentsからTarget Settingsをクリックしてダイアログを開きます。
SWIM_STLINKを以下のように選択してダイアログを閉じます。
STM8S-DiscoveryをPCにUSB接続し、STVDのDebug→Start Debuggingでデバッグを開始してください。
接続したらメニューのDebug→Continueでプログラムを実行します。LD1の緑色のLEDが点滅すれば成功です。
デバッガをDebug→Stop Debuggingで停止して、STVDを終了してください。
サンプルコードを動かしてみる
STM8S_StdPeriph_Examplesに各種サンプルコードがあるのですが、残念ながらSTM8S-Discovery用はほとんどありません。サンプルコードを参考にして自分で動かしてみてください。