реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Программирование MSP430 под Linux, Только пара адресов
Navuhodonosor
сообщение Feb 8 2012, 16:50
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 585
Регистрация: 9-12-05
Из: Москва
Пользователь №: 12 011



Приветствую всех!

Эта тема освещалась на форуме, но несколько в иной плоскости.

А проблема выглядит так.
Имеется готовая рабочая программа для устройства на MSP430, в котором из экономии энергоресурсов и объёма нет никакого интерфейса, кроме JTAG.
При запуске системы требуется варьировать двумя параметрами, которые записываются в information memory и занимают там 2 (два) байта.

Всё, что я нашёл для Linux, это mspdebug.
В принципе, задача решена, но очень неизящно. Приходится стирать всю память, записывать нужные ячейки памяти, а потом опять восстанавливать всё остальное. Это потенциально нехорошо, если проводится в полевых условиях.

Возможно ли использовать mspdebug более целенаправленно? Или всё же где-то есть средства, которые могут работать с сегментами памяти?

Заранее благодарю!


--------------------
Кто работает - тот работает.
Go to the top of the page
 
+Quote Post
zhevak
сообщение Feb 8 2012, 18:48
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(Navuhodonosor @ Feb 8 2012, 22:50) *
Приветствую всех!

А проблема выглядит так.
Имеется готовая рабочая программа для устройства на MSP430, в котором из экономии энергоресурсов и объёма нет никакого интерфейса, кроме JTAG. При запуске системы требуется варьировать двумя параметрами, которые записываются в information memory и занимают там 2 (два) байта.

Всё, что я нашёл для Linux, это mspdebug.
В принципе, задача решена, но очень неизящно. Приходится стирать всю память, записывать нужные ячейки памяти, а потом опять восстанавливать всё остальное. Это потенциально нехорошо, если проводится в полевых условиях.

Возможно ли использовать mspdebug более целенаправленно? Или всё же где-то есть средства, которые могут работать с сегментами памяти?

И Вам привет!

Я немного не понял вопроса (Вы не указали детали), но все же попробую ответить.

В mspdebug имееться команда erase. Эта команда в зависимости от своих аргументов позволяет стирать:
  • без аргументов -- программную память, за исключением информационной,
  • аргумент all -- обе памяти: и программную, и информационную,
  • аргумент segment <addr> -- указанный сегмент в информационной или программной памяти.


Вообще mspdebug позволяет работать в двух режимах: терминальном и автоматическом.

В терминальный режим Вы самостоятельно должны давать команды в командной строек mspdebug. Характерный признак этого режима -- соответствующая подсказка в начале строки:
(mspdebug)

Например, чтобы стереть сегмент D Вы должны дать команду:

(mspdebug) erase segment 0x1000

Выход из командного режима обратно в оболочку (консоль) осуществляется командой exit или нажатием на Ctrl+D.

В автоматическом режиме -- Вы вызываете mspdebug с указанием действий, которые ему надо выполнить. Эти действия Вы перечисляете в кавычках в конце команды вызова. Например так:

$ mspdebug uif -d /dev/ttyUSB0 "prog out.hex"

После выполнения заданных действий mspdebug вернет управление оболочке.

Если Вам нужно выполнить несколько действий, то, как вариант, можете написать маленький скриптовый файл.

Я не знаю, на то ли я ответил. Уточняйте, если что не так.


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
Navuhodonosor
сообщение Feb 12 2012, 08:30
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 585
Регистрация: 9-12-05
Из: Москва
Пользователь №: 12 011



Спасибо!

Это именно то, что нужно.

Я просто пытался менять данные в сегменте A в information memory, а это место защищено от записи. Поэтому ничего не выходило.

В общем, технология получается типа такой:

1. Копируем содержимое нужного сегмента в файл.

2. Стираем указанный сегмент.

3. С помощью команды mw пишем куда надо, что надо.

4. Загружаем записанный ранее сегмент обратно. Ячейки, которые были изменены, не записываются.

Вуаля!

Насчёт скрипта - это очень правильная мысль.

Сообщение отредактировал Navuhodonosor - Feb 12 2012, 17:39


--------------------
Кто работает - тот работает.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 17:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01379 секунд с 7
ELECTRONIX ©2004-2016