Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/119: Рейтинг темы: голосов - 119, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 11.02.2011
Сообщений: 187
1

STM8 IDE asm mini - личное оружие фаната ассемблера

09.10.2013, 14:13. Просмотров 21941. Ответов 13
Метки нет (Все метки)

Фанам ассемблерного дзена разных кристаллов мой респект!

1. тема не поиск ответов на вопросы, цель - поделиться с народом тем, что использую сам

2. как то встретил в облаках интернета китайскую поделку в виде кастрации фирменного ST Tools в плане
портабельности среды кодинга и упрощенного использования пакета, отладки.
Скачал, попробовал понравилось, добавил, подчистил, кое что поправил так сказать под себя.
Года 2 юзаю, недавно скачал 4.3.4 ST Tool решил посмотреть и "обновить" свой боекомплект.

3. особенности:
- все исполнимые файлы и dll-ки без изменений или бинарных модификаций взяты из
рабочих папок ST Tool от ~210 Мб осталось ~27МБ
- файлы настроек и инициализаций необходимые для связки и правильной навигации среды поправлены так, чтобы файлы были найдены внутри папки локально
- не требует установки, с флешки работает
- из отладчиков оставлен ST Link для дискавери, остальное выкинуто
- новый проект создается с использованием "первичных файлов" из подпапки /buylder !!!
в ней оставлены некоторые РАБОЧИЕ МОИ исходники и наглядно можно посмотреть, как
и что устроено в ASM проекте среды, как я его модульно составил, как типовой и структурно разложил

4. была мысль по началу статейку тиснуть на сайт, даже ее начал делать, но потом лень и апатия + мысль кому это надо? Победили.

5. собственно -> скачать STM8_IDE_mini

6. на холивар, закидывание гнилыми помидорами не реагирую, дельные вопросы по существу и замечания (ошибки) по возможности отвечу

7. материал предназначен на более менее опытного человека, который сам все поймет и разрулит мелочи...
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2013, 14:13
Ответы с готовыми решениями:

IDE для для работы с STM8 (на ASM и C) и STM32 (на C, ASM)
Планирую перезод на МК от STM. Сегодня стал обладателем платки STM32F4-Dyscovery и пакетика...

STM8. ST Visual Develop на ASM
пробую разобраться в первом шаге работы с STVD на asm, делаю следующее: создаю новый проект,...

IDE для ассемблера
Ребят, подскажите новичку, есть ли какая-нибудь IDE, что все компиляторы и все что нужно было в...

IDE для ассемблера
Ребят, кто какую среду использует для нормального человечного кодинга? Хотелось бы примерно...

13
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
09.10.2013, 14:47 2
Цитата Сообщение от vostomy
все исполнимые файлы и dll-ки без изменений или бинарных модификаций взяты из рабочих папок ST Tool от ~210 Мб осталось ~27МБ
А что было в отброшенных 180 Мегабайтах? В двух словах.

