Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MSP430: простенький ассемблер под Линукс
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
zhevak
По жизни часто бывает так, что нужно создать сверхмалопотребляющий девайсик с потреблением несколько единиц-десятков микроампер. (А не поднять средней тяжести проект с потреблением в несколько миллиампер и более.)

В таких случаях я беру MSP430, а софт стугаю на асме. Си в таких микро-проектах явно избыточен. До этого момента я делал все в IAR-е под Вендой, так как он, в отличие от msp430-gcc, позволяет легко создавать небольшие асмовские проекты. Но это крайне неудобно. Мне хотелось бы пилить свои проекты под Линем. Поэтому, я присоседился к naken430asm-у.

Он работает нормально. Точнее, там не работать нечему! Однако у naken-а есть небольшая проблемка. Состоит она в том, что он почти голый. В нем имеются описания всего лишь трех или четырех процов. (Как раз тех, которые мне не нужны!) Поэтому я сразу же написал файлик для своего проца. А пока писал, понял, что автор делает не совсем правильно. Нужно было систему .inc-файлов разбить на модули, а потом из этих модулей набирать конфигурацию для конкретных процов. Я переделал эту систему .inc-фалов на новый лад и получил положительный результат.

Теперь надо ее продолжать развивать. Примерно половину работы по модулям я уже сделал. Надо описать еще недостающих 5-7 модулей типа ЦАП и АЦП. И надо написать .inc-файлы для других моделей MSP430, на основе этих модулей. Ну и желательно поиграться, проверить в на реальном железе.

Нужна помощь сообщества в наборе этих файлов. Нужна помощь экспертов, хорошо знающих MSP430.

Подскажите, что делать?
MrYuran
Что-то я не понимаю... А готовые .h файлы с описаниями всех семейств и контроллеров почему бы не применить? И mspgcc, пусть даже только ассемблер (и линкер, естественно)
Зачем делать пустую и бесполезную работу?
Кстати, попробуйте запустить IAR под Wine-ом. У меня он по крайней мере устанавливался, работоспособность не проверял. (главное, чтобы менеджер лицензий не брыкался)

Не совсем понял про mspgcc: почему он не позволяет создавать asm-проекты?

[полуофф]
Насчёт ассемблера есть ещё одна интересная идея - использовать forth в качестве мета-макроассемблера. На сомОм форте строится ассемблер (в обратной польской нотации sm.gif ), на основании этого ассемблера строятся очередные примитивы форта, а дальше идёт абстракция любого уровня высоты, ширины и сложности.
Я пару-тройку лет назад увлекся, но серые будни и рутина взяли верх... Но вирус форта навсегда поселился в мозгу sm.gif
Попытался сейчас отыскать ту тему, но не смог sad.gif
Может, она в офтопе была? Скорее всего...

Порылся в закромах, вот, откопал статейку.
Нажмите для просмотра прикрепленного файла
zhevak
Цитата(MrYuran @ Aug 4 2011, 13:52) *
Что-то я не понимаю... А готовые .h файлы с описаниями всех семейств и контроллеров почему бы не применить?

Потому что у них другой формат, потому что в них много "мусора", потому что они большие и длинные -- сложно сразу схватить что там понаписано и для чего. Да, много причин...

Цитата(MrYuran @ Aug 4 2011, 13:52) *
И mspgcc, пусть даже только ассемблер (и линкер, естественно)

msp430-gcc -- относительно большая сложная система, которая поддерживает много-много-многофайловые проекты. Такая мощь не нужна. Тем более, лично я не смог продраться через чисто ассемблерные проекты. Я не смог легко создать ассемблерный проект и получить код, как я это бы сделал в том же IAR-е. Мне нужно просто, на коленке, написать исходник из сотни-другой ассеблерных команд и откомпилировать его сразу в HEX, ни с чем больше не линкуя. Ну может я должен сказать так, чтобы точнее донести свою мысль -- мне не нужен квантовый молоток с регулируемой силой удара и лазерным наведением чтобы забить гвоздь в сельском сортире.

Цитата(MrYuran @ Aug 4 2011, 13:52) *
Зачем делать пустую и бесполезную работу?

Сколько людей, столько и мнений. Спасибо за Ваше мнение.
Ответ подсказал Хабр: Вам должно нравиться то, что вы делаете, иначе вы зря тратите свое время.

Цитата(MrYuran @ Aug 4 2011, 13:52) *
Кстати, попробуйте запустить IAR под Wine-ом.

Не решение. IAR сам по себе тяжел. И если мне нужно работать с большими проектами, я использую msp430-gcc, который такой же тяжелый. Но мне нужен легкий и простой инструмент. В общем то, инструмент уже есть и работает. Его нужно только "насытить" заголовочными файлами.

Цитата(MrYuran @ Aug 4 2011, 13:52) *
Не совсем понял про mspgcc: почему он не позволяет создавать asm-проекты?

Мне не удалось это сделать легко и просто.
С-шные проекты на нем стругать -- это, да. Без вопросов. Легко и просто. Как в IAR-е. Но проекты из одного файла и сразу в HEX -- у меня почему-то не получается.

