Написание встроенного приложения для msp430? - PullRequest
6 голосов
/ 12 сентября 2009

Я бы хотел иметь базовую ОС и базовую файловую систему для старшего класса MSP430, вероятно, MSP430F5438 . Я знаю, что могу пойти с чем-то вроде FreeRTOS , IAR PowerPac или Micrium , чтобы назвать лишь некоторые параметры для ОС и файловой системы. Однако я хотел бы также иметь возможность загружать небольшие апплеты или потоки в последнее время, в идеале получая этот дополнительный код из файловой системы. Моя цель - не перепрошивать все устройство, чтобы изменить или реализовать функцию на встроенном устройстве. Не уверен, куда идти, чтобы реализовать эту способность, или мне нужно переключиться на другой процессор, например, ARM.

Ответы [ 5 ]

3 голосов
/ 13 сентября 2009

MSP430 - отличный контроллер, но если вы хотите запустить ОС и загружать приложения, не записывая их во флэш-память, вам, вероятно, следует переключиться на ARM (еще одна отличная платформа со многими микроконтроллерами на основе ARM).

2 голосов
/ 03 апреля 2012

Контроллер Msp430 поддерживается несколькими ОС, которые могут предоставлять желаемую функциональность. Некоторые из них предоставляют OTA (эфирное программирование). Некоторые предоставляют (на основе флэш) файловые системы. Однако это часто означает использование флэш-памяти для хранения загруженной программы.

Вот пара активных в настоящее время ОС, поддерживающих msp430:

Contiki - ОС для «Интернета вещей». Обеспечивает прото-нити.

MansOS - Unix-подобная ОС, которая поддерживает потоки и OTA для устройств msp430.

2 голосов
/ 13 сентября 2009

Я уверен, что вам всегда придется перепрошивать MSP 430 каждый раз, когда вы хотите изменить программный код. Конечно, загрузчик может обновлять флэш-память сам по себе, поэтому вам просто нужно создать программу, которая будет работать как загрузчик, но обновит только определенные части памяти программы, т. Е. Там, где вы хотите разместить свои апплеты. И тогда вам нужно будет знать, в какой области памяти находится каждая область флэш-памяти, где находится код вашего апплета, чтобы вы могли ее вызывать.

Вы также столкнулись с проблемой при запуске кода в этих апплетах. Если вы хотите запустить их только из одной ячейки памяти, вы можете скомпилировать их с учетом этого. Если вам нужно несколько разных апплетов, которые могут запускаться из любого «пространства апплетов» в памяти, вы можете столкнуться с проблемами, потому что они не будут знать, с какого адреса они исходят.

И, конечно, ни один из этих апплетов не сможет быть очень большим. Сколько места займет ваша ОСРВ?

1 голос
/ 18 ноября 2011

Flash
На msp430 вы можете стереть / перезаписать встроенную вспышку в 512-байтных чанках (пользовательская флеш-память может обрабатывать меньшие чанки).
Таким образом, ваш загрузчик / стабильный RTOS может перепрограммировать чип с помощью этих «приложений».
Немного сложно перенаправить прерывания, но это можно сделать с помощью перехода с «реальной» векторной таблицы на векторную таблицу приложения.

Вызов стабильный / RTOS
Также можно вызывать функции стабильной части из приложений, вы можете встроить в стабильную часть таблицу фиксированных переходов для каждой функции, чтобы приложение знало, как вызывать функцию, даже если вы создаете другую стабильную версию / RTOS.

RAM
Если вы разрешите только одно приложение, это легко.
Вы должны зарезервировать часть ОЗУ для стабильной ОСРВ, а остальная часть ОЗУ может использоваться приложением.

Но решить проблему с размещением переменных может быть сложно, если вы хотите использовать более одного приложения.
Чтобы зарезервировать ОЗУ из приложения, я бы предпочел динамическое распределение, но даже в этом случае вам нужен указатель для динамически распределенных блоков, и эти указатели являются фиксированными или ваши приложения используют переменные в стеке.

0 голосов
/ 18 ноября 2011

Есть некоторые FRAM msp430 детали, на которые также стоит обратить внимание Впрочем, памяти до сих пор не много.

...