운영체제가없는 마이크로 컨트롤러에서 직접 실행되는 기존의 임베디드 소스 코드가 있습니다. 특정 RTOS에서 실행되도록 코드를 이식해야합니다.임베디드 소스 코드를 RTOS로 이식하기
많은 일을 시도 할 때 어디에서 시작해야하는지에 대한 지침이 있습니까? 리소스, 모범 사례 및 기타 통찰력이 크게 향상 될 것입니다.
운영체제가없는 마이크로 컨트롤러에서 직접 실행되는 기존의 임베디드 소스 코드가 있습니다. 특정 RTOS에서 실행되도록 코드를 이식해야합니다.임베디드 소스 코드를 RTOS로 이식하기
많은 일을 시도 할 때 어디에서 시작해야하는지에 대한 지침이 있습니까? 리소스, 모범 사례 및 기타 통찰력이 크게 향상 될 것입니다.
RTOS 선점 형 멀티 태스킹은 모두 I/O 성능에 관한 것입니다. 입출력이 완료되면 스레드를 준비 할 수있는 드라이버가 필요합니다. 세마포어 신호. 그 밖에 원격으로 중요한 것은 없습니다. 마이크로 컨트롤러에 포팅 할 모든 ((
첫째, RTOS가있다 RTOS가 이미 지원하는 경우 :
슬프게도,이 일반적으로 이전을 존재 성능 마비 폴링을 제거하기 위해 시스템 재 설계를 의미한다. 그런 다음 RTOS에 대한 코드를 조정할 것입니다.이 경우 RTOS의 사용자 가이드를 참조해야합니다.
비정형 동작 (주변 장치 구성, 인터럽트 처리기 등)을 확인하고이를 분리해야합니다 간단한 프로그램 논리에서 RTOS와 호환되는 방식으로 구현/대체하는 방법을 생각할 수 있습니다. 그런 다음 프로그램 조직을 살펴볼 필요가 있습니다 n - 이벤트 주도, 루프 폴링 등입니까? 때로는 풍부한 환경에서 원시 환경을 에뮬레이트하고 대부분의 코드를 변경하지 않고, OS 컨텍스트에서 하드웨어가 만족스럽게 플레이 할 수있게 해준 하드웨어를 가정 한 무언가를 실제로 재구성해야하는 경우가 있습니다 . –
먼저 대답해야 할 주요 질문은 : 왜 RTOS에서 코드를 이식 할 필요가 있습니까? 병렬 이벤트를보다 쉽게 처리 할 수 있도록 애플리케이션을 리팩토링해야합니까? 레거시 코드와 동시에 실행해야하는 기존 기능에 새로운 기능을 추가해야합니까? – greydet
이 RTOS에 이름이 있습니까? 나는 일반적으로 당신이 (마스터 한) 한 두 가지, 그들은 모두 거의 동일하지만 여전히 당신이 UC/OS-II (작은)에 대해 이야기하고 있는지를 아는 것을 도울 수 있다는 사고 방식입니다. OSE 또는 VxWorks 대 뭐든간에 ... – Dan