msp430用の組み込みアプリケーションを作成していますか?
質問
ハイエンドMSP430の基本的なOSと基本的なファイルシステムを使用できるようにしたいのは、おそらく MSP430F5438 。 FreeRTOS 、 IAR PowerPac または Micrium OSおよびファイルシステムのオプションの一部のみ。ただし、理想的にはこの余分なコードをファイルシステムから取得するために、後から小さなアプレットやスレッドをロードできるようにしたいと考えています。私の目標は、埋め込みデバイスの機能を変更または実装するためにデバイス全体を再フラッシュする必要がないことです。この機能を実装するためにどこに向かうべきか、ARMのような別のプロセッサに切り替える必要があるかどうかはわかりません。
解決
MSP430は優れたコントローラーですが、OSを実行し、フラッシュすることなくアプリをロードする場合は、おそらくARM(多くのARMベースのマイクロコントローラーを備えた別の優れたプラットフォーム)に切り替える必要があります。
他のヒント
プログラムコードを変更するたびに、MSP 430を常に再フラッシュする必要があると確信しています。もちろん、ブートローダーは自動的にフラッシュを更新できるため、ブートローダーのように動作するプログラムを作成するだけで、プログラムメモリの特定の部分、つまりアプレットを配置する場所のみを更新するだけです。そして、あなたはそれを呼び出すことができるように、あなたのアプレットコードがあるフラッシュの各領域がどんなメモリ位置を知っている必要があります。
これらのアプレットでコードを実行すると問題が発生します。実行したいメモリの場所が1つしかない場合は、それを念頭に置いてコンパイルできます。メモリ内の「アプレットスペース」から実行できる複数の異なるアプレットが必要な場合は、それらがどのアドレスから開始されているかわからないため、問題が発生する可能性があります。
そしてもちろん、これらのアプレットはどれも非常に大きくなることはできません。 RTOSはどのくらいのスペースを占有しますか?
Flash
msp430では、オンボードフラッシュを512バイトのチャンクで消去/書き換えできます(ユーザーフラッシュは小さなチャンクを処理できます)。
したがって、ブートローダー/安定したRTOSは、この「アプリケーション」でチップを再プログラムできます。
割り込みをリダイレクトすることは少し難しいですが、それは「本物」からのリダイレクトジャンプで行うことができます。ベクターテーブルからアプリケーションベクターテーブルへ。
安定版/ RTOSの呼び出し
また、アプリケーションから安定部分の関数を呼び出すこともできます。安定部分に各関数の固定ジャンプテーブルを組み込むことができるため、別の安定/ RTOSバージョンを構築する場合でも、アプリケーションは関数の呼び出し方法を認識します。 / p>
RAM
1つのアプリケーションのみを許可する場合、これは簡単です。
安定したRTOS用にRAMをいくらか確保する必要があり、残りのRAMはアプリケーションで使用できます。
ただし、複数のアプリケーションを使用する場合、変数の配置に関する問題を解決するのは難しい場合があります。
アプリケーションからRAMを予約するには、動的割り当てをお勧めしますが、動的割り当てブロックへのポインターが必要な場合でも、これらのポインターは固定ベースであるか、アプリケーションがスタック上の変数を使用します。
いくつかの FRAM msp430 の部品がありますが、これらも参照する価値があります。ただし、メモリはそれほど多くありません。