ヒント:EasyFlash v4.1の後、flashDBのオープンソースプロジェクトは、EasyFlashに基づいて新しく設計および開発されました。タイミングデータベース、マルチパーティション管理、複数のデータベースインスタンスなどの新しく統合された機能があり、全体的なパフォーマンスがある程度改善されました。フォローへようこそ:https://github.com/armink/flashdb。同時に、既存のEasyFlashは引き続き維持されます。
EasyFlashは、オープンソースの軽量埋め込みフラッシュメモリライブラリであるため、開発者はフラッシュメモリに基づいて一般的なアプリケーション開発を簡単に実装できます。これは、スマートホーム、ウェアラブル、産業管理、医療、モノのインターネット、およびパワーオフストレージ機能を必要とする他の製品に非常に適しています。リソースの使用量が非常に低く、さまざまなMCUオンチップメモリをサポートしています。このライブラリには主に3つの実用的な機能が含まれています。
EasyFlashは、製品のパラメーターの設定や実行ログの実行などの情報のパワーダウンストレージ関数を実現するだけでなく、製品パラメーターの処理における開発者の難易度を追加、削除、変更、クエリの追加方法をカプセル化し、後のアップグレードで製品のより良いスケーラビリティを確保することもカプセル化できます。 Flashを小さなキー価値ストレージデータベースにし、フラッシュをNOSQL(非関連データベース)モデルに変換します。
このライブラリは、一般的に使用されるIAP(アプリケーションプログラミング)関数のインターフェイスをカプセル化し、CRC32検証をサポートし、ブートローダーとアプリケーションのアップグレードをサポートします。
ファイルシステムのない小型製品に最適であり、開発者がシステムのクラッシュまたはクラッシュの原因を迅速に見つけて見つけやすくなります。同時に、EasyLogger(EasyFlashを使用したシームレスなインターフェイスを提供する私のオープンソースの超軽量、高性能Cログライブラリ)で使用され、Cログのフラッシュストレージ関数を簡単に実装します。
現在、env関数には2つの主要なモードがあります。1つはv4.0に持ち込まれたngモード、もう1つはv3.0を継続するレガシーモードです
対応するソースコードファイルは次のとおりです
ef_env.c
2019年の春祭り以来、EasyFlashは4年以上の反復後にV4.0バージョンを最終的にリリースし、多くの開発者のニーズと提案と組み合わせました。このバージョンのenv関数は、 Ng (次世代)モードという名前です。これは、次の新機能を備えた完全にリファクタリングされた新しいバージョンです。
v4.0デザインと内部原則、v4.0移行ガイドなど、以下のドキュメントセクションを読み続けてください
注:一部のフラッシュは、STM32L4オンチップフラッシュなど、逆順序で記述できないため、NGモードは使用できません。この場合、v3.0のレガシーモードを使用することをお勧めします。
対応するソースコードファイルは、
ef_env_legacy.cおよびef_env_legacy_wl.cです
レガシーモードには、摩耗バランスとパワーダウン保護機能もあります。 V 4.0 ngモードと比較して、レガシーモードを使用するには、各envを一時的にキャッシュし、最後に保存インターフェイスを呼び出し、セクターを均一に消去してからフラッシュに保存するために追加のRAMスペースが必要です。
| v4.0 ngモード | v3.0レガシーモード | |
|---|---|---|
| RAMリソースの使用 | 低い | 高い |
| フラッシュ包括的なサポート | 一部のフラッシュは制限されています:たとえば、STM32L4 IN-CHIP | より包括的 |
| GCガベージコレクションは必要ですか? | GCが必要です。これにより、GCがトリガーされると書き込み速度が遅くなります | 不要 |
| 値タイプ制限 | 無制限 | より良い文字列タイプをサポートします |
| パワーダウン保護 | サポート | サポート |
| 摩耗バランス | サポート | サポート |
| 増分アップグレード | サポート | サポート |
最低要求: ROM: 6K bytes RAM: 0.1K bytes
現在、ハードウェアプラットフォームには、 stm32f10xおよびstm32f4xxシリーズオンチップフラッシュ、および著者の製品が使用するプラットフォームでもあるオフチップSPIフラッシュ(SFUDに基づく)が含まれています。他のプラットフォームの移植は難しくありません。プロジェクト設計の開始時に、すべてのプラットフォームの適応性の問題が考慮された(64ビットを除く)ため、すべての移植インターフェイスが予約されていました。ポートするには、消去、執筆、読み取り、印刷の関数を実現するために、ファイルeasyflashportef_port.cを変更するだけです。
フォークアンドプルリクエストへようこそ(github | oschina |コーディング)。このオープンソースプロジェクトが素晴らしいと思われる場合は、プロジェクトのホームページの右上隅にある星をクリックして、困っている友人にそれを推奨できます。
次の図は、コンソール(端末)を介して環境変数を呼び出すための一般的なインターフェイスです。次のプロセスを実証し、すべてがアプリケーションレイヤーによる直接呼び出しをサポートします。
tempという名前の「温度」の環境変数を作成し、 123の値を割り当てます。456に変更し、保存および再起動します。
次の図は、コンソールを介してIAPソフトウェアをアップグレードするプロセスを示しています。ライブラリに付属のIAP関数インターフェイスを使用し、デモンストレーションではシリアルポート + Ymodemプロトコルを使用します。また、CAN、485、イーサネット、その他のバスを介してリモートネットワークの更新を実現することもできます。

