КРАМ писал(а):
Но для СТМ32, учитывая особенности исполнения команд, писать на чистом АСМе, на мой взгляд, действительно идиотизм... АРМ архитектура по сути не совсем архитектура реального времени из-за неопределенного времени исполнения команд и входа в обработчик прерываний. Из-за чего требуется более высокая частота работы, чтобы минимизировать неопределенности исполнения кода и большой набор разнообразной периферии для привязки кода к реальному времени с высокой точностью.
Это может быть идиотизм с профессиональной точки зрения, а я аматор в этом деле (потому как заработать на хлеб разработкой программ под МК у нас вообще нереально - никому не нужно), поэтому использую то, что мне удобнее.
Думаю что при нормальном трансляторе асма с мощными макросами скорость разработки будет не на много ниже, нежели на си с "регистровым" подходом.
Не знаю как у кого, а у меня основное время тратится на изучение огромных мануалов от ST и на выяснение особенностей работы периферии, а не на написание кода.
У кортексов М0 время исполнения инструкций чётко оговорено в соответствующем документе (arm v6m technical reference manual). Время входа/выхода из обработчика тоже оговорено (с учётом приоритетов и вложенности, и возможности прерывания ldm/stm).
Латентность флеш памяти тоже оговорена, но на малых тактовых частотах можно считать нулевой. Других источников неопределённости я не знаю
