문제

버튼, LED 및 LCD 디스플레이로 구성된 현실적인 임베디드 프런트 패널 구축을 포함하여 데스크탑 Windows에서 깊은 임베디드 C 코드의 프로토 타이핑 (가상 프로토 타이핑), 시뮬레이션 및 테스트를위한 도구 및 기술을 찾고 있습니다 (세그먼트 및 그래픽).

MFC, .NET / C #, VXWIDGETS 또는 QT가 아닌 순수한 C 코드 및 원시 WIN32 API를 사용하는 저수준의 접근법에 특별히 관심이 있습니다.또한 플랫폼 SDK를 사용하여 Visual C ++ Express와 같은 자유로운 개발 도구를 사용하고 자원 편집을위한 재판매를 사용하고 싶습니다.

저는 효율적인 픽셀 수준의 인터페이스, 다중 세그먼트 LCD 및 "우울한"및 "릴리스 된"둘 다 응답하는 소유자로 그려진 버튼으로 그래픽 LCD (단색에서 24 비트 색상)를 렌더링하는 코드 예제를 찾고 있습니다."이벤트.

도움이 되었습니까?

해결책

나의 원래의 질문이 너무 많은 오해와 불리한 의견을 일으켰다는 것을 놀라게합니다. 하나의 기계 (예를 들어, PC)에 깊이 임베드 된 C 코드를 개발하고 다른 (embedded microcontroller)에서 실행하는 전략은 "이중 타겟팅"이라고 불리며 정말로 일반적입니다. 예를 들어, PC에 깊이 임베디드 코드를 개발하고 테스트하는 것은 최근의 책 "임베디드 C에 대한 시험 중심 개발"제임스 교환에 의해

의 초석입니다.

듀얼 타겟팅

대상 하드웨어 병목 현상을 피하는 것을 방지합니다.

이중 타겟팅은 임베디드 장치가 PC와 관련이있는 것이 있음을 의미하지는 않습니다. 시뮬레이션이 임베디드 타겟 CPU와 함께 순환해야 함을 의미합니다.

듀얼 타겟팅은 단순히 1 일부터 임베디드 코드 (일반적으로 C)가 최소한 두 개의 플랫폼에서 실행되도록 설계되었음을 의미합니다. 최종 대상 하드웨어 및 PC. 정말로 필요로하는 것은 두 가지 C 컴파일러입니다. 하나는 PC 용 하나이고 임베디드 장치의 경우

그러나 듀얼 타겟팅 전략은 임의의 대상 하드웨어 종속성이 종종 보드 지원 패키지 (BSP)라고 불리는 잘 정의 된 인터페이스를 통해 처리되도록 임베디드 소프트웨어를 설계하는 특정 방법이 필요합니다. 이 인터페이스에는 실제 대상 및 PC 용 하나, 예를 들어 Windows를 실행하는 두 가지 구현이 있습니다. 이러한 인터페이스를 통해 임베디드 코드의 대량은 BSP 구현이 연결된 BSP 구현을 완전히 알지 못할 수 있으므로 PC에서 신속하게 개발할 수 있지만 변경 사항없이 대상 하드웨어 에서 실행할 수도 있습니다. .

임베디드 프로그래머는 듀얼 타겟팅을 자체로 첨가 된 부담으로 볼 수 있지만, 경험이 풍부한 개발자는 일반적으로 소프트웨어와 하드웨어 간의 경계에주의를 기울이는 것이 더 모듈화되고, 더 많은 휴대용 등을 가져 오기 때문에 실제로 유익합니다. 많은 유용한 수명을 갖는 유지 보수 가능 소프트웨어. 듀얼 타겟팅에 대한 투자는 또한 훨씬 더 느리고 훨씬 빠르고 생산적인 훨씬 빠르고 더 생산적인 훨씬 빠르고 생산적인 훨씬 빠르고 훨씬 빠르고 생산성이 깊고 실행중인 코드에 제한된 가시성을 제공합니다. .

전면 패널 Win32 GUI 툴킷

사소한 사용자 인터페이스가없는 장치에 대한 임베디드 코드를 개발할 때, 임베디드 프런트 패널을 PC상의 GUI 요소로 표현하는 문제로 종종 실행됩니다. 이 문제는 너무 일반적으로 여기에 아무도 기존 라이브러리 또는 오픈 소스 프로젝트를 추천 할 수 없으므로 LCD, 버튼 및 LED와 같은 기본 요소에 간단한 C 전용 인터페이스를 제공 할 수 있습니다. 이것은 정말로 복잡하지는 않습니다. 그러나 모든 임베디드 개발자는이 휠을 다시 바꾸어야합니다.

