организация программ на AVR

Обсуждаем контроллеры компании Atmel.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

[uquote="asdf12",url="/forum/viewtopic.php?p=3259125#p3259125"]МК какого производителя с архитектурой ARM проще в настройках периферии[/uquote]
сейчас микроконтроллеры практически всех производителей (не только с ARM ядром) обросли "тяжелой" периферией. Если с ARM ядром - русскоязычной информации больше имхо по STM32, видно тут даже по форуму (см. раздел ARM). Настройка портов и таймеров не сложна - надо только еще дополнительно тактирование включить. Для серии STM32F0 есть снипетсы примеры работы с периферией, но на Си, разобраться не сложно - названия регистров и битов такие же как и в документации.
На всякий еще - визуальный ARM эмулятор, периферии нет, но для ассемблерщика наглядно что в ядре происходит:
https://salmanarif.bitbucket.io/visual/
Реклама
Родился
Сообщения: 10
Зарегистрирован: Пт дек 08, 2017 16:14:01

Сообщение asdf12 »

oleg110592, спасибо. интересная "вещь".
надо будет разобраться с ней
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15602
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

[uquote="dosikus",url="/forum/viewtopic.php?p=3259147#p3259147"][uquote="BOB51",url="/forum/viewtopic.php?p=3259035#p3259035"]Ну уж ежли ИМЕННО АРМ (а не частности в виде STM32)
тогда изучение надо начинать отсюда
https://www.arm.com[/uquote]
Вы в своем уме неуважаемый?
Что ты там "изучать" собрался?
Не, если начать долгий и нудный путь писанины под асмЪ, то систему команд проштудировать стоит, но основное-это периферия а не ядро.
Поэтому и изучают периферию и работу с ней, а не то что тебе взбрендилось.[/uquote]

Жаль....
Ядро определяет семейство. В данном случае речь идет об АРМ.
А периферия - выбирается согласно текущей задаче из списка предлагаемых вариантов на сайте у производителя.
Посему на сегодня можно в любой кристалл напихать всего, чего душе угодно, но управляться с этой периферией будет ЯДРО СЕМЕЙСТВА по правилам, принятым для данного семейства.
У каждого из производителей свои особенности/наборы периферии, обусловленные применяемой технологией и специализацией брэнда, однако основа всегда на ЕДИНОМ ЯДРЕ.
Так что не надо все с ног на голову ставить.
:wink:

[uquote="oleg110592",url="/forum/viewtopic.php?p=3259179#p3259179"]...
На всякий еще - визуальный ARM эмулятор, периферии нет, но для ассемблерщика наглядно что в ядре происходит:
https://salmanarif.bitbucket.io/visual/[/uquote]

БЯДА...
там только для WIN64...
WIN32 нету...
:cry:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

BOB, ты точно понимаешь что пишешь?
И еще раз, ИЗУЧАЮТ ПЕРИФЕРИЮ и РАБОТУ с ней, большинство пИсателей даже и не знают ничего о ядре и попадают в ступор когда начинают искать
хоть что-то о ядре и NVIC в RM.
БЯДА...
Тебе то он зачем нужен? Любой арм прекрасно дебажится железным отладчиком стоящим копейки.
Или ты решил "изучать" арм на коленке , в эмуляторе считая такты? :)))
Вангую - первое что ты сляпаешь на арме - выхлоп меандра ногодрыгом. Вот бы взглянуть на твой лицо в это время. :))) :))) :)))
Последний раз редактировалось dosikus Чт дек 14, 2017 11:08:32, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 15602
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Явно в dosikusе чуствуется "заядло-замшелый СИшник".
8)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

С хрена ли? АсмЪ знаю и юзаю там где сие эффективно - к примеру Z80 , 6502 и частично 51е.
На армах только при реверсинге .
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15602
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Одно дело писать/использовать "вставки на ассемблере" при работе под СИ и
совсем другое ПОЛНОСТЬЮ писать под ассемблером.
Для Си знание особенностей ядра не суть важно - компилятор выполняет основную работу по компоновке и определению необходимых ресурсов. Зато вдоволь возможности уделить внимание "всему что вокруг ядра".
Под ассемблером надо начинать с самой примитивной планировки - знание работы ядра - обязательно.
А далее уже добавляется все то, что и обычному Сишнику приходится делать.
8)
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Ты вновь слышишь только себя? Приходится повторять пол нескольку раз.
АсмЪ знаю и юзаю там где сие эффективно
, без Си совсем.
На армах только при реверсинге .
здесь асм эффективен только в качестве вставок , но не в сишный код а в уже скомпиленный фирмварь.