以下のプロセスは、ログをコンソールに出力し、出力ログをフラッシュに保存することです。最後に保存したログを再起動して読み取り、最後にフラッシュログをクリアします。

docszhapi.mddocszhport.mddocszhv4_migrate.mddocszhdesign.mdドキュメントを読んだ後は必ず使用してください。

EasyFlashが問題を解決した場合、上記のQRコードをスキャンしてコーヒーを飲むように招待することもできます〜
MITオープンソースプロトコルを使用します。詳細については、プロジェクトのライセンスファイルの内容をお読みください。
EasyFlashは、オープンソースの軽量埋め込みフラッシュメモリライブラリです。 MCU(マイクロコントロールユニット)の便利なアプリケーションインターフェイスを提供します。開発者は、フラッシュメモリに基づいて、より効率的で一般的なアプリケーション開発を実現できます。ライブラリは現在、 3つの有用な機能を提供しています。
EasyFlashは、設定パラメーターまたは実行中のログやその他の情報を実行しても、パワーダウン後に保存することができます。メソッドの追加、削除、変更、およびクエリが含まれています。開発者が製品パラメーターを処理し、アップグレード後に製品のスケーラビリティがより良いことを確認するのに役立ちます。フラッシュを小さなNOSQL(非関係データベース)モデルおよびキー値ストアデータベースに変換します。
ライブラリは、IAP(アプリケーション内プログラミング)機能の共通インターフェイスをカプセル化します。 CRC32チェックサムをサポートします。ブートローダーとアプリケーションのアップグレードをサポートしながら。
ファイルシステム製品のない小規模に非常に適しています。開発者は、システムがクラッシュまたはフリーズしたときに問題を簡単に見つけて照会できます。 EasyLogger(私によるオープンソースの超軽量で高性能Cログライブラリを使用できます。それは、EasyFlashとのシームレスなインターフェイスを提供します)同時に。したがって、ログをフラッシュするために保存するのはとても簡単です。
Minimum : ROM: 6K bytes RAM: 0.2K bytes
ハードウェアプラットフォームには、オンチップフラッシュのSPIフラッシュ、 stm32f10x 、 stm32f4xxシリーズが移植されました。これらは私の製品プラットフォームです。残りのプラットフォームポーティングの難易度はほとんどありません。ポートするにはeasyflashportef_port.cファイルを変更するだけです。消去、書き込み、読み取り、印刷機能を実装します。
フォークアンドプルリクエスト(github | oschina |コーディング)に皆さんを歓迎します。このオープンソースプロジェクトが素晴らしいと思うなら。プロジェクトのホームページの右上隅にある星を押して、より多くの友人にお勧めします。
以下の図は、コンソール(端末)でenvの共通インターフェイスを呼び出すことを示しています。これらのインターフェイスは、呼ばれるアプリケーションレイヤーによってサポートされています。
tempで、値は123です。456に変更し、保存して再起動します。
以下の図は、IAPによるコンソールを介してソフトウェアをアップグレードするプロセスを示しています。このライブラリにはIAP関数インターフェイスが付属しています。シリアルポート + YMODEMプロトコルモードを使用します。また、CAN、485、イーサネットバスを介してオンラインアップグレードすることもできます。

次の図は、コンソールを介したログプロセスの出力です。ログはリアルタイムでフラッシュするように保存されます。その後、ボードが再起動され、ログバックがFlashから読み戻されます。最後にログが消去されます。

すべてのドキュメントはdocsenフォルダーにあります。ドキュメントを移植して使用する前に読んでください。
MITオープンソースライセンスを使用して、プロジェクトライセンスファイルをお読みください。