Спасибо за Ваше мнение!
SSerge
Из всех перечисленных как раз IAR и есть самый простой, потому что на него документация нормальная есть.
По мне так лучше её внимательно читать, чем потом по самодельным граблям бегать.
Сергей Борщ
QUOTE (zhevak @ Aug 4 2011, 12:11) *
С-шные проекты на нем стругать -- это, да. Без вопросов. Легко и просто. Как в IAR-е. Но проекты из одного файла и сразу в HEX -- у меня почему-то не получается.
А какая разница что там в промежутке от исходника до HEX? Прекрасно там получались асмовые проекты. Легко и непринужденно. Вероятнее всего что-то вы упустили. Если есть желание - разберемся. Ну компилит он сначала в объектник, потом линкует, потом гененрит HEX. Не нравится? Добавьте в makefile стирание объектников после генерации HEX wink.gif
zhevak
Цитата(Сергей Борщ @ Aug 8 2011, 15:03) *
А какая разница что там в промежутке от исходника до HEX? Прекрасно там получались асмовые проекты. Легко и непринужденно. Вероятнее всего что-то вы упустили. Если есть желание - разберемся. Ну компилит он сначала в объектник, потом линкует, потом гененрит HEX. Не нравится? Добавьте в makefile стирание объектников после генерации HEX wink.gif

Да мне, собственно, безразницы, что там в промежутке с кодом происходит.
Я не смог найди, информацию по ассемблерным директивам для MSP430. Или хотя бы какой-нибудь проектик для примера. Промаялся я так пару дней, а потом вдруг наскочил на сайт Михайло Кона. Загрузил, собрал, установил, попробовал -- и все сразу же получилось. Делов-то -- всего на 15 минут!

Может где-то дока есть какая? Что-нибудь бы почитать. Желание разобраться с gcc, как на нем писать чистые ассемблерные проекты, конечно, есть.
alx2
Цитата(zhevak @ Aug 8 2011, 18:52) *
Я не смог найди, информацию по ассемблерным директивам для MSP430.
http://sourceware.org/binutils/docs/as/MSP...0_002dDependent

Цитата(zhevak @ Aug 8 2011, 18:52) *
Может где-то дока есть какая? Что-нибудь бы почитать. Желание разобраться с gcc, как на нем писать чистые ассемблерные проекты, конечно, есть.
Дока по ассемблеру есть там, где и должна быть - на "родном" сайте. На www.gnu.org есть все нужные ссылки...

И еще непонятно, зачем Вам разбираться с GCC, если Вы собираетесь писать на "чистом" ассемблере. GCC - это только компиляторы с языков высокого уровня. Если Вы пишете только на ассемблере, они Вам не нужны, и разбираться с ними незачем. Вам нужно разобраться с ассемблером, линкером и еще парой-тройкой вспомогательных утилит, входящих в пакет GNU binutils. http://sourceware.org/binutils/
zhevak
alx2 -- спасибо за ссылки.
Я их видел. Давненько правда, полгода-год назад, когда собирал тулчейн для АРМ-ов...
Сейчас еще раз заглянул. Ну да, можно загрузить бинутилс, сконфигурировать его на MSP430, собрать и установить.
Только этот путь мне кажется несколько более длинным, чем установка ассемблера Михаила Кона.
Он, конечно, он более академический, чем самопальный ассемблер какого-то Мишки из Сент-Луиса... но... но...

Мне надо-то -- всего-то отассемблировать файл в 200 строк, и получить на выходе HEX.
Установить Мишкин ассемблер и откомпилировать, получилось быстрее и проще, чем продираться через gas.

У меня всего несколько проектов на ассемблере MSP430. ("Проектов" -- в смысле, в контексте среды разработки.)
Они отличаются друг от друга незначительно, так как предназначены для разных модификаций конечного изделия.
Да и не развиваются они совсем. И перспективы, что замутим новое изделие снова на MSP430, как-то тоже нет.
В общем, решил я задачу пока по-рабоче-крестьянски. Мне надо было слезть с Венды и IAR-а. Я слез -- а это главное!
Теперь можно и академически подумать, ну в смысле поиграться с gas.

Попробуйте нагуглить "msp430 assembler", и Вы увидите, что gnu assembler даже на первой странице.
Наверно это меня и увело от gas для gnu.

А за ссылки еще раз спасибо!
Реально помогли. Просто почему-то глаз упорно за них не хотел цепляться.
Kopa
Цитата(MrYuran @ Aug 4 2011, 11:52) *
[полуофф]
Насчёт ассемблера есть ещё одна интересная идея - использовать forth в качестве мета-макроассемблера. На сомОм форте строится ассемблер (в обратной польской нотации sm.gif ), на основании этого ассемблера строятся очередные примитивы форта, а дальше идёт абстракция любого уровня высоты, ширины и сложности.
Я пару-тройку лет назад увлекся, но серые будни и рутина взяли верх... Но вирус форта навсегда поселился в мозгу sm.gif
Попытался сейчас отыскать ту тему, но не смог sad.gif
Может, она в офтопе была? Скорее всего...

этот топик? <a href="http://electronix.ru/forum/lofiversion/index.php/t61758.html" target="_blank">http://electronix.ru/forum/lofiversion/index.php/t61758.html</a> А вот бы на Forth написать ...

Цитата(MrYuran @ Aug 4 2011, 11:52) *
Порылся в закромах, вот, откопал статейку.
Нажмите для просмотра прикрепленного файла

отсюда forum.cqham.ru/viewtopic.php?t=16006

P.S. При интересе к данной тематике, могу доработать ff303 для использования Форта для MSP430 как это было сделано для PDP-11 (похож на MSP430) http://forth.org.ru/~kp или помогу посильной помощьюsm.gif Ассемблер может быть и в обычной нотации.
Удачи!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.