Ну или глаза разуй или научись слышать оппонента...
Друг Кота
Аватара пользователя
Сообщения: 15602
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Тогда значится Вы, dosikus до понимания ассемблера в максимальном варианте не дошли - ограничились "простыми линейными прожками" с последующим дизертирством на СИ, как и большинство простолюбителей (так проще).
:tea:
Да и я, честно говоря ни в особенности настроек линкера ни в дебри "истинно многофайловиков" с библиотеками ДО СИХ ПОР еще не вникал. Ибо та тема вообще "давно забыта", приходится больше самому "раскопками" заниматься.

8)
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

[uquote="BOB51",url="/forum/viewtopic.php?p=3259579#p3259579"]Тогда значится Вы, dosikus до понимания ассемблера в максимальном варианте не дошли - ограничились "простыми линейными прожками" с последующим дизертирством на СИ, как и большинство простолюбителей[/uquote]

Вот жеж , прости господи, - Для особо одаренных - и линкер юзали и свои/чужие библиотеки и не в "линейных прожках" и на пЫк и на авр .
Все что для тебя нынче "открытия и откровения" для меня давным-давно пройденный этап.
На асме с пЫк/авр, как впрочем и на самих пЫк/авр ЛОВИТЬ НЕЧЕГО.

И еще раз вдумчиво читай -
АсмЪ знаю и юзаю там где сие эффективно - к примеру Z80 , 6502 и частично 51е.
Друг Кота
Аватара пользователя
Сообщения: 15602
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Тогда флуд - черта характера dosikusа.
:wink:
ИБО... скушно ему без трындежа "обо всем и ни о чем"
:sleep:
Родился
Сообщения: 10
Зарегистрирован: Пт дек 08, 2017 16:14:01

Сообщение asdf12 »

[uquote="BOB51",url="/forum/viewtopic.php?p=3259498#p3259498"]БЯДА...
там только для WIN64...
WIN32 нету...
:cry:[/uquote]

там есть версия программы для линукса 32 разрядного. его можно рядом с виндой установить на один диск. у меня так и сделано. это не трудно
Прорезались зубы
Сообщения: 205
Зарегистрирован: Сб июл 30, 2011 21:00:24

Сообщение AQ29 »

[uquote="asdf12",url="/forum/viewtopic.php?p=3256918#p3256918"]добрый день
вот и встал вопрос, если писать свои функции, с некоторой долей универсальности, встает вопрос о том как организовать лучше всего обмен между ними, по каким то одним правилам, учитывающим саму специфику архитектуры мк.
то есть, я так думаю что необходимо прежде чем что либо писать принять некие правила, каким образом в функцию передавать значения переменных, к примеру. и вообще нужно ли придерживаться этих правил или нет, нужны ли они? вот как все это организовано в компиляторах, того же Си?[/uquote]

На мой взгляд, правила нужны, позволяют сильно упростить разработку программы.
Для АВР считаю оптимальным следующее правило вызова функции.
Все переменные в функции объявлять, по возможности, в регистрах РОН – функция будет короче и быстрее. В случае использования АБ будет доступно, большей частью, 30 регистров – вполне достаточно.
В начале функции поставить макрокоманду записи в стек используемых в функции регистров, в конце программы – команду возврата из стека в эти регистры.
Таким образом, можно, не опасаясь последствий, вызывать любую функцию, после выхода из функции будут свободны все регистры. Несколько увеличивает объём кода, но упрощает программирование.
Конечно, никаких «боковых» выходов из подпрограмм и т.д.
Писать надо на макроассемблере. Получается гибкость как у ассемблера, а упрощает написание раз в 5. Я использую АБ, легкий в изучении, бесплатный, русский, хотя устарел.
Необходим дебаггер – отыскание ошибок, в большинстве случаев, становится банальным.
При соблюдении таких несложных правил можно без проблем писать программы в десятки килобайт.
Ответить

Вернуться в «AVR»