Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср окт 26, 2016 08:03:29
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
С IARом имею малое знакомство. STM8 пробовал. Пробовал разок, чтобы почувствовать что за камень, прогал на асме. У STM8 оказался мягко говоря странный синтаксис ассемблера. Но я не это хотел сказать. Официальное описание синтаксиса асма для IAR под STM8 имеет кучу ошибок, пришлось тыком выяснять где фигурная скобка, а где простая и т.п.. А Chettuser выявил, до кучи, косяк в инклуднике.
Вот не знаю, конечно, как IAR с AVR дружит.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср окт 26, 2016 11:35:23
Встал на лапы
Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03 Сообщений: 106 Откуда: Гродно, BY
Рейтинг сообщения:0
Цитата:
чтобы создать проект "на ассме" вы должны создать файлик *.S, в котором описать глобальную метку main - вот и все! вместо таблицы векторов - глобальные метки. если кроме ассемблера исходников на Си не будет - это все, что вы должны сделать. и будет вам счастье.
Можно примеры файлика.s и .bat, чтобы странслировать и посмотреть листинг? У меня большие проблемы с синтаксисом.
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср окт 26, 2016 11:49:49
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
У меня атмел студио 6. Создаете обычный сишный проект. А потом в него добавляете сколько угодно ассемблерных файлов .s. Про батник я тут ничего не знаю.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
я не зря писал, что добавлять надо файлы .S - avr-gcc отличает большие и маленькие буквы в именах файлов и по-разному их обрабатывает. в частности, с большой буквой S ассемблер обрабатывает файл препроцессором, а с маленькой - не обрабатывает. так что расширение может приносить проблемы, если задавать его, не заморачиваясь.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Я запускаю c:\avr\asm\avrasm2 -llst.asm -fI -e%1_ee.hex -fI %1.asm
и что? как это соотносится с этим:
trofim2 писал(а):
Можно примеры файлика.s и .bat, чтобы странслировать и посмотреть листинг? У меня большие проблемы с синтаксисом.
обращаю ваше внимание, что мои последние посты (на протяжении 2-3 страниц форума) касаются не avrasm2, а avr-as, который стандартно не входит в комплект AVR Studio, а является частью WinAVR. так же он должен быть в комплекте Atmel Toolchain, т.е. в комплекте Atmel Studio 6 и новее.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Дык... и avr-as и avr32-as еще у 4.19 в комплекте идут в папке C:\Program Files\Atmel\AVR Tools\AVR Toolchain\bin
только снова батники запуска писать и еще один вариант синтаксиса прорабатывать... мндяаа... Да и рассчитано сие средство скорее для работы в комплексе AVR Toolchain, чем для автономно-самостоятельного применения...
рассчитано сие средство скорее для работы в комплексе AVR Toolchain, чем для автономно-самостоятельного применен
дык я об этом уже сколько толкую!
и не батники тут нужны, а makefile.
в конце концов можно в командной строке написать вызов avr-gcc с указанием ему исходника на асме и остальными ключиками для окончательной компиляции и линковки (avr-gcc сам разберется, что за исходник ему подсунули и вызовет для компиляции avr-as)
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Я вот тоже все никак не пойму народ. Если использовать GNU avr-as, то зачем тогда вообще писать на ассемблере в *.S файлах, если можно тоже самое написать в *.c, используя оператор asm. avr-as именно для этого и предназначен вообще то.
_________________ Не ошибается только то, кто ничего не делает. Тот, кто признает свои ошибки, на них учится. Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср окт 26, 2016 15:56:29
Встал на лапы
Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03 Сообщений: 106 Откуда: Гродно, BY
Рейтинг сообщения:0
Я показал как сейчас транслирую код с помощью avrasm2, но как вы писали, что avr-as имеет больше возможностей с точки зрения макросов. Хотелось бы попробовать.
чего ж тут непонятного? во-первых, внутри asm() нельзя применять макросы - основная плюшка avr-as. во-вторых, синтаксис ассемблерных вставок GCC уж очень сильно отличается от привычного ассемблера...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
во-первых, если ссылаетесь на пост, то делайте это обычным способом - ссылкой. иначе понять, что вы имеете ввиду, затруднительно. во-вторых, я специально для вас написал несколько сообщений, чтобы разъяснить вам, что avr-as не применяют так, как применяли avrasm2. это хотя бы понятно?
ARV писал(а):
и не батники тут нужны, а makefile.
в конце концов можно в командной строке написать вызов avr-gcc с указанием ему исходника на асме и остальными ключиками для окончательной компиляции и линковки (avr-gcc сам разберется, что за исходник ему подсунули и вызовет для компиляции avr-as)
ARV писал(а):
обращаю ваше внимание, что мои последние посты (на протяжении 2-3 страниц форума) касаются не avrasm2, а avr-as, который стандартно не входит в комплект AVR Studio, а является частью WinAVR. так же он должен быть в комплекте Atmel Toolchain, т.е. в комплекте Atmel Studio 6 и новее.
ARV писал(а):
чтобы создать проект "на ассме" вы должны создать файлик *.S, в котором описать глобальную метку main - вот и все! вместо таблицы векторов - глобальные метки. если кроме ассемблера исходников на Си не будет - это все, что вы должны сделать. и будет вам счастье.
но, я ранее писал, и это наиболее актуально:
ARV писал(а):
avr-as предназначен (и наиболее удобен) именно как средство расширения проектов Си/С++, а не как средство разработки проектов на ассемблере целиком (хотя можно и это, разумеется).
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср окт 26, 2016 19:29:29
Встал на лапы
Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03 Сообщений: 106 Откуда: Гродно, BY
Рейтинг сообщения:0
Я всё прекрасно понимаю, но похоже придумал себе невесть что. Я понял так: 1. Создаем простой файл на Си. 2. В этом файле имеем строку "asm()". 3. Включаем файл (инклюдом) с программой, написаной на асм. 4. Транслируем и получаем результат.
Включаем файл (инклюдом) с программой, написаной на асм
никогда никаких инклюдов других файлов с исходными текстами быть не должно! в Си инклюдятся только заголовочные файлы, которые не должны содержать реализаций функций - только описания и определения, да и то с ограничениями!
asm - это "оператор" ассемблерной вставки, он имеет особый формат, сильно отличающийся от привычного ассемблерного исходника. сравните сами: ассемблерная вставкаСпойлер
поэтому правильное использование ассемблерного модуля должно быть таким: 1. создаем проект WinAVR (в AVR Studio 4.xx - как в более новых, не знаю) 2. создаем файл с расширением .S 3. добавляем его в проект 4. задаем опции проекта - тип МК, частоту и т.п. 5. компилируем
в файле .S у вас могут быть описанные по правилам синтаксиса avr-as функции, которые можно использовать в других исходниках (файлы .c или .S), причем сами эти функции тоже могут использовать глобальные переменные, определенные в других файлах проекта... но в самом простейшем случае у вас может быть единственный исходник .S - в этом случае он обязательно должен содержать глобальную метку main - это и будет главная функция. при этом следует знать, что ДО перехода на эту метку автоматически будет настроен указатель стека и проведена очистка памяти под глобальные неинициализированные переменные, а инициализированные будут проинициализированы - все как в Си.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
_________________ Не ошибается только то, кто ничего не делает. Тот, кто признает свои ошибки, на них учится. Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Мда... Однако... Интересную тему затронули. Большое спасибо всем за информацию, самому бы пришлось долго копаться, что-бы получить какое-то внятное представление. Я думаю, что если в будущем понадобится писать что-то больше 8 - 16Кбайт, то одним ассемблером наверно не обойдусь. Но пока хватает avrasm2.
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт окт 27, 2016 06:28:45
Встал на лапы
Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03 Сообщений: 106 Откуда: Гродно, BY
Рейтинг сообщения:0
Меня вполне устраивает avrasm2, кроме отсутствия локальных меток. Надеялся, что можно будет написать макросы для этих целей. Можно сделать вывод, что для тех кто очень любит ассемблер можно забыть о avr-as. Какие еще варианты могут быть? Какие еще трансляторы есть?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения