Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MspFet в ком. строке может сохранять память в файл?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
sept
Приведите пример работы в ком. строке для MspFet при чтении памяти и записи в файл.
MspFetCom +r readfile.bin -RAW=LPT1 не работает?
Возможно ли запись в RAM при помощи MspFet инициализации переменных __no_init
rezident
Чтобы считанную прошивку можно было записать в файл, ее нужно сохранить отдельной командой в меню. Как я понимаю, для командной строки Kurt этого (отдельной опции/ключа) не предусмотрел.
Вторую вашу фразу я вообще не понял. 07.gif
_pv
Цитата(sept @ May 29 2007, 19:59) *
Приведите пример работы в ком. строке для MspFet при чтении памяти и записи в файл.
MspFetCom +r readfile.bin -RAW=LPT1 не работает?

из консоли MspFetCon'ом этого похоже сделать нельзя, во всяком случае у меня не получилось.
читать-то он читает, а в файл сохранять не хочет.
если очень уж надо именно из консоли, то используйте mspfet который вместе с GCC идет, он умеет.
http://mspgcc.sourceforge.net/
Цитата(sept @ May 29 2007, 19:59) *
Возможно ли запись в RAM при помощи MspFet инициализации переменных __no_init

наверное можно если в файле прошивки будет что-то лежать по адресам RAMa, только какой в этом смысл? что после ресета с ними будет?
да и в памяти вообще-то патченный бутлоадер вроде бы может лежать во время прошивки...
sept
Для изменения констант типа float в info планировал читать при помощи MspFet эту переменную, отобразить, изменить и вновь записать в info при помощи MspFet. А как это проделать без IARa?

По второму:как инициализировать переменные __no_init .находящиеся в RAM(обеспечить "горячий и холодный "старт), т.е. прибор постоянно находится под батарейным питанием ,reset допустим ,но данные в RAM неоходимо сохранить.
rezident
Цитата(sept @ May 30 2007, 12:20) *
Для изменения констант типа float в info планировал читать при помощи MspFet эту переменную, отобразить, изменить и вновь записать в info при помощи MspFet. А как это проделать без IARa?

Коммуникационного порта или интерфейса пользователя (индикатор+ 2...3 кнопки) в приборе совсем нет? Если есть, то реализуйте изменения констант средствами самого кристалла, внутрипрограмно.
Цитата(sept @ May 30 2007, 12:20) *
По второму:как инициализировать переменные __no_init .находящиеся в RAM(обеспечить "горячий и холодный "старт), т.е. прибор постоянно находится под батарейным питанием ,reset допустим ,но данные в RAM неоходимо сохранить.

Непонятен вопрос. Вы не знаете как можно обнаружить "горячий" и "холодный" сброс или не понимаете как сохранить/восстановить переменные?
sept
Цитата(rezident @ May 30 2007, 13:22) *
Коммуникационного порта или интерфейса пользователя (индикатор+ 2...3 кнопки) в приборе совсем нет? Если есть, то реализуйте изменения констант средствами самого кристалла, внутрипрограмно.

Непонятен вопрос. Вы не знаете как можно обнаружить "горячий" и "холодный" сброс или не понимаете как сохранить/восстановить переменные?

Да,я пока не знаю как отличить "горячиий и холодный" сброс и как сохранить переменные в ОЗУ при WDT-cбросе или внешнем сбросе.
Прибор не имеет органов упраления и константы типа float в info должны вводиться раз год по JTAG без помощи IARa.
rezident
Цитата(sept @ May 30 2007, 17:55) *
Да,я пока не знаю как отличить "горячиий и холодный" сброс и как сохранить переменные в ОЗУ при WDT-cбросе или внешнем сбросе.

Почитайте о различиях POR и PUC в User's Manual (раздел System Reset and Initialization).
Обратите внимание на то, что некоторые периферийные регистры (биты в регистрах) не изменяются/инициализируются при PUC в отличие от POR.
Укажите тип кристалла с которым работаете, чтобы можно было более конкретные советы дать.
Цитата(sept @ May 30 2007, 17:55) *
Прибор не имеет органов упраления и константы типа float в info должны вводиться раз год по JTAG без помощи IARa.

Почему именно через JTAG, а не через последовательный порт или через BSL? Аппаратный UART в кристалле имеется?
sept
Цитата(rezident @ May 30 2007, 15:53) *
Почитайте о различиях POR и PUC в User's Manual (раздел System Reset and Initialization).
Обратите внимание на то, что некоторые периферийные регистры (биты в регистрах) не изменяются/инициализируются при PUC в отличие от POR.
Укажите тип кристалла с которым работаете, чтобы можно было более конкретные советы дать.

Почему именно через JTAG, а не через последовательный порт или через BSL? Аппаратный UART в кристалле имеется?

МК - MSP430F413 . программный UART на Timer_A каждые 10 сек выводит мгновенные значения параметров, з которые зависят от коэфф. в info, а в ОЗУ накопленные значения. Иногда возникает небходимость изменять эти коэфф. с контролем по UART и без сброса накопленных данных в ОЗУ.
rezident
Цитата(sept @ May 30 2007, 19:40) *
МК - MSP430F413 . программный UART на Timer_A каждые 10 сек выводит мгновенные значения параметров, з которые зависят от коэфф. в info, а в ОЗУ накопленные значения. Иногда возникает небходимость изменять эти коэфф. с контролем по UART и без сброса накопленных данных в ОЗУ.

Ну дак раз UART уже имеется, то через него и обновляйте ваши коэффициенты. Раз вывод раз в 10 сек происходит, то в остальное время можно UART на приеме держать. Как пришел запрос, который распознается вашим софтом как режим смены коэффициентов, так переписали их и проконтролировали. Только следует учесть два момента.
1. во время стирания/записи не допускается использовать прерывания.
2. если программа записи во флешь MSP430 работает прямо из его же флешь, то во время стирания и записи будет пауза в выполнении программы до окончания стирания/записи. А это время до нескольких мс может быть. Если нужно кроме записи одновременно еще что-то считать/контролировать, то запускайте блок программы записи во флешь из ОЗУ. Но использовать прерывания в это время тоже нельзя, т.к. вектора прерывания все равно во Flash находятся.
Если для вас критичны эти паузы в программе при стирании/записи, то лучше используйте внешнюю EEPROM с I2C или SPI интерфейсом. Внешняя EEPROM общее потребление устройства увеличит только на момент записи, т.к. в stand-by они потребляют весьма немного.
P.S. и еще один момент, если опять же в момент записи во Flash MSP430 нужно что-то еще выполнять, кроме самой записи, т.е. нельзя прерывать основной расчет, то следует заранее запастись в ОЗУ копиями констант из сегмента INFO. Потому, что доступа к Flash в момент стирания/записи не будет, даже если программа будет выполняться в ОЗУ. Доступ к константам во Flash при ее записи вызовет немаскируемое прерывание с установкой флага ACCVIFG, а результат чтения из INFO может быть непредсказуемым.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.