Windows에서 임베디드 장치에 관심이있는 임베디드 개발자를 돕기 위해 "전면 패널 Win32 GUI 툴킷"을 만들었으며 GPL 오픈 소스 라이센스 (). 이 툴킷은 C에서 원시 Win32 API에서만 의존하고 현재 다음 요소를 제공합니다.

  1. 그래픽 LCD, OLED 등과 같은 효율적인 픽셀 주소 지정 가능한 디스플레이를위한 도트 매트릭스 디스플레이

  2. 세그먼트 LCD와 같은 세그먼트 화 된 디스플레이 및 세그먼트 LED 세그먼트에 대한 세그먼트 디스플레이, 세그먼트에 대한 일반적인 사용자 정의 비트 맵.

  3. 사용자 정의 "우울"및 "릴리스 된"비트 맵이있는 소유자 그려진 버튼 및 우울증 및 해제 될 때 별도의 이벤트를 생성 할 수 있습니다.

  4. 툴킷에는 예제 및 앱 노트가 함께 제공됩니다 ( http : //www.state-machine 참조 .com / win32 / an_win32-gui.pdf ). 소유자가 그려진 버튼, 일반 단추, 키보드 및 마우스에서 입력을 처리하는 방법을 보여줍니다. http://www.state-machine.com/win32/front_panel.html .

    "전면 패널 Win32 GUI 툴킷"의 크기와 복잡성에 관해서, 전술 한 GUI 소자의 구현은 약 250 라인의 C를 필요로한다. 모든 입력의 모든 소스와 많은 의견이 약 300 라인에 이르기까지 C의 C. 툴킷은 무료 Visual C ++ Express 2010 (Express Edition Platform SDK)과 무료 Resedit 자원 편집기와 함께 테스트되었습니다.

    즐기십시오!

다른 팁

질문에 대한 의견을 설명하는 가전 제품은 Windows PC를 사용하지 않을 것입니다. 따라서 낮은 수준의 Windows 프로그래밍은 해당 경우에 필요하지 않습니다. 사실, 나는 그것의 바람직하지 못한다고 말할 것입니다. 프로토 타이핑은 속도에 관한 것입니다. 잠재적 인 투자자 나 상위 관리 또는 다른 의사 결정자를 보여주기 위해 얼마나 빨리 뭔가를 넣을 수 있는지에 관한 것입니다.

프로젝트 요구 사항이 최종 프로젝트 산출물에 대한 절대 요구 사항 이었음을 알게 될 때까지 저급 C와 Win32 API로 여분의 시간을 보내고 싶지는 않습니다 ( 서버 / PC 모니터링 도구? ). 그때까지는 개발 속도를 원할 때까지. 운이 좋으면 업계에서 귀하가 설명하는 것처럼 신속한 프로토 타이핑 및 하드웨어 개발을위한 도구가 있습니다.

임베디드 개발로 프로토 타이핑을위한 나의 선호

개발자로서의 의견은 .NET MICROFramework (.NETMF)가 이미 Microsoft .NET 개발자이므로 기존 기술을 많이 전송할 수 있기 때문입니다. Visual C # Express 2010에서 C #을 사용하여 Fez 마이크로 컨트롤러가있는 Fez 마이크로 컨트롤러가있는 프로토 타입입니다 (필요한 경우 무료). 그것의 빠르고, 쉽고, 당신은 프로젝트의 핵심을 몇 분 만에 일하고 있습니다.

개발자로서의 경험이 다르면 기본, Java 또는 다른 언어를 사용하여 프로그래밍 된 마이크로 컨트롤러를 찾아 핵심 스킬 세트를 재사용하여 개발 속도를 돕습니다.

질문 해결하기 현상금 댓글

임베디드 소프트웨어의 놀라운 큰 부분이 개발 될 수 있습니다. 데스크탑 컴퓨터에서 깊은 임베디드 대상에 반대됩니다. 이 "목표 시스템 병목 현상"의 회피는 잠재적으로 개선 될 수 있습니다. 규모의 순서로 생산성을 높이십시오. 그러나, 바탕 화면에 임베디드 소프트웨어를 개발하고 UI를 시뮬레이트해야합니다. 디스플레이와 같은 구성 요소 (세그먼트 화 된 및 점점 더 그래픽), LED, 손잡이 및 버튼. 나는 그런 UI를 찾고 있습니다 쉽게 통합 할 수 있도록 C에서 일반 Win32 API로 작성된 구성 요소 데스크탑 창에서 개발 및 테스트 할 수있는 임베디드 코드입니다.

나는 4 년 동안뿐만 아니라 그 파트 타임을 둘러싼 수년 동안 전문적으로 전문적인 개발 풀 타임을 임명했다. 당신이 위에서 말한 것이 다소 사실이지만,이 전략의 동기 부여에 대해 모두 혼란스러워하는 시간이나 돈을 절약하지 못할 것입니다. 우리는이 회사의 하드웨어 장치에 대한 Windows 에뮬레이터를 이론적으로 프로토 타이핑을위한 시간을 절약 할 수있는 Windows 에뮬레이터를 꺼내려고했습니다. 그것은 항상 고통이었고 우리가 방금 실제 개발에 스케치 된 UI 드로잉 스케일에서 똑바로 갔는지에 대한 경험을 모방하려는 데 많은 시간을 보냈습니다. 에뮬레이터는 하드웨어 개발 뒤에 뒤쳐지고 하드웨어가 출시 된 후 6 개월 이상 최신 기능을 지원하지 않습니다. 그것은 거의 가치가 거의없는 많은 여분의 일이었습니다.

핵심 프로젝트 자체의 코드를 실제로 작성하는 것보다 재사용 할 수없는 Win32 플랫폼 코드 및 하드웨어 에뮬레이션 구성 요소 개발 시간을 더 많이 소비합니다. 이것은이 에뮬레이터를 잠재적 인 타사 개발자에게 '가치 추가'도구로 제공하는 하드웨어 공급 업체에만 적용되지만 새로운 하드웨어 설계를 프로토 타이핑하는 것은 의미가 없습니다.

FEZ 마이크로 컨트롤러가 컴파일 할 수있는 Visual C # Express 2010과 같은 현대 개발 환경은 마이크로 컨트롤러로 프로젝트 출력을 푸시 한 다음 또는 더 빠른 에서 단지 디버깅을 시작합니다. LCD 또는 LED 또는 스위치 등의 LCDS 또는 LED 또는 스위치 등의 레벨 Windows 응용 프로그램은 "크기의 순서로 생산성을 향상시키는"귀하의 의견은 현대 도구로 더 이상 사실이 아닙니다. (지난 10 년 정도의 경우에도 불구하고 있음)

실제로, 진정으로 Adobe Flash와 같은 내용을 시각적으로 사용하여 UI를 조롱하여 PC에서 내장 하드웨어를 시뮬레이션하려고합니다. 그러나 최종 장치가 프로토 타이핑하는 최종 장치가 Windows를 실행하지 않을 때 Windows를 코딩하여 코드를 코딩하여 코드를 복제하지 마십시오 (어쩌면 그것은 그렇지 않을 수도 있지만 그렇게 말하지 않았습니다). 가장 빠른 가장 신뢰할 수있는 프로토 타이핑 도구를 사용하여 오늘날 사용할 수있는 로우 레벨 C 및 Win32 API!

전자 장치에 stackexchange를 사용할 수 있습니까?

개발 지향 사이트이기 때문에 특정 임베디드 하드웨어의 장점에 대한 토론은 실제로 관련이 없습니다. 프로토 타이핑을 위해 마이크로 컨트롤러 전자 장치를 사용하여 다시 확인하기로 결정한 경우 ( arduino , fez , 프로펠러 , 기본 스탬프 , pololu 등)

> 전자 제품의 Stackexchange .나는 그 플랫폼의 대부분이 당신이 설명한 것처럼 LCD, LED, 버튼 및 인터페이스의 프로토 타이핑을 용이하게하도록 설계되었다고 말할 것입니다.일반적으로 몇 분 안에 몇 분 안에 사전 빌드 된 모듈을 조립하고 프로젝트 코딩을 시작할 준비가되었습니다.거대한 시간 절약은 여기에있었습니다.

@ proteus를 봐야 할 필요가 너무 많습니다. http://www.labcenter.com/products/vsm_overview.cfm

Mahmoud가 Proteus Professional .프로토 타이핑, 시뮬레이션 및 코딩을위한 인기있는 소프트웨어 중 하나입니다. 무료로 Proteus Professional 다운로드 다운로드 및 설명서를 확인하십시오.

최고의 행운

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top