Цитата Сообщение от vostomy
наглядно можно посмотреть, как и что устроено в ASM проекте среды, как я его модульно составил, как типовой и структурно разложил
4. была мысль по началу статейку тиснуть на сайт, даже ее начал делать, но потом лень и апатия + мысль кому это надо? Победили.
Жаль, жаль. STM8 всё ещё актуален, и на форуме время от времени задают вопросы по нему. Статья бы не помешала.
0
1 / 1 / 0
Регистрация: 11.02.2011
Сообщений: 187
09.10.2013, 16:28  [ТС] 3
Цитата Сообщение от OtyxPM
А что было в отброшенных 180 Мегабайтах? В двух словах.
Это у фирмы надо спросить :)
Приблизительно то же, что валяется в папках WINDOWS, по сравнению с тем объемом файлов, которых ей хватает, чтоб загрузиться и обслужить простейшие запросы пользователя...
На вскидку: доки, примеры, поддержка ST7 и ее барахло типа либы, связки, DLL-ки только для неё, minGW...
Мне нужно было ИМЕННО то, что стреляет, а не валяется впрок, на случай ядерной войны и к ней чертеж )))
+ "прямая трёхлинейка, что стреляет убойно на 3км с одного патрона", работает c STM8 дискаверерЁй с любого ноута "в поле"..., компа любого чела, друга..., без интсаллов и запросов, что нехватает файла... или в реестре чего то там нет...
Типа так.
На идеальность не претендую.
Цитата Сообщение от OtyxPM
Жаль, жаль. STM8 всё ещё актуален, и на форуме время от времени задают вопросы по нему. Статья бы не помешала.
А я и не говорил ,что не актуален, даже наоборот - ПРОДЕМОНСТРИРОВАЛ, как все просто и легко со средой в принципе. А думать головой и как и куда, выбирает каждый сам.
По статье посчитал, что будет типа повтор, вводная по среде где то есть, она мне помогла вкурить.
НУ наберется тут голосов ЗА, тады посмотрим.
0
ниивный
09.10.2013, 17:30 4
Вот попытался файл скачать, а он в IE - просит обновить flash player, в Operе - обновить браузер. Это нормально?
1 / 1 / 0
Регистрация: 11.02.2011
Сообщений: 187
09.10.2013, 17:47  [ТС] 5
думаю нормально. Они там вроде намутили Google технологий... На хроме и файерфоксе не видно этого.
0
1 / 1 / 0
Регистрация: 11.02.2011
Сообщений: 187
30.10.2013, 19:36  [ТС] 6
В виду возникшей нужности и валяющейся жмени STM8S003 - "работа" по среде продолжается...
Более детальные изучения, доводки, макросы + своя софтина для безошибочного старта проекта (пустой, пустышка проект в котором все связывается, линкуется, компилится, отлаживается, нужно только наращивать "мясо")
Сегодня обнаружен глюк компилятора, который превратился в интеллектуальную фичу при написании хитрого макроса.
Фича в принципе опять тянет на статью, но как бы лень тратить время... интересует количество потенциальных читателей, но пока "зрею" :)
Кто возился с макросами и ассЁмблером попробую испугать сегодняшним макросом, заодно увидим кто "в теме"
Код
BytMask  MACRO m k p1 p2 p3 p4 p5 p6 p7 p8
#IFIDN m A  ;это биты для аккумулятора ?
#DEFINE  op ld
#ELSE
#IFIDN m X  ;может это будут биты WORD регистра X ?
#DEFINE  op ldw
#ELSE
#IFIDN m Y  ;может это будут биты WORD регистра Y ?
#DEFINE  op ldw
#ELSE
#DEFINE  op mov   ;выбора нет, это работа с памятью или портом (с адресом)
#ENDIF
#ENDIF
#ENDIF
;тип опкода определён, далее генерим значение эквивалентное битовым параметрам макроса
#IFIDN k ~
#IFB p2
op   m, #{255 XOR {1 SHL p1}}
#ELSE
#IFB p3
op   m, #{255 XOR {{1 SHL p1} OR {1 SHL p2}}}
#ELSE
#IFB p4
op   m, #{255 XOR {{1 SHL p1} OR {1 SHL p2} OR {1 SHL p3}}}
#ELSE
#IFB p5
op   m, #{255 XOR {{1 SHL p1} OR {1 SHL p2} OR {1 SHL p3} OR {1 SHL p4}}}
#ELSE
#IFB p6
op   m, #{255 XOR {{1 SHL p1} OR {1 SHL p2} OR {1 SHL p3} OR {1 SHL p4} OR {1 SHL p5}}}
#ELSE
#IFB p7
op   m, #{255 XOR {{1 SHL p1} OR {1 SHL p2} OR {1 SHL p3} OR {1 SHL p4} OR {1 SHL p5} OR {1 SHL p6}}}
#ELSE
#IFB p8
op   m, #{255 XOR {{1 SHL p1} OR {1 SHL p2} OR {1 SHL p3} OR {1 SHL p4} OR {1 SHL p5} OR {1 SHL p6} OR {1 SHL p7}}}
#ELSE
op   m, #{255 XOR {{1 SHL p1} OR {1 SHL p2} OR {1 SHL p3} OR {1 SHL p4} OR {1 SHL p5} OR {1 SHL p6} OR {1 SHL p7} OR {1 SHL p8}}}
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ELSE
#IFB p1
op   m, #{1 SHL k}
#ELSE
#IFB p2
op   m, #{{1 SHL k} OR {1 SHL p1}}
#ELSE
#IFB p3
op   m, #{{1 SHL k} OR {1 SHL p1} OR {1 SHL p2}}
#ELSE
#IFB p4
op   m, #{{1 SHL k} OR {1 SHL p1} OR {1 SHL p2} OR {1 SHL p3}}
#ELSE
#IFB p5
op   m, #{{1 SHL k} OR {1 SHL p1} OR {1 SHL p2} OR {1 SHL p3} OR {1 SHL p4}}
#ELSE
#IFB p6
op   m, #{{1 SHL k} OR {1 SHL p1} OR {1 SHL p2} OR {1 SHL p3} OR {1 SHL p4} OR {1 SHL p5}}
#ELSE
#IFB p7
op   m, #{{1 SHL k} OR {1 SHL p1} OR {1 SHL p2} OR {1 SHL p3} OR {1 SHL p4} OR {1 SHL p5} OR {1 SHL p6}}
#ELSE
op   m, #{{1 SHL k} OR {1 SHL p1} OR {1 SHL p2} OR {1 SHL p3} OR {1 SHL p4} OR {1 SHL p5} OR {1 SHL p6} OR {1 SHL p7}}
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
#ENDIF
MEND
Самое ХОРОШЕЕ в этом, что ЭТО таки работает!!!
Успехов!
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
30.10.2013, 19:48 7
А код из этого макроса компилируется такой же огромный? Что-то мне подсказывает, что да.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,116
30.10.2013, 20:14 8
Там кода несколько байте. Все остальное для прекомпилятора.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
30.10.2013, 20:26 9
Цитата Сообщение от OmykymForti
Там кода несколько байте. Все остальное для прекомпилятора.
Вы проверяли по листингу?
Одна только строчка:
op m, #{255 XOR {{1 SHL p1} OR {1 SHL p2} OR {1 SHL p3} OR {1 SHL p4} OR {1 SHL p5} OR {1 SHL p6}}}
- далеко не несколько байт. Или подразумевается, что p1..p6 всегда будут константами?
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,864
30.10.2013, 21:33 10
А зачем его урезать (рискуя, что от урезания что-то сломается), если всё равно остаётся изрядно большим?
(Как-то привычно, что всё нужное для разработке на асме сопоставимо по размеру с дискетой)
0
1 / 1 / 0
Регистрация: 11.02.2011
Сообщений: 187
31.10.2013, 01:58  [ТС] 11
Ай, ай, ай, а вот про БагоФичу никто не спросил то...!? А ведь это самое вкусное тутычки будет пожалуй.

