This Project Has Not Released Any Files
STM32用のライブラリを開発して配布します。 名前にOLEが入っていますがObject Linking and Embeddingとは関係なく、stm32とmoleを足して短い名前にしただけです。
自宅鯖 https://ashidan.daemon.asia/its/projects/embedded/wiki の記事のほうが情報量が多いかも。
文書中の商標のなんやかやはその企業の商標です。
ファイルをリリースする予定はなく、利用のためにはgitリポジトリをcloneする必要があります。
インストール方法 にいろいろ書いてあります。
※ 作り始めたばかりなので、ろくに中身がありません。
車輪の再発明、ただし、STM32CubeMXの自動生成コードと併用できて、ポーリングでなくブロッキングを使い(FreeRTOS前提)、商用利用に支障のない(ソース開示義務のない)ライセンスのライブラリ、を目指します。
私が作成している部分は The MIT Lisenceです。
ただし、stmole32が依存しているライブラリ ( mw/ 以下の MicroShellなど) に関しては、そのライブラリの配布条件に従います。
また、stmole32exa にはCubeMXが自動生成したコードが含まれていて、 Ultimate Liberty Software License 等になっています。 ライセンスを守ってご使用ください。
Lesserでない普通のGNUのライブラリには依存しないようにするつもりです。
将来的にはCortex-M0系(STM32だとF0やL0のシリーズ)にも対応したいと考えています。
当初はGNU MCU Eclipseを使った環境を構築するつもりでしたが、非常に面倒な手順が必要で、人様にやっていただこうにも途中で投げ出されそうでした。
運よく Makefile+CubeMX+CubeIDEでSTM32開発 という記事を見つけたので、それを参考にさせていただき、CubeIDEで小細工をしてMakefile projectを扱う方式にしました。
DevEnvCubeIde --- 開発環境の構築手順
DevEnvTouchGfx --- GUIアプリケーション用の開発環境の構築手順
DevEnvProto --- 開発環境の実験
ConfigurationManagement --- CubeMXやTouchGFXで作ったプロジェクトをgitリポジトリに記録するときのガイド
ライブラリ stmole32 は、ユーザのgitリポジトリに対してサブモジュールとして組み込むことを想定しています。
サンプルプログラム集 stmole32exa が、ユーザのgitリポジトリの例として機能します。
バッファサイズなどは、
#if !defined(FOO_SIZE) #define FOO_SIZE 64のようにヘッダに記載します。
よって、ヘッダを修正することなく、MakefileにてCFLAGSへ-Dオプションを追加することで上書き可能です。
シンボル | 用途 | デバッグ版 | リリース版 |
configASSERT | 使わない | - | - |
assert | 代替にassert_paramを使用 | - | - |
assert_param | 関数の始めに引数をチェック | 有効 | 何もしない文 |
abort | 代替にMOLE_CRASHを使用 | - | - |
MOLE_CRASH | 失敗するはずのない処理が失敗した場合に使用 | 有効 | 有効 |
にっちもさっちもいかない状態に陥った場合は、関数としてエラーを返すのではなくBKPT命令でデバッガ上で止まるようにしています。
リリース版ではBKPT命令を発行せず無限ループに入ります。ウォッチドッグタイマ未使用の場合は、ユーザにはハングアップに見えるでしょう。
モノ | 名前 | 備考 |
typedef名 | ~_td | _tは処理系が使うので、それと区別がつきやすいように |
グローバル変数 | g_~ | g_ のあと小文字で始まるキャメルケース |
ファイル変数 | l_~ | Localのエル l_ のあと小文字で始まるキャメルケース |
グローバル定数 | g_Abc~ | |
ファイル定数 | l_Abc~ | |
マクロ名 | MOLE_ABC_DEF | 大文字とアンダーバーの組み合わせ |
構造体名 | MoleAbc | Moleで始まるキャメルケース |
ユーザのシンボル名との衝突を避けるため、 関数名は MoleAbc_write() のような命名、マクロは MOLE_ で始めるようにしています。 ただし、ファイルに閉じたシンボルに関してはMoleを省略してもっと短い名前にしています。
This Project Has Not Released Any Files
F4Discoveryエミュ用サンプル作成 | 2020-11-04 08:34 |
XPACKにQEMUで動くSTM32F4Discoveryエミュレータがある。 stmole32exaでエミュ向けサンプルプログラムを提供すれば、NUCLEO-F... | molelord |
使い方を書く | 2020-11-01 17:09 |
OSDN標準の、プロジェクトの使い方の文書を作成する。 インストール方法と異なり、ライブラリをビルドできる状態にするには相... | molelord |
LEDチカチカサンプルを作成 | 2020-11-01 15:59 |
最も基本的な、LEDを点滅させるだけのサンプルプロジェクトを作成する。 ビルド環境が正しく構築できたかの試金石になるので... | molelord |
トラブルシューティングページを用意 | 2020-11-01 00:26 |
トラブルの例とその対策を羅列するためのページを用意する。 トラブルはいくらでもあり、ページは永遠に完成しない。 よって... | molelord |
[PageInfo]
LastUpdate: 2022-08-24 09:38:55, ModifiedBy: molelord
[License]
Creative Commons 4.0 Attribution-ShareAlike
[Permissions]
view:all, edit:login users, delete/config:members