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

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

Можно заменить. И даже нужно, раз лишние 100 рублей погоды не делают ;)

Скажате, а WDT не спасет отца русской демократии? ;) В случае, если не получится заменить. Ведь он же как раз эту функцию выполняет - сбрасывает проц при зависании :05:

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


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

Скажате, а WDT не спасет отца русской демократии? ;)
Вы имеете в виду дочь российской демократии? :biggrin: Не знаю. Не уверен на 100%. Попробуйте провести эксперименты с медленным нарастанием и спадом напряжения питания. И спадом напряжения ниже минимального рабочего (1,8В), но выше уровня срабатывания RST. Скажем до 0,7В...1,0В снижайте и потом обратно до 2,5-3,0В повышайте.

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


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

Скажате, а WDT не спасет отца русской демократии? ;) В случае, если не получится заменить. Ведь он же как раз эту функцию выполняет - сбрасывает проц при зависании :05:

Не получится. В msp430 вообще не самая удачная реализация wdt.

Проблема чисто аппаратная, для борьбы с ней wdt просто не предназначен. При плохом питании (провалы, медленное нарастание и/или спад) и отсутствии сигнала ресет (ведь у вас нет ни встроенного BOR ни внешнего супервизора) чип попадает в недокументированные внутренние состояния в которых как правило ведет себя весьма странно и уж точно не в соответствии с документацией.

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


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

Вы имеете в виду дочь российской демократии? :biggrin:

Ну да :biggrin: Это просто фраза такая. Из фильма :biggrin:

 

 

Не получится. В msp430 вообще не самая удачная реализация wdt.

Проблема чисто аппаратная, для борьбы с ней wdt просто не предназначен. При плохом питании (провалы, медленное нарастание и/или спад) и отсутствии сигнала ресет (ведь у вас нет ни встроенного BOR ни внешнего супервизора) чип попадает в недокументированные внутренние состояния в которых как правило ведет себя весьма странно и уж точно не в соответствии с документацией.

Ясно, спасибо. Значит, точно надо менять

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


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

Ну да :biggrin: Это просто фраза такая. Из фильма :biggrin:
Вообще-то эта фраза (про отца русской демократии) из произведения Ильфа и Петрова "Двенадцать стульев" ;) А фильмов по этому произведению снято по-моему как минимум четыре штуки. Эх, молодежь! Только фильмы и знаете :(

В следующую минуту выяснилось, что председатель

биржевого комитета не имеет возможности принять участие

в завтрашней битве. Он очень сожалеет, но не может. Он

незнаком с военным делом. Потому-то его и выбрали

председателем биржевого комитета. Он в полном отчаянии,

но для спасения жизни отца русской демократии (сам

он старый октябрист) готов оказать возможную финансовую

помощь.

 

-- Вы верный друг отечества! -- торжественно сказал

Остап, запивая пахучий шашлык сладеньким кипиани. --

Пятьсот рублей могут спасти отца русской демократии.

 

-- Скажите, -- спросил Кислярский жалобно, -- а двести

рублей не могут спасти гиганта мысли?

 

Остап не выдержал и под столом восторженно пнул Ипполита

Матвеевича ногой.

 

-- Я думаю, -- сказал Ипполит Матвеевич, -- что торг

здесь неуместен!

Сорри за :bb-offtopic:

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


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

Сорри за :bb-offtopic:

 

Ну что, Вы, коллега! Какие могут быть извинения? Наоборот. Что касается лично меня, так я с огромным удовольствием перечитал приведенный Вами кусочек текста несколько раз. Соответственно, пасибо несколько раз. Это как внезапный бальзам на мои раны. :)

 

Но вот что меня беспокоит. Это у точно офф-топ. Но я не побоюсь поднять этот вопрос. Мы становимся настолько информационно-зависимыми людьми, что наше сознание стало меняться. Я не одинок в оэтом, и я имею ввиду это:

Интернет уменьшает мою способность концентрироваться и созерцать. Мой мозг теперь ожидает поступления информации в том виде, в каком ее распространяет Сеть

...

