ライブラリ付属のテンプレートが思ったより使いにくかったので、自作しました。個人的な好みがかなり入ってますが。
こちらのページからダウンロードできます。
以下、Readmeの内容です。
■ CQ-STARM および STBee 向けRide7用プロジェクトサンプル(DFU対応)
解凍場所は、Cドライブ直下などの、スペースや全角文字を含まない
ディレクトリを推奨します
Projects\ride_test1 にプロジェクトおよびソースファイルが入っています
Ride7がインストール済みであれば、"project1.rprj"をダブルクリックすれば
Ride7が立ち上がるはずです
サンプルを取っておきたい時はフォルダごと適当にコピー・リネームして使ってください
ただしディレクトリ階層は同じにしてください。ライブラリが読み込めなくなります
起動したら、メニューの Project > Properties より、設定を選択してください
選べるのは以下の4通りです
- CQ_STARM
- CQ_STARM_DFU
- STBee
- STBee_DFU
後はビルドすればHexファイルが生成されます
DFU版は、リンカのオプションに
- Wl,--section-start -Xlinker .isr_vector=0x08003000
と加えることで開始アドレスをずらしています
また、マクロに"DFU"を追加して、ソース上でベクタテーブルの位置を
切り替えています(main.cの114行目)
サンプルでは割り込みを使っていないのであまり意味はないですが
コンパイラ設定のCQ、STBEE、DFUの3つのマクロはライブラリとは無関係です
他のマクロはライブラリで必要なものです
サンプルの内容は
- 内臓オシレータを使用した立ち上げ、
- シリアル通信による"Hello World!" (USBの仮想COMでなく、単純なUSART)
- LED点滅
です
LEDポートもマクロで切り替えているので、どちらのボードを使うかによって
ソースをいじる必要はありません
内臓オシレータを使用しているのはクリスタルの違いを無視するためです
ロボット等の用途には、どのようなクロックで動作しているのか
正確に知ることが必要不可欠だと考えているので、ライブラリ標準の
初期化関数は使いませんでした
他の機能を使いたい時は、
プロジェクトの"StdPeriph_Driver"のところに
"Libraries\STM32F10x_StdPeriph_Driver\src" フォルダ内の
該当ソースファイルを追加し、
stm32f10x_conf.h 内の該当ヘッダのインクルードのコメントアウトを
外してください
同梱のライブラリは StdPeriph_Lib_V3.3.0 のものです
一部のファイルを省いています
使用した環境は
Ride7 7.28.10.0075
RKit-ARM 1.24.10.0050
また、CQ-STARMで動作検証しました
STBeeは動作未検証です
⇒正常動作したとの報告を頂きました