Что макросы, макросы они или дебильны по возможностям или реально "интеллектуальны", чтобы облегчить жизнь кодера (пример FASM компилятор для x86 и те финты, что творят на нём продвинутые кодеры!).
Всё зависит от разработчика КОМПИЛЯТОРА, а в данном случае без мата говорить трудно!!!
Я имею в виду папуасов, которые для STTools сляпали файло ..\asm\asm.ixi - в жутких традициях доисторических компиляторов.

Ладно, опустим печаль ассемблерщика по данному поводу.

Теперь о приятных моментах, которые нарисовались в виду их индусского кодинга! )))))

1. макрос, как правило (большинство компиляторов), требует при его использовании в листинге программы передать ему столько параметров, сколькими он представлен (описан) в месте, где объявлен

2. для витиеватости, поумнения, интеллектуализации макросов используют разные "вкусности": с условиями, динамическими подстановками, разбором строковых параметров и т.д. о чем подумал и позаботился РАЗРАБОТЧИК среды, КОМПИЛЯТОРА

3. мои потуги с макросами в последние дни для сабжа, были направлены на поиски и пробы - ну хоть, как то попытаться упростить жизнь с макросами в дебильном компиляторе, т.к. возможностей сделать хотябы "хитрые макросы" почти нет!
Всё что можно себе самому предложить для попыток интеллектуализации процесса разбора параметров в макросе это STM фирменное блюдо в "лице": #IF, #IFB, #IFIDN, #IFDEF, #IFLAB
Результат только с ними мизерный.