Создается такое впечатление, что мне постоянно приходится насильно возвращать свой своевольный мозг к тексту.

...

'Теперь я практически утратил способность читать и усваивать длинные статьи в Интернете или в напечатанном виде', - писал он в этом году. Фридман, патолог, давно работающий на медицинском факультете Мичиганского университета... Он сказал, что его мышление стало отрывочным, подобно тому, как он по диагонали просматривает отрывки текстов из многих сетевых источников. 'Я уже не могу читать 'Войну и мир', - признался он. - Я утратил эту способность. Мне даже стало трудно дочитать до конца пост, в котором больше трех-четырех параграфов. Такие я бегло просматриваю'

...

http://www.inosmi.ru/translation/245027.html

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


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

Да читала, читала я "произведение Ильфа и Петрова Двенадцать стульев"! и "Золотой теленок", кстати, тоже, и упомянутый выше "Война и Мир". Просто мне показалось, что Вы вообще не узнали фразу, так что говорить о книге было уже не уместно :biggrin: Извиняюсь, в свою очередь.

А насчет поднятой темы, о том, что читать и запоминать информацию становится все тяжелее, так вот не согласна. ;) Ну, у меня, правда, были проблемы с руководством по MSP :biggrin: Но это потому, что информация - техническая и новая для меня - все равно, что с китайского пытаться переводить. Сейчас уже становится полегче воспринимать подобные тексты, когда мышление потихоньку подстраивается. А художественные тексты как читались, так и читаются. А молодое поколение, кстати, тоже не такое уж безнадежное в этом смысле, просто они читают... другие книги :) Ну так, каждому возрасту свое.

Вот такой развернутый оффтоп, с Вашей подачи, надеюсь, что модераторы не заблокируют нас :biggrin: Было бы не хорошо. у меня еще впереди МНОГО вопросов :biggrin:

P.S. Четырех фильмов, кстати, не помню. Знаю только два. И еще два "Золотых теленка". Но пообщаться на литературную и кинематографическую тему могу пригласить Вас в другое место, если захотите - кину ссылочку :biggrin:

Изменено пользователем Daria

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


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

Опять детские вопросы :) Если объявлять константыкак const в какой раздел flash они пишутся - в information или main?

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


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

Если объявлять константыкак const в какой раздел flash они пишутся - в information или main?
В раздел, выделенный для CONST :) Если вы не правили типовой xcl-файл, то CONST и CODE совпадают. Вот часть содержимого lnk430F149.xcl

/ ---------------------------------------------------------
// Read only memory


// ---------------------------------------------------------
// Information memory
// ---------------------------------------------------------

-Z(CODE)INFO=1000-10FF
-Z(CODE)INFOA=1080-10FF
-Z(CODE)INFOB=1000-107F



// ---------------------------------------------------------
// Constant data
// ---------------------------------------------------------

-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT=1100-FFDF
-Z(CONST)DATA20_C,DATA20_ID=1100-FFDF


// ---------------------------------------------------------
// Code
// ---------------------------------------------------------

-Z(CODE)CSTART,ISR_CODE=1100-FFDF
-P(CODE)CODE=1100-FFDF


// ---------------------------------------------------------
// Interrupt vectors
// ---------------------------------------------------------

-Z(CODE)INTVEC=FFE0-FFFF
-Z(CODE)RESET=FFFE-FFFF


// ---------------------------------------------------------
// The end
// ---------------------------------------------------------

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


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

В раздел, выделенный для CONST :)

Мм... Вопрос в чем - у меня в оба сегмента CONST пишутся калибровочные константы(начиная с адреса 1000 и начиная с адреса 1080), которые должны там быть пожизненно. При перезаписи flash, насколько я понимаю, стирается весь сегмент, к которому относится адрес, по которому пишется. Так вот - если буду объявлять кучу const - не перезатрется ли нужная инфа?

Изменено пользователем Daria

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


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

Так вот - если буду объявлять кучу const - не перезатрется ли нужная инфа?

Область INFO про которую вы упоминаете, обычно стирается отдельно. Точнее в программаторах обычно есть опция, стирать всю Flash перед загрузкой программы или стирать только основную часть Flash, оставляя область INFO нетронутой.

Кстати, а вы хорошо представляете себе работу с константами в Си? Квалификатор const указывает лишь, что эта переменная в данной функции/модуле не модифицируется. Куда поместится такая константа зависит от компилятора. У MSP430 она во Flash помещается, а вот у AVR, если доп. указания не делать и опции типа __flash не писать, то в ОЗУ. Кроме того, IAR хитро оптимизирует и может помещать значения констант прямо в исполняемый код. Я сам подзабыл о такой его подлючей особенности и налетел на эти "грабли" буквально пару недель назад. Если интересно, то могу объяснить в чем суть "грабелек".

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


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

Кроме того, IAR хитро оптимизирует и может помещать значения констант прямо в исполняемый код. Я сам подзабыл о такой его подлючей особенности и налетел на эти "грабли" буквально пару недель назад. Если интересно, то могу объяснить в чем суть "грабелек".

Да, я хотел бы послушать.

Пожалуйста, коллега, если это Вас не сильно затруднит.

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


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

Да, я хотел бы послушать.

Пожалуйста, коллега, если это Вас не сильно затруднит.

Пишу перед main что-то типа

#pragma location=0x10A0
const netSeg_t netSeg=
{ UART_MAXBUFSIZE,
  30,
  300,
  15,
  15,
  13,
  0x00,
  0x21,
  0x00,
  0xFF,
  0x00
};

Это параметры для инициализации UART и сетевых дел. В теле main использую значения этой структуры для инициализации переменных, которые в т.ч. могут быть модифицированы по связи. После модификации переменные сохраняются по указанному адресу (0x10A0) в область INFO. После перезагрузки используются уже новые (модифицированные) параметры. Ну все как обычно.

Но этот "злобный" IAR, видя что это const, подставляет значения констант из структуры непосредственно в код. А саму структуру выкидывает, как ненужную :(

Хоть так

GD.idNet=netSeg.idNet;   //сетевой адрес

хоть так

netSeg_t *ptr=&netSeg;
GD.idNet=ptr->idNet;   //сетевой адрес

В результате имеем

// 25 GD.idNet=netSeg.idNet;   //сетевой адрес
        MOV.B   #0x21, &GD

Причем формально IAR вполне прав. :laughing: С выкидыванием побороться довольно просто. Добавляем

#pragma required=netSeg

и вуаля! Компилятору надавали по рукам :) теперь константы на месте.

А вот с явной подставой значения константы, вместо считывания значения по адресу из структуры как-либо изящно побороться не получается :( Приходится обходным путем ее инициализировать, объявлять как

__no_init const netSeg_t netSeg;

а значения уже прямо в прошивку подставлять.

@10A0
0C 02 1E 00 2C 01 0F 00 0F 00 0D 00 21 00 FF 00

Использую IAR EW430 4.10A.

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


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

А я по старинке использую ИАР 3.30. У меня массив с константами тоже хранится во флэшь и эти константы обновляются при калибровке прибора. Сами константы объявлены в файле, где функция main(), а используются в других файлах. Такого не наблюдал.

А если Вам попробовать объявить так:

#pragma location=0x10A0
const volatile netSeg_t netSeg=
{ UART_MAXBUFSIZE,
  30,
  300,
  15,
  15,
  13,
  0x00,
  0x21,
  0x00,
  0xFF,
  0x00
};

У меня ИАР жрет такую конструкцию, код становится несколько иным, как и положено при работе с волатильными переменными. Может, при такой конструкции ИАР не будет заменять константы их значениями.

rezident, можете это проверить у себя?

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


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

1. Спасибо.

2. А не пробовали разнести эту структуру и main по разным файлам?

 

Компиляция каждого файла пройдет отдельно и не зависимо. "Дикой" оптимизации констатн в код не произойдет. А линкер потом все вместе свяжет.

 

ЗЫ. Ну вон, VAI опередил, предлагает так же делать.

Изменено пользователем zhevak

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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