Перейти к содержанию
    

MSP430 - снова вопросы от чайника

Я уже где-то выкладывал myprintf(), который сделал из исходников библиотек для ПИК16. Вполне успешно применяем его для мелких MSP.

Если надо в строку выводить, то функцию putchar() надо заменить на вывод в строку.

А так putchar() - это функция низкоуровневого вывода символа в конкретное физическое устройство. Использовали для вывода на термопринтер через RS232, на символьный индикатор, на 7-сегментный индикатор. Естественно, для каждого устройства свой putchar().

myprnt.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Блин, ну что за фигня - личный ящик заблокировали, сообщения из темы мои удаляют... то ли форум глючит, то ли... какая-то фигня :crying: Подскажите, к кому обратиться за помощью и разъяснениями?

 

Модератор. Daria, Ваше сообщение я перенес в подобающий ему раздел форума. Там же есть и ответы на все вопросы. В последующем пишите сразу в раздел форума, соответствующий теме вопроса.

С уважением, rezident.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Модератор. Daria, Ваше сообщение я перенес в подобающий ему раздел форума. Там же есть и ответы на все вопросы. В последующем пишите сразу в раздел форума, соответствующий теме вопроса.

С уважением, rezident.

Извините, учту. Спасибо за разъяснения

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Это снова я :laughing:

Устройство худо-бедно работало около полугода и неожиданно произошло полное стирание flash :crying:

Чем это могло быть вызвано - возможные причины? перепада напряжения питания не было, да и кристалл сейчас с BOR, какой глюк мог быть в программе, чтобы такое натворить? хотя бы варианты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я уже запамятовал, а снова просматривать всю ветку лень. :laughing: У вас м/с супервизора питания в схеме имеется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я уже запамятовал, а снова просматривать всю ветку лень. :laughing: У вас м/с супервизора питания в схеме имеется?

Супервизора нет, но с питанием все было в порядке - устройство второе в цепи, сначала питание подается на управляющее устройство, которое кабелем соединено с этим. в том стоит такой же MSP - и все в порядке. Кабели хорошие, разъемы надежные, к тому же в кристалле есть BOR.

Похоже, это произошло после принятия каких-то байтов по UART во время штатной работы, никаких операций с flash в этот момент не производилось - с чем это может быть связано?

Вообще из программы очистить память довольно сложно, как я понимаю, установить ERASE, пароль... как это можно сделать аппаратно? TCK, RST/NMI во внешний разъем не выведены, там только TX, RX аппаратного UART, питание и земля.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Супервизора нет, но с питанием все было в порядке -

С этой электроникой так все обманчиво.... Ничто не может доказать другое...

Но у нас всегда было частичное стирание флэш в случае плохого питания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Супервизора нет, но с питанием все было в порядке
Этого вы не можете знать со 100% достоверностью. Нет супервизора - нет гарантированного сброса при снижении напряжения питания.

Вообще из программы очистить память довольно сложно, как я понимаю, установить ERASE, пароль... как это можно сделать аппаратно?
Если в программе есть функции записи/стирания Flash то вероятность попасть на нее отлична от нуля. А как гласит один из законов Мерфи: "если вероятность возникновения неприятности отлична от нуля, то она (неприятность) обязательно произойдет" ;)

Ставьте супервизор питания. BOR для такой защиты не панацея. Я уже неоднократно пояснял, что BOR "защищает" лишь от зависания при медленном нарастании напряжения питания и все! От хаотичного выполнения команд при снижении питания он нисколько не защищает. Сравните хотя бы минимально допустимое рабочее напряжение для ядра и уровень срабатывания BOR.

post-3882-1253972712_thumb.png

post-3882-1253972866_thumb.png

post-3882-1253973075_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите плиз - храню во влеше данных параметры, есть режим их изменения, но как проинициализировать эту область дефолтными параметрами ?

Т.е. как ИАРу обяснять, чообы он туда что-то запихал?

 

Пробовал так, но не помогло:

#pragma location=0x1080
char const DefaultName[9]={"vicor000"};

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как проинициализировать эту область дефолтными параметрами ?
Я приспособился к такому способу.

#pragma location=0x1000
__no_init constData_t CParam;

#pragma location=0x1000
const constData_t CParamIni={ 2, 100};
#pragma required=CParamIni

А потом работаю с указателем на CParam. IAR конечно же генерирует Warning, но такой способ пока вроде прокатывает. В противном случае IAR подставляет константные выражения непосредственно в выражения/операторы (т.с. прямо по месту), а сам инициализированный константный массив/структуру из результирующего кода выбрасывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, достаточно было добавить

#pragma required=DefaultID

Не хотелось бы вас разочаровывать, но этого не достаточно. :( Конечно константный массив теперь компилятор не выбрасывает, но и не работает с ним, подставляя константные значения "по месту", прямо в операторы. Убедитесь в этом сами, просмотрев ASM-овый код, получающийся в результате компиляции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не хотелось бы вас разочаровывать, но этого не достаточно. :( Конечно константный массив теперь компилятор не выбрасывает, но и не работает с ним, подставляя константные значения "по месту", прямо в операторы. Убедитесь в этом сами, просмотрев ASM-овый код, получающийся в результате компиляции.

Сорри за запоздалый ответ, но убедился что работает - я вижу, что нужный мне массив констант записывается в область INFO, а дальше из программы я его уже читаю.

На данном этапе мне больше ничего не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...