4. попытки "заставить" компилятор передавать макросу при компиляции параметры не все из объявленных, а лишь часть - случайно увенчалисть успехом. На изучение поведения этой случайности ушло дня три..
4.1 после детальных проб принято решение, использовать как фичу, тем более, что НЕ ВЕРЮ, что папуасы исправят её в следующих версиях, даже если её описать и сообщить об этом им.

5. Т.е. после изложения сути, принципа и правил использования - это уже механизм работы фичи, рецепт её использования.

Итак, данный макрос уже в своём названии BytMask говорит сам за себя!
Он решает трудности кодера при возюкании с битами, которые мы имеем в виде их номеров, как позиции (установ или сброс бит) при получении собственно byte(word) маски в компилятор для:
- адреса в памяти
- порта
- аккумулятора
- word X или Y регистра
Под трудностями понимать и то, что количество битов может быть различным, как и их позиция!
И это процесс творческий, где и как - решает автор кодинга, т.е. юзер среды программирования.
Мало того с использованием сего макроса, повышается читабельность и упрощается понимание сути шаманства кодера :)
Он + багофича позволяет делать самое главное, т.е.
разбирать сколько параметров передано сечас ему из данной строки листинга 2, 4, 6... или 8 ???
Мало того, ошибки компилятор не выдает и компилит именно с тем количеством, что указал кодер в данной строке вызова макроса.

Наконец то красивая суть юзанья.

Примеры:
Код
;установ битов 0, 3, 5, 7 по адресу 5000

BytMask 5000,0,3,5,7,
или так
BytMask 5000, 0, 3, 5, 7,
или так тоже можно
BytMask 5000 0 3 5 7,

;сбросить биты 0, 3, 5, 7 на выходах шины D, неуказанные (все остальные) будут в "1"!

BytMask PD_ODR ~ 0 3 5 7,

;сбросить биты 1, 5, 6 в аккумуляторе, остальные в "1"

BytMask A ~ 1 5 6

;или даже для WORDовских регистров справедливо использовать его так

BytMask X,0,3,5,7,
BytMask Y 0 3 5 7,
СУТЬ ФИЧИ:
ОБЯЗАТЕЛЬНЫМ УСЛОВИЕМ ЯВЛЯЕТСЯ НАЛИЧИЕ ЗАПЯТОЙ В КОНЦЕ СТРОКИ, ПОСЛЕ КОТОРОГО СЛЕДУЕТ "ПРЕВОД СТРОКИ" !!!
Важно именно так.
Любые символы после запятой, даже пробел - ошибка компиляции!
А вот, как СИЕ скомпилится в результате умностей макроса, Вы увидите самостоятельно при "проходе" дебагом по коду...
Спасибо за внимание!
Читабельного, смыслового листинга и Приятной компиляции!
73!
VoStaNi (c) 2013
0
zitimyy
14.02.2015, 14:48 12
не дает скачивать -Your browser seems a bit outdated -
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,864
14.02.2015, 16:04 13
Текст макроса вызывает желание положить в тот же дистриб m4 или ещё какой внешний препроцессор.
Был бы хоть elif - читать бы можно было, он более-менее линейный...
0
0 / 0 / 0
Регистрация: 17.11.2020
Сообщений: 1
18.11.2020, 00:15 14
Спасибо автору темы за выложенную версию STM8 IDE. Особенно понравился шаблон проекта с исходниками, который лично мне очень помог в освоении STM8. Кстати, как в полной версии STVD, так и у автора темы редактор выделяет не все ключевые слова ассемблера. За это отвечает файл asm_lang.xml из папки STVD. Во вложении - дополненный файл.
0
Вложения
Тип файла: zip asm_lang.zip (1.6 Кб, 0 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2020, 00:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

IDE для ассемблера
Привет всем! Хочу рассказать о простой среде разработки для языка ассемблера NASM, написанной...

Оцените IDE для Ассемблера
Недавно нашёл новый IDE для ассемблера: http://sites.google.com/site/gssvisasm Что вы о нём...

Ищу полноценную IDE для ассемблера в Linux
Доброго времени суток. Нуужна полноценная среда разработки приложений на ассемблере исключительно,...

Написать программы на языке ассемблера контроллеров PIC в mplab ide v8.92
Необходимо написать 3 программы на языке ассемблера в mplab ide v8.92. Кто может помочь?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.