esaulenka 5 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба 2 minutes ago, ViKo said: А целиком можете выложить? Вы не пробовали подобные вопросу гуглу задавать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба 19 минут назад, Орлёнок сказал: Даже если там нет валидных опкодов? Там 0xFF. Конечно. Деваться некуда, перебирает, пока не переполнится. Только что, esaulenka сказал: Вы не пробовали подобные вопросу гуглу задавать? "Смените пластинку", у вас заело. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба 36 минут назад, ViKo сказал: Хорошая дока. А целиком можете выложить? https://www.iar.com/support/user-guides/user-guide-iar-embedded-workbench-for-arm/?_t_id=1B2M2Y8AsgTpgAmY7PhCfg%3d%3d&_t_q=&_t_tags=andquerymatch%2clanguage%3aen%2csiteid%3a0c16470a-f6d4-4850-8178-d6bc97e6f4ea%2ctab%3auserGuides&_t_hit.id=IAR_Find_Models_Indexing_SearchablePage/fbeebd14-821d-430c-88e2-63d24e297b6c-en&_t_hit.pos=5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба Спасибо! Есть что почитать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба 1 час назад, ViKo сказал: Помню, на ассемблере, как закончится программа, так процессор дальше топает по пустой памяти до конца. Потом с нуля начинает новую жизнь. В нормально построенной программе на Cortex-M процессор никуда не "топает до конца". Потому, что есть MPU и грамотные люди разрешают выполнение кода только для тех регионов памяти, где расположен код. Так что "топать" будет только до конца текущего региона кода, а потом попадёт в обработчик fault-ов. Если конечно MPU имеется на борту.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба 1 час назад, ViKo сказал: Там 0xFF. Конечно. Деваться некуда, перебирает 32-битное линейное адресное пространство занимает 4 Гига. После флеша там есть дыра, попытка чтения из которой вызывает исключение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба Так, понятно, на ассемблере писалось не для Cortex. А для 8051, PIC16. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба По сути main - это вырожденная фишка программ под DOS или подобных антикварных оболочек. Там всегда нужно было выходить из main, освобождая по пути занятую память, иначе не вернемся в оболочку. Для МК этот main просто банальное наследие, атавизм. Освобождать ресурсы при выходе из main вряд ли кому-то когда-то понадобится. Если же есть подобные потребности, то они решаются на уровне кода приложения. Куда логичнее вместо main сразу запускать, скажем, ось. Или сделать как в "старой доброй" ардуине: вызывается setup(), а следом в цикле loop(), выйти из которого не получится, поскольку бесконечный цикл находится снаружи этой loop(). Для конечного кодера этого более чем достаточно. К слову, у меня main вот так выглядит: int main() { static InternalControlPanel internalControlPanel; internalControlPanel.initialize(); internalControlPanel.run(); // never reach here! } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 2 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба 4 hours ago, ViKo said: Коллега задал вопрос, на который я однозначно ответить не смог. Если в Main нет бесконечного цикла, то при выходе куда попадет? Еще и код возврата передаёт же. Его и проверить можно, или как? RTOS или не RTOS - вот в чем вопрос. То ли в mbed то ли в zephyr так вообще предопределили IAR-овский __main и в С-ишный main даже не заходят. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба Вопрос задал человек, с RTOS не знакомый. Пишет на ассемблере, а как на C - не знаю. PIC18. Но мне уже самому стало интересно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба 17 minutes ago, ViKo said: человек, с RTOS не знакомый. Пишет на ассемблере, а как на C - не знаю. PIC18 Уникальный случай Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба 29 минут назад, Forger сказал: Уникальный случай Рутина. Потребовалось поправить давно написанное, хвать, ан работника и нету. Ушел на лучшее место, и правильно сделал. Приходится править тому, кто есть (нач. отд. собственно, он же и гл. констр. по теме, 70+ лет). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 2 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба 56 minutes ago, ViKo said: Вопрос задал человек, с RTOS не знакомый. Пишет на ассемблере, а как на C - не знаю. PIC18. Но мне уже самому стало интересно. Пробегал мимо меня тут какой-то проект минского старого разработчика, уволившегося, на двух PIC-ах, на ассемблере, управлял неким электромагнитом. Не он случайно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба Не он. И не я. Уволился как раз молодой, начинающий. На C писал, но насколько качественно, я не оценивал. А теперь нужно править, как обычно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 15 ноября, 2019 Опубликовано 15 ноября, 2019 · Жалоба А под отладчиком посмотреть? Без понятия о системе команд пиков, но по идее возвращаемое значение должно попасть в какой-то регистр, а дальше что-то типа HALT. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться