msp430용 임베디드 애플리케이션을 작성 중이신가요?
문제
아마도 하이엔드 MSP430을 위한 기본 OS와 기본 파일 시스템을 갖고 싶습니다. MSP430F5438.나는 내가 다음과 같이 갈 수 있다는 것을 안다. 프리RTOS , IAR 파워팩 또는 미륨 OS 및 파일 시스템에 대한 옵션 중 일부만 지정합니다.그러나 나중에 이상적으로는 파일 시스템에서 이 추가 코드를 가져오는 작은 애플릿이나 스레드를 로드할 수 있는 기능도 갖고 싶습니다.내 목표는 임베디드 장치의 기능을 변경하거나 구현하기 위해 전체 장치를 다시 플래시할 필요가 없는 것입니다.이 기능을 구현하려면 어디로 가야 할지, 아니면 ARM과 같은 다른 프로세서로 전환해야 할지 잘 모르겠습니다.
해결책
MSP430은 훌륭한 컨트롤러이지만 OS를 실행하고 플래시를 태우지 않고 앱을로드하려면 ARM으로 전환해야합니다 (많은 ARM 기반 마이크로 컨트롤러가있는 또 다른 훌륭한 플랫폼).
다른 팁
나는 당신이 프로그램 코드를 변경할 때마다 항상 MSP 430을 반사해야 할 것이라고 확신합니다. 물론 부트 로더는 플래시를 자체적으로 업데이트 할 수 있으므로 부트 로더처럼 작용하는 프로그램을 만들고 프로그램 메모리의 세라틴 부분 만 업데이트하여 애플릿을 배치하려는 곳에서 만 업데이트하려고합니다. 그런 다음 애플릿 코드가있는 플래시의 각 영역에 어떤 메모리 위치가 있는지 알아야하여 호출 할 수 있습니다.
이 애플릿에서 코드를 실행하는 데 문제가 발생합니다. 메모리 위치가 하나만 있으면 실행하려는 메모리 위치가 하나만 있으면 해당 메모리 위치를 염두에두고 컴파일 할 수 있습니다. 메모리에서 '애플릿 공간'에서 실행할 수있는 여러 가지 애플릿을 원한다면 어떤 주소로 시작하는지 알지 못하기 때문에 문제가 발생할 수 있습니다.
물론,이 애플릿 중 어느 것도 매우 커질 수 없습니다. RTO가 얼마나 많은 공간을 차지합니까?
플래시
msp430에서는 온보드 플래시를 512바이트 청크로 지우거나 다시 쓸 수 있습니다(사용자 플래시는 더 작은 청크를 처리할 수 있음).
따라서 부트로더/stable-RTOS는 이 "애플리케이션"을 사용하여 칩을 다시 프로그래밍할 수 있습니다.
인터럽트를 리디렉션하는 것은 약간 까다롭지만 "실제" 벡터 테이블에서 애플리케이션 벡터 테이블로 리디렉션 점프하여 수행할 수 있습니다.
안정/RTOS 호출
애플리케이션에서 안정 부분의 함수를 호출하는 것도 가능합니다. 각 함수에 대한 고정 점프 테이블을 안정 부분에 구축할 수 있으므로 다른 안정/RTOS 버전을 구축하더라도 애플리케이션이 함수를 호출하는 방법을 알 수 있습니다.
램
하나의 애플리케이션만 허용하면 쉽습니다.
안정적인 RTOS를 위해 일부 RAM을 예약해야 하며 나머지 RAM은 애플리케이션에서 사용할 수 있습니다.
그러나 둘 이상의 응용 프로그램을 사용하려는 경우 변수 배치 문제를 해결하는 것이 까다로울 수 있습니다.
응용 프로그램에서 RAM을 예약하려면 동적 할당을 선호하지만, 그런 경우에도 동적 할당 블록에 대한 포인터가 필요하며 이러한 포인터는 고정 기반이거나 응용 프로그램이 스택의 변수를 사용합니다.
일부가 있습니다 Fram MSP430 볼 가치가있는 부품. 그래도 여전히 많은 기억이 아닙니다.