Страница 295 из 400

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 14:39:47
ARV
trofim2 писал(а):Я же просил на пальцах.
http://nongnu.org/avr-libc/user-manual/ ... mdemo.html

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 15:14:54
trofim2
У нас, в этой теме, речь идёт про ассемблер.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 15:31:48
ptr128
И по ссылке тоже про ассемблер

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 15:47:51
trofim2
Так там малюпасенький кусочек на асм, а всё на С, а мне надо всё на АСМ.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 16:02:36
ptr128
Если выкинуть все про C, а оставить только про ассемблер, то это и будет то, что Вы хотели.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 16:04:24
trofim2
Но как это запустить на трансляцию?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 16:06:59
ptr128
Сказано же. Если GCC на вход дать файл с расширением *.s, то он сам натравит на него GNU макроассемблер.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 16:12:28
trofim2
Как ему это дать?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 16:17:05
ptr128
Любым IDE поддерживающим AVR GNU toolchain. Или руками из командной строки. Или GNU make.
Если Вы хотите подключить к конкретному IDE, то смотрите, как к нему подключить GNU toolchain.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 16:29:58
trofim2
В простейшем случае беру любой файл с расширением .asm, переименовываю на .s и запускаю командную строку. Должен получить файлы .hex (2 штуки) и .lst.
Какая будет командная строка lля запуска трансляции?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 16:47:32
ptr128
Нет, GCC на выходе даст или объектный файл или, по-умолчанию, elf. Из elf hex еще надо будет делать, при помощи avr-objcopy. Если Вы не готовы изучать GNU toolchain, воспользуйтесь готовым IDE, которое все сделает за Вас, даже вызов avrdude для заливки прошивки.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 17:11:41
trofim2
Да я не готов изучать GNU toolchain и не знаю, что такое IDE.
Подскажите:
1. Какая командная строка для получения .elf?
2. Какая для преобразования elf в .hex (2 штуки) и .lst?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 17:24:08
ptr128
1. avr-gcc xxxx.s
2. avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex xxxx.elf "xxxx.hex"

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 17:49:01
trofim2
Выдает кучу ошибок, начиная с м128def.inc.
Надо что-то другое?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 17:51:24
ptr128
Ассемблерный исходник должен иметь расширение "s"

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 18:04:11
trofim2
Это я понял.
в файле строка
.include "m128def.inc"
и в нем выдает ошибки

почему-то строка "avr-gcc Test.S > Err.txt" не скидывает ошибки в файл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 18:17:12
ptr128
Во-первых, я без понятия, что за ошибки он выдает. Может m128def.inc не находит.
Во-вторых, Вы перенаправляете в файл stdout, ошибки выводятся в stderr, который вы не перенаправляете в файл

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 18:36:11
trofim2
Похоже у него несколько другой синтаксис.
m128def.inc находит, в нем выдает ошибки.
Не признает "cseg".

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 18:57:43
ptr128
http://tigcc.ticalc.org/doc/gnuasm.html

Добавлено after 15 minutes 59 seconds:
Пример использования http://www.nongnu.org/avr-libc/user-man ... mbler.html

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Пт ноя 25, 2016 19:52:22
Andrew Martin
Z_h_e писал(а):Ваш пример рабочий? Как компилятор узнает зону ответственности метки?
Это просто показательный пример, чтобы была ясна идеология локальных меток.
На avrasm-е никогда не пользовался локальными метками, за то в fasm-е и fasmarm постоянно. Там вот такие конструкции с локальными метками:

Код: Выделить всё


procname1:

cmp r0,0
bge  .label1
blt    .label2

.label1:
.label2:

procname2:

cmp r0,0
bge  .label1
blt    .label2

.label1:
.label2:

преобразуется препроцессором в:

Код: Выделить всё


cmp r0,0
bge procname1.label1
blt   procname1.label2

cmp r0,0
bge procname2.label1
blt   procname2.label2

Зона корректности локальной метки вида .label1 - после глобальной метки и до следующей глобальной метки.

P.S.: Сейчас очень активно развивается проект fasmg, там на мощнейший препроцессорный скелет можно навесить надстройки практически для любых МК. Для AVR уже есть :)))

Добавлено after 20 minutes 7 seconds:
ptr128 писал(а): Дайте возможность компоновщику потрудиться )
Никогда не нравилась возня с объектниками и компоновкой. Делаю так только на x86 и то на относительно больших проектах. Не каждый ассемблер умеет генерить отладочную информацию в формате, поддерживаемом линкером, а отладка на уровне исходного кода очень удобна. Например, идеология fasm не предусматривает компоновку, поэтому он умеет генерить сразу исполняемые файлы многих форматов, хоть и объектники тоже поддерживает.