[uquote="asdf12",url="/forum/viewtopic.php?p=3259125#p3259125"]МК какого производителя с архитектурой ARM проще в настройках периферии[/uquote]
сейчас микроконтроллеры практически всех производителей (не только с ARM ядром) обросли "тяжелой" периферией. Если с ARM ядром - русскоязычной информации больше имхо по STM32, видно тут даже по форуму (см. раздел ARM). Настройка портов и таймеров не сложна - надо только еще дополнительно тактирование включить. Для серии STM32F0 есть снипетсы примеры работы с периферией, но на Си, разобраться не сложно - названия регистров и битов такие же как и в документации.
На всякий еще - визуальный ARM эмулятор, периферии нет, но для ассемблерщика наглядно что в ядре происходит: https://salmanarif.bitbucket.io/visual/
[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]
Жаль....
Ядро определяет семейство. В данном случае речь идет об АРМ.
А периферия - выбирается согласно текущей задаче из списка предлагаемых вариантов на сайте у производителя.
Посему на сегодня можно в любой кристалл напихать всего, чего душе угодно, но управляться с этой периферией будет ЯДРО СЕМЕЙСТВА по правилам, принятым для данного семейства.
У каждого из производителей свои особенности/наборы периферии, обусловленные применяемой технологией и специализацией брэнда, однако основа всегда на ЕДИНОМ ЯДРЕ.
Так что не надо все с ног на голову ставить.
[uquote="oleg110592",url="/forum/viewtopic.php?p=3259179#p3259179"]...
На всякий еще - визуальный ARM эмулятор, периферии нет, но для ассемблерщика наглядно что в ядре происходит: https://salmanarif.bitbucket.io/visual/[/uquote]
BOB, ты точно понимаешь что пишешь?
И еще раз, ИЗУЧАЮТ ПЕРИФЕРИЮ и РАБОТУ с ней, большинство пИсателей даже и не знают ничего о ядре и попадают в ступор когда начинают искать
хоть что-то о ядре и NVIC в RM.
БЯДА...
Тебе то он зачем нужен? Любой арм прекрасно дебажится железным отладчиком стоящим копейки.
Или ты решил "изучать" арм на коленке , в эмуляторе считая такты?
Вангую - первое что ты сляпаешь на арме - выхлоп меандра ногодрыгом. Вот бы взглянуть на твой лицо в это время.
Последний раз редактировалось dosikus Чт дек 14, 2017 11:08:32, всего редактировалось 1 раз.
Одно дело писать/использовать "вставки на ассемблере" при работе под СИ и
совсем другое ПОЛНОСТЬЮ писать под ассемблером.
Для Си знание особенностей ядра не суть важно - компилятор выполняет основную работу по компоновке и определению необходимых ресурсов. Зато вдоволь возможности уделить внимание "всему что вокруг ядра".
Под ассемблером надо начинать с самой примитивной планировки - знание работы ядра - обязательно.
А далее уже добавляется все то, что и обычному Сишнику приходится делать.
Тогда значится Вы, dosikus до понимания ассемблера в максимальном варианте не дошли - ограничились "простыми линейными прожками" с последующим дизертирством на СИ, как и большинство простолюбителей (так проще).
Да и я, честно говоря ни в особенности настроек линкера ни в дебри "истинно многофайловиков" с библиотеками ДО СИХ ПОР еще не вникал. Ибо та тема вообще "давно забыта", приходится больше самому "раскопками" заниматься.
[uquote="BOB51",url="/forum/viewtopic.php?p=3259579#p3259579"]Тогда значится Вы, dosikus до понимания ассемблера в максимальном варианте не дошли - ограничились "простыми линейными прожками" с последующим дизертирством на СИ, как и большинство простолюбителей[/uquote]
Вот жеж , прости господи, - Для особо одаренных - и линкер юзали и свои/чужие библиотеки и не в "линейных прожках" и на пЫк и на авр .
Все что для тебя нынче "открытия и откровения" для меня давным-давно пройденный этап.
На асме с пЫк/авр, как впрочем и на самих пЫк/авр ЛОВИТЬ НЕЧЕГО.
И еще раз вдумчиво читай -
АсмЪ знаю и юзаю там где сие эффективно - к примеру Z80 , 6502 и частично 51е.
[uquote="asdf12",url="/forum/viewtopic.php?p=3256918#p3256918"]добрый день
вот и встал вопрос, если писать свои функции, с некоторой долей универсальности, встает вопрос о том как организовать лучше всего обмен между ними, по каким то одним правилам, учитывающим саму специфику архитектуры мк.
то есть, я так думаю что необходимо прежде чем что либо писать принять некие правила, каким образом в функцию передавать значения переменных, к примеру. и вообще нужно ли придерживаться этих правил или нет, нужны ли они? вот как все это организовано в компиляторах, того же Си?[/uquote]
На мой взгляд, правила нужны, позволяют сильно упростить разработку программы.
Для АВР считаю оптимальным следующее правило вызова функции.
Все переменные в функции объявлять, по возможности, в регистрах РОН – функция будет короче и быстрее. В случае использования АБ будет доступно, большей частью, 30 регистров – вполне достаточно.
В начале функции поставить макрокоманду записи в стек используемых в функции регистров, в конце программы – команду возврата из стека в эти регистры.
Таким образом, можно, не опасаясь последствий, вызывать любую функцию, после выхода из функции будут свободны все регистры. Несколько увеличивает объём кода, но упрощает программирование.
Конечно, никаких «боковых» выходов из подпрограмм и т.д.
Писать надо на макроассемблере. Получается гибкость как у ассемблера, а упрощает написание раз в 5. Я использую АБ, легкий в изучении, бесплатный, русский, хотя устарел.
Необходим дебаггер – отыскание ошибок, в большинстве случаев, становится банальным.
При соблюдении таких несложных правил можно без проблем писать программы в десятки килобайт.