2017-12-06 21 views
-4

STM32F2シリーズコントローラの内部メモリに保存する必要がある.JPEGファイルがあります。 JPEGファイルを変換/エンコードすることなくこれを行うことは可能ですか?もしそうなら誰でも私の理解のためにいくつかのサンプルコードを提供してください。組み込みCを使用して、STM32F2シリーズマイクロコントローラの内蔵フラッシュにraw jpegイメージを保存する方法は?

+2

どのマイクロコントローラですか?どの言語を使う?これは広すぎます。 –

+0

マイクロコントローラ:STM32Fシリーズ、言語:C – 0412PA

+0

投稿を編集して、関連するファクトをタグ付けして、あなたが何を求めているのかを明確にし、それらの熟練した人が質問を見つけることができます。 –

答えて

0

一般に、1つの方法は、JPEG(または任意のバイナリ)ファイルからのデータで初期化される定数配列を定義することです。その配列定義はコードにリンクされ、フラッシュするようにプログラムされたファームウェアの一部になります。必要に応じて、リンカディレクティブを使用して、フラッシュ内の特定のアドレスにある配列(ファイルデータ)を見つけることができます。

この一般的な考え方は、さまざまな方法で達成できます。以下は、この手法の具体的な実装例です。

まず、JPEGファイルをバイトストリームとして読み込み、それらのバイトを新しいカンマ区切りテキストファイルに書き込むデスクトッププログラムを作成します。ここでは例のファイルの最初の2行はある、私はmy_jpeg.hと呼ぶことにします:

0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x48, 
0x00, 0x48, 0x00, 0x00, 0xFF, 0xE1, 0x03, 0xA0, 0x00, 0x01, 0x69, 0x48, 0x00, 0x4D, 0x4D, 0x46, 

次に、あなたのCコードで配列を定義し、作成したファイルからのデータでそれを初期化します。

const uint8_t my_jpeg[] = { 
    #include "my_jpeg.h" 
}; 

このようなJPEGファイルのデータはすべてファームウェアに含まれ、ファームウェアをプログラムするときに点滅するようにプログラムされています。

makefileレシピまたはIDEのビルド前のバッチスクリプト機能を使用して、JPEG変換プログラムを自動的に実行し、ビルド中にmy_jpeg.hを生成することができます。

+0

ありがとうございます:) – 0412PA

関連する問題