Easyelectronics.ru

Электроника для всех
Текущее время: 24 июн 2018, 04:29

Часовой пояс: UTC + 5 часов


Правила форума


Входить исключительно со своей туалетной бумагой. Можно невозбранно получить по голове за быдляк и личные наезды.


    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 352 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15
Автор Сообщение
 Заголовок сообщения: Re: STM32 vs all other
СообщениеДобавлено: 12 июл 2017, 10:55 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2447
Откуда: Санкт-Петербург
Насколько я помню, gcc кое-как умеет считать требуемый объём стека при условии отсутствия рекурсии и прерываний ;-). Ключ -fstack-usage.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 vs all other
СообщениеДобавлено: 24 июл 2017, 22:36 
Старожил

Зарегистрирован: 02 июл 2010, 23:41
Сообщения: 393
bw429 писал(а):
А почему передача через стек будет лучше и быстрее?
Мне кажется, что в идеале проще, надежнее и быстрее иметь все переменные глобальными (с ограничением области видимости). Отказаться от манипуляций с указателем стека и возможных проблем с выходом за пределы стека.

Да, посмотрел, передача через стек не быстрее. В АВР стек находится тоже в памяти SRAM, по времени обращение к SRAM то же самое, так что использовать стек не имеет смысла.

Насчёт глобальных переменных не понятен смысл.
В АВР лучше всего работать в скоростной памяти РОН, а там всего 32 регистра, не поместить туда все глобальные переменные. Поэтому я помещаю в РОН локальные переменные вызываемой функции, а передачу в функцию делаю через глобальные переменные в SRAM.
Таким образом, вроде как, писать программу просто, и реализуется основная работа в скоростной РОН.
Тут, правда, есть вопрос, как лучше передавать переменные в функцию через SRAM.

bw429 писал(а):
PS: еще интересно, можно ли заменить стек возвратов эдаким заранее построенным деревом возвратов? Т.е. полностью отказаться от устаревшей технологии стеков :)

А чем стек не нравится?
akatenev писал(а):
Трассировщик - это не для ассемблера, он вообще не имеет отношения к языкам программирования. Трассировщик позволяет отслеживать выполнение программы в реальном времени, иногда это очень важно, потому что многие интересующие события происходят именно в реальном времени. Трассировщики дорогие, поддерживаются в основном только коммерческими тулчейнами. В случае с ARM поддержка трассировки встроена в ядро кортексов, называется ETM.

Чем такой трассировщик лучше моего дебаггера?
Дебаггер тоже работает в реальном времени, но, в принципе, может работать с любым МК и стоит копейки (состав: МК Atmega8, несколько микросхем средней интеграции и обвязка).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 352 ]  На страницу Пред.  1 ... 11, 12, 13, 14, 15

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB