2017-11-21 19 views
1

그래서 JSON 파일을 분석하고 구문 분석 한 다음 터치 스크린에 디스플레이를 만드는 프로그램을 디자인하려고합니다. 지금까지 Visual Studio, cJSON 및 SDL2를 사용하는 프로그램을 작성했습니다. 그러나이 프로그램은 베어 메탈 STM 마이크로 컨트롤러 평가 보드에서 실행된다. SDL 라이브러리에서 Windows에 의존하는 프로그램이 있습니까? 아니면 프로그램이 베어 메탈 환경에서도 동일하게 실행됩니까?SDL2를 사용하는 C 프로그램을 베어 메탈 환경 (운영 체제 없음)에서 실행할 수 있습니까?

+3

SDL : 간단한 다이렉트 미디어 레이어. 기본 시스템에 크게 의존합니다. 시스템이 없다면, 토스트 야. 당신의 마이크로 컨트롤러를위한 SDL lib가 없다면 (결국 Nintendo DS를위한 것입니다) –

+1

SDL을 어떻게 사용하고 있습니까? SDL에 대한 나의 제한된 경험은 baremetal 느낌 이었으므로 sdl을 baremetal로 바꿉니다. 그것을 포팅하려고하지 마십시오. –

+0

아스키 파일은 일반적으로 의미가 없으므로 아마 json도 피하고 싶을 것입니다. 호스트 프로그램에서 json을 좀 더 효율적으로 변환 할 수 있습니다. –

답변

2

SDL은 많은 플랫폼 (아마도 윈도우, 리눅스, 아미가 OS & 닌텐도 DS, BeOS는, 안드로이드 등)

에 존재하지만 디스플레이를 & 소리를 생성하고 입력을 행하기위한 운영 시스템/하드웨어 기능에 의존 .

마이크로 컨트롤러에 OS가없는 경우 SDL을 쉽게 포팅 할 수 없습니다. 따라서 플랫폼에서 특정 버전의 SDL을 찾거나 직접 포트해야합니다. 이는 케이크 조각처럼 보이지 않습니다. 게다가 SDL 기능의 5 %가 필요할뿐만 아니라 왜 귀찮은가?

다른 해결책은 마이크로 컨트롤러의 베어 메탈 비디오/입력 기능을 사용하여 SDL없이 앱을 작성하는 것입니다. 이식성이 필요하지 않으므로 간단한 응용 프로그램을 위해 시스템의 추상 레이어를 이식하는 데 드는 시간을 절약 할 수 있습니다.

+0

답변 해 주셔서 감사합니다! 이 전체 임베디드 프로그래밍 세계에 조금 익숙해 져서 간단한 설명을 크게 환영합니다. 필자가 작성한 코드의 파싱 부분과 함께 실제로 파트가 도착하면 STM 임베디드 그래픽 라이브러리 중 하나를 사용할 것입니다. 당분간 SDL을 사용하여 파싱 코드/JSON 파일을 프로토 타입하고 디버깅 할 것입니다. –

+0

예, 플랫폼에 따라 임베디드 라이브러리 또는 SDL을 호출하는 더 간단한 인터페이스를 지정할 수도 있습니다. –