MSM (부스트 메타 상태 머신)은 임베디드 응용 프로그램에 적합합니까? 필자의 경우 애플리케이션은 Cortex-M4F MCU에서 1MB의 플래시와 192KB의 RAM으로 실행되어야한다. 저는 MSM이 직교 영역을 가진 계층 적 상태 머신을 정의하는 좀 더 구조화 된 접근법을 제공하지만 약간의 오버 헤드를 가져 오는 것을 좋아합니다. 그러한 접근 방식이 메모리 제약이있는 임베디드 어플리케이션에 적합한 지 궁금해지며보다 전통적인 "스위치 케이스"상태 머신으로 돌아 가야하는지 궁금합니다. 당신은 모든 시간이 있다면 그것은 정말 당신이 얼마나 가치가 시간의 측면에서 프로젝트에 추가하고, 쉽게 개발, 가독성을 사용해야하는 빈도에 따라 달라집니다임베디드 응용 프로그램의 메타 상태 머신 (부스트)
0
A
답변
0
, 휴대 & 등
세계에서 당신은 더 효율적인 일 가능성이 높고 가능성이있는 것을 만들 수 있습니다. 그러나 이것은 거의 불가능합니다.
RAM 이전입니다. 따라서 Boot MSM을 사용하여 다소 단순한 상태 머신을 작성하고 RAM 사용에 대한 영향을 조사하십시오. 그것은 단순한 상태 기계를 쓰는 것보다 더 많이 할 것 같습니다.
C++ 11 & (14) 컴파일러들이 메타 프로그래밍/템플릿 예전보다 훨씬 똑똑, 기억, 그래서 코드를 부풀게 정말 우려하지해야하기 때문에 MSM을 향상 할 수있다 사용하는 트레이드 오프/비용 복잡하지 않고 사소한 상태 기계에 가치가 있습니다.
MSM을 바닐라 MSM의 기능 세트로 축소하여 많은 문제를 해결하려는 부스트 MSM-Lite (실험적)를 확인하십시오.
내가 부스트 MSM에 대해 말할 수는 없지만, [STTCL] (http://makulik.github.io/sttcl/) 확실히 cortext M4에 맞는 것입니다. 하지만 ** Meta ** - State-Machine이라는 비슷한 기술을 사용하기 때문에 추측 할 수 있습니다. 그리고, 전통적인 '스위치 케이스 (switch case)'의 FSM으로 되돌아 가지 않습니다. –
그런 제한된 시스템에서는 C++을 전혀 사용하지 않아야합니다. 그리고 확실히 템플릿이 아닙니다. –
@ JoachimPileborg 어 뭐라고 요? 우리는 항상이 일을하고 있으며, 우리는 이것을 성공적으로 수행하고 있습니다. 실제로는 부스트를 사용하지 마십시오. –