STM32F2 시리즈 컨트롤러의 내부 메모리에 저장해야하는 .JPEG 파일이 있습니다. JPEG 파일을 변환/인코딩하지 않고이 작업을 수행 할 수 있습니까? 만약 그렇다면 누구나 내 이해를 위해 몇 가지 샘플 코드를 제공해 주시기 바랍니다.임베디드 C를 사용하여 STM32F2 시리즈 마이크로 컨트롤러의 내장 플래시에 원시 jpeg 이미지를 저장하는 방법은 무엇입니까?
-4
A
답변
0
일반적으로 한 가지 방법은 JPEG (또는 모든 이진) 파일의 데이터로 초기화되는 상수 배열을 정의하는 것입니다. 그런 다음 해당 배열 정의는 코드와 연결되고 플래시되도록 프로그래밍 된 펌웨어의 일부가됩니다. 원하는 경우 링커 지시문을 사용하여 플래시의 특정 주소에서 배열 (즉, 파일 데이터)을 찾을 수 있습니다.
이 일반적인 아이디어는 여러 가지 방법으로 수행 할 수 있습니다. 아래는이 기법의 구현 예입니다.
먼저 JPEG 파일을 바이트 스트림으로 읽고 해당 바이트를 새로운 쉼표로 구분 된 텍스트 파일에 기록하는 데스크톱 프로그램을 만듭니다.
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 코드에서 배열을 정의하고 사용자가 만든 파일의 데이터로 초기화 예를 들면 다음과 같습니다 파일의 처음 두 행은, 내가
my_jpeg.h
전화 할게.
const uint8_t my_jpeg[] = {
#include "my_jpeg.h"
};
이제 모든 JPEG 파일 데이터가 펌웨어에 포함되며 펌웨어를 프로그래밍 할 때 플래시되도록 프로그래밍됩니다.
메이크 파일 레서피 또는 IDE의 사전 빌드 일괄 스크립트 기능을 사용하여 JPEG 변환 프로그램을 자동으로 실행하고 빌드하는 동안 my_jpeg.h
을 생성 할 수 있습니다.
+0
정말 고마워요. :) – 0412PA
마이크로 컨트롤러 란 무엇입니까? 어떤 언어를 사용합니까? 이것은 너무 광범위합니다. –
마이크로 컨트롤러 : STM32F 시리즈, 언어 : C – 0412PA
게시물을 작성하여 관련 사실에 태그를 달아 귀하가 원하는 내용을 분명히하고 해당 주제에 숙련 된 사람들이 질문을 찾을 수 있도록하십시오. –