STM32 новичку в ARM что к чему
- Мяукните!
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Пн апр 20, 2015 14:00:32
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Да, мой сайт!
- Реклама
- Alexey_N
- Сверлит текстолит когтями
- Сообщения: 1273
- Зарегистрирован: Вт фев 01, 2011 17:56:40
- Откуда: г. Жуковка, Брянская обл.
Re: STM32 новичку в ARM что к чему
Спасибо вам
Он очень помог мне в это деле.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
- Alexey_N
- Сверлит текстолит когтями
- Сообщения: 1273
- Зарегистрирован: Вт фев 01, 2011 17:56:40
- Откуда: г. Жуковка, Брянская обл.
Re: STM32 новичку в ARM что к чему
2 Мяукните!
Кстати, там на сайте все примеры на gcc as, я с него тоже начал, но так и не нашел как переносить команду на несколько строк? Просто бывают весьма длинные команды (например комбинация флагов) и код становится плохо читаемым без этого.
Кстати, там на сайте все примеры на gcc as, я с него тоже начал, но так и не нашел как переносить команду на несколько строк? Просто бывают весьма длинные команды (например комбинация флагов) и код становится плохо читаемым без этого.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
- Мяукните!
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Пн апр 20, 2015 14:00:32
- Контактная информация:
Re: STM32 новичку в ARM что к чему
А у меня стоит перенос строк по границе окна, как-то и не заморачиваюсь. На арм-овский ассемблер я так и не нашёл документации, в принципе. Какие-то обрывки 20-летней давности..
И тут жизнь получила совершенно неожиданный поворот! Я сейчас жду beaglebone, что бы раскопать её аналогичным образом на ассемблере. Установил CCSv6 и обнаружил интересную штуку - TI arm compiler. Впервые о таком слышу. AM3359 мой первый камушек от ti, а там ещё совершенно улётный, одноцикловый PRU с приличным ассемблером. Но главное, к ним есть полноценная документация.
И вот очень эта штука меня заинтересовала, на предмет совместимости со всеми ARM камушками, а не только ti. Действительно, в составе CCS имеется набор файлов, с виду похожий на binutils. Это может иметь хорошее продолжение.
И тут жизнь получила совершенно неожиданный поворот! Я сейчас жду beaglebone, что бы раскопать её аналогичным образом на ассемблере. Установил CCSv6 и обнаружил интересную штуку - TI arm compiler. Впервые о таком слышу. AM3359 мой первый камушек от ti, а там ещё совершенно улётный, одноцикловый PRU с приличным ассемблером. Но главное, к ним есть полноценная документация.
И вот очень эта штука меня заинтересовала, на предмет совместимости со всеми ARM камушками, а не только ti. Действительно, в составе CCS имеется набор файлов, с виду похожий на binutils. Это может иметь хорошее продолжение.
- Вложения
-
- TI binutils.png
- (41.42 КБ) 263 скачивания
NXP i.MX7D на чистом ассемблере
Re: STM32 новичку в ARM что к чему
Надо воспользоваться g++ компилятором для ассемблерного файла, расширение у этого файла обязательно должно быть .S(именно большая S).Alexey_N писал(а):как переносить команду на несколько строк?
Тогда компилятор сначала прогонит исходник через препроцессор, а затем откомпилирует ассемблер. В этом случае разбиение строк работает обычным образом:
Код: Выделить всё
blx \
r0
- Реклама
- Alexey_N
- Сверлит текстолит когтями
- Сообщения: 1273
- Зарегистрирован: Вт фев 01, 2011 17:56:40
- Откуда: г. Жуковка, Брянская обл.
Re: STM32 новичку в ARM что к чему
2 BorisSPB
Спасибо за ответ. Попробую.
2 Мяукните!
Я вытащил из arm dev studio armasm.exe, но пока не изучал его. Сейчас fasmarm использую, в нем привычные возможности из x86 версии, но пока он сыроват, dwarf кривовато генерит. Все еще подумываю вернуться на gnu as, но отсутсвующий в нем препроцессор и необходимость использования сишного что-то не радует. С другой стороны, fasmarm не может сразу генерировать dwarf и bin (или hex), добавлять условное ассемблирование в него под разные форматы - извращение, поэтому использую objdump из gnu. В общем посмотрим, что лучше будет ...
Спасибо за ответ. Попробую.
2 Мяукните!
Я вытащил из arm dev studio armasm.exe, но пока не изучал его. Сейчас fasmarm использую, в нем привычные возможности из x86 версии, но пока он сыроват, dwarf кривовато генерит. Все еще подумываю вернуться на gnu as, но отсутсвующий в нем препроцессор и необходимость использования сишного что-то не радует. С другой стороны, fasmarm не может сразу генерировать dwarf и bin (или hex), добавлять условное ассемблирование в него под разные форматы - извращение, поэтому использую objdump из gnu. В общем посмотрим, что лучше будет ...
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
А gas вообще ничего не может кроме объектника генерить, который нужно ещё линковать в гнома для отладки, а потом конвертировать в хекс или бинарник для прошивки (если программатор не поддерживает прошивку эльфом)Alexey_N писал(а):С другой стороны, fasmarm не может сразу генерировать dwarf и bin (или hex), добавлять условное ассемблирование в него под разные форматы - извращение, поэтому использую objcopy из gnu.
Всё равно батник писать.
И почему это извращение? Изменяются всего несколько строк в шапке файла - и всё. Можно и условным ассемблированием сделать.
А чтобы не зависеть от секций (которых в bin просто нет) можно RAM вести так:
Код: Выделить всё
SRAM_POINTER = SRAM_START ;в самом начале программы
virtual at SRAM_POINTER
start_data1:
var1 dw ?
var2 dh ?
.
.
.
.
.
end_data1:
end virtual
SRAM_POINTER = SRAM_POINTER + (end_data1-start_data1)
;и так далее
То что fasmarm сырой это конечно печально, но вполне поправимо.
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
Мяукните! писал(а):На арм-овский ассемблер я так и не нашёл документации, в принципе. Какие-то обрывки 20-летней давности..
В дистрибутиве Кейла есть справка по ARMASM/ARMLINK и т.д.
Но даже при этом он ужасен.
Меня сразу взбесил тем, что придрался к табуляции, притом ладно бы предупреждение (как например микрочиповский асм делает), а то ОШИБКА!
Еле понял в чём дело, сверяя свой исходник с аналогичным из примера...
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
Сейчас fasm пошел по иному пути развития - классический вариант скорее всего забросят.
Батька Томаш решил развивать fasmg - это по сути ОЧЕНЬ навороченный препроцессор от фасма с многими дополнительными фичами.
На этот fasmg создаётся набор инкладов, с которыми можно его заставить генерировать файлы почти любого формата и, что самое главное, НА ЛЮБУЮ ПЛАТФОРМУ.
Уже есть инклады для AVR, 8051, и даже JVM.
Другое дело что набор обширный, а сложность инструкций ARM высокая, поэтому вероятнее всего fasmg и fasmarm будут жить и развиваться параллельно.
Батька Томаш решил развивать fasmg - это по сути ОЧЕНЬ навороченный препроцессор от фасма с многими дополнительными фичами.
На этот fasmg создаётся набор инкладов, с которыми можно его заставить генерировать файлы почти любого формата и, что самое главное, НА ЛЮБУЮ ПЛАТФОРМУ.
Уже есть инклады для AVR, 8051, и даже JVM.
Другое дело что набор обширный, а сложность инструкций ARM высокая, поэтому вероятнее всего fasmg и fasmarm будут жить и развиваться параллельно.
- Alexey_N
- Сверлит текстолит когтями
- Сообщения: 1273
- Зарегистрирован: Вт фев 01, 2011 17:56:40
- Откуда: г. Жуковка, Брянская обл.
Re: STM32 новичку в ARM что к чему
2 Andrew Martin
Тут получается как: хотелось бы использовать что-то одно, но фасм не содержит дизассемблера и компилить fasm'ом приходится в dwarf, поскольку он нормально/читабельно дизассеблируется objdump'ом и из него можно получить bin.
Согласен с вами, что можно и таким образом бинарник вести, как вы предложили, поскольку препроцессор у фасма неслабый. Но опять же как потом с него получить нормальный листинг с указанием смещений инструкций?
Тут получается как: хотелось бы использовать что-то одно, но фасм не содержит дизассемблера и компилить fasm'ом приходится в dwarf, поскольку он нормально/читабельно дизассеблируется objdump'ом и из него можно получить bin.
Согласен с вами, что можно и таким образом бинарник вести, как вы предложили, поскольку препроцессор у фасма неслабый. Но опять же как потом с него получить нормальный листинг с указанием смещений инструкций?
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
- Мяукните!
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Пн апр 20, 2015 14:00:32
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Возвращайтесь. Он на сегодня лучший. Отличный повод, что бы забыть всё остальное, освободиться так сказать!Alexey_N писал(а):подумываю вернуться на gnu as
NXP i.MX7D на чистом ассемблере
Re: STM32 новичку в ARM что к чему
Читаю и думаю. Вы что это всё серьёзно? На таких камнях на АСМе уже не пишут. Ибо никакого смысла в этом просто нет.
Re: STM32 новичку в ARM что к чему
Знать asm конечно не помешает, при вкл оптимизации например, чтобы посмотреть что там натворил компилятор, но писать полностью проекты это через-чур.
- Alexey_N
- Сверлит текстолит когтями
- Сообщения: 1273
- Зарегистрирован: Вт фев 01, 2011 17:56:40
- Откуда: г. Жуковка, Брянская обл.
Re: STM32 новичку в ARM что к чему
Не понял что вы хотели этим сказать. На сарказм похоже.Мяукните! писал(а):Возвращайтесь. Он на сегодня лучший. Отличный повод, что бы забыть всё остальное, освободиться так сказать!Alexey_N писал(а):подумываю вернуться на gnu as
scorpi_0n писал(а):Вы что это всё серьёзно? На таких камнях на АСМе уже не пишут. Ибо никакого смысла в этом просто нет.
Серьезно, ничего сложного в асме нету (под win я тоже на асме программировал), с нормальным комментированием все отлично пишется, тем более, что это хобби.baghear писал(а):но писать полностью проекты это через-чур.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
Если дело только в этом - компилируйте бинарник с ключем -s, будет генерироваться файл отладочной информации. Натравливаете на него listing.exe и получаете листингAlexey_N писал(а):Но опять же как потом с него получить нормальный листинг с указанием смещений инструкций?
Код: Выделить всё
_reset_handler:
;Disable interrupts
000000C4: 72 B6 cpsid iflags_i
;Enable peripheral clock for GPIOA
000000C6: 11 48 ldr r0,[.rcc_base]
virtual at r0
.rcc RCC_TypeDef
end virtual
000000C8: 42 69 ldr r2,[.rcc.AHBENR]
000000CA: 01 21 49 04 ldbit r1,RCC_AHBENR_GPIOAEN
000000CE: 0A 43 orrs r2,r1
000000D0: 42 61 str r2,[.rcc.AHBENR]
000000D2: 0D 48 ldr r0,[.gpioa_base]
- Мяукните!
- Открыл глаза
- Сообщения: 63
- Зарегистрирован: Пн апр 20, 2015 14:00:32
- Контактная информация:
Re: STM32 новичку в ARM что к чему
До GCC я всё перепробовал. Остановился на gcc as. Это идеал. Главное ничего лишнего.Alexey_N писал(а):Не понял что вы хотели этим сказать. На сарказм похоже.
NXP i.MX7D на чистом ассемблере
- Alexey_N
- Сверлит текстолит когтями
- Сообщения: 1273
- Зарегистрирован: Вт фев 01, 2011 17:56:40
- Откуда: г. Жуковка, Брянская обл.
Re: STM32 новичку в ARM что к чему
А этот listing.exe откуда брать?Andrew Martin писал(а):Натравливаете на него listing.exe и получаете листинг
2 Мяукните!
А fasmarm пробовали?
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
Странно, программируя на фасме не знать таких вещейAlexey_N писал(а): А этот listing.exe откуда брать?
В дистрибутиве FASM (обычном под х86) есть папка TOOLS/WIN32, в ней файл исходника LISTING.ASM. Компилируете его фасмом и получаете LISTING.EXE.
Плагины на Ольку вам известны? Например, fasolly?
- Andrew Martin
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Вт июн 25, 2013 18:45:07
Re: STM32 новичку в ARM что к чему
Да уж, возможностями gas действительно не отягощенМяукните! писал(а):Главное ничего лишнего.
- Alexey_N
- Сверлит текстолит когтями
- Сообщения: 1273
- Зарегистрирован: Вт фев 01, 2011 17:56:40
- Откуда: г. Жуковка, Брянская обл.
Re: STM32 новичку в ARM что к чему
Ну почему же, я, к примеру, никогда не пользовался тем, что в tools - не было необходимости, отладчика (OllyDbg) было достаточно. Но, буду знать теперь. Спасибо.Andrew Martin писал(а):Странно, программируя на фасме не знать таких вещей
Известно, что они есть, но никогда не пользовался.Andrew Martin писал(а):Плагины на Ольку вам известны? Например, fasolly?
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).


