rudy_b 1 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Тут есть еще и проблема с дебильной периферией STM32 - некоторые биты в регистрах периферии сбрасываются при чтении этих или других регистров и отключить это нельзя. Кроме того есть и есть и естественные проблемы с дебагом - в точке останова он считывает все, что открыто в его окнах - и если это фифо приема данных - соответствующая информация пропадет. Использовать дебаг при работе с периферией нужно крайне аккуратно, не допуская подобных ситуаций. Ежели требуется периодический контроль буфера - это можно сделать по прерываниям с высшим приоритетом из другого куска программы. Но только в памяти - трогать ключевые регистры периферии (типа статусных и данных) не следует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 22 января, 2017 Опубликовано 22 января, 2017 · Жалоба Я бы не спешил ругать Кейл. Всё-таки он полагается на дрова для отладочного адаптера, которые написаны другими товарищами... Я неоднократно наблюдал глюки отладчика Keil с фирменным родным ULINK в оплаченном пакете. (Проц lpc1765). В том числе и при выводе данных в окне периферии. Особенно криво он себя ведёт, ну например, если 2 одинаковых задачи запускаются (RTX). Откуда он при этом выводит данные в окно отладки вообще не понятно. В аналогичной ситуации IAR ведёт себя абсолютно корректно. Даже на сторонней ОСи. По моему это показатель. проблема с дебильной периферией STM32 Объективно, я бы так сказал - периферия как периферия. Есть удачные решения - есть не очень. Но в целом мне она понравилась. С чем можно было бы согласится, что нет общего подхода к разным периферийным модулям. Но это просматривается почти во всех камнях. Единый подход более менее виден у LPC. Но и там есть к чему придраться. Наличие флагов, которые сбрасываются при чтении - это много где. Ситуация с MSP значительно хуже. Там часть прерываний сбрасывается путём чтения регистра источника, часть путём принудительного сброса флага, часть чтением спец регистра... Короче вообще бардак. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 22 января, 2017 Опубликовано 22 января, 2017 · Жалоба Ситуация с MSP значительно хуже. Там часть прерываний сбрасывается путём чтения регистра источника, часть путём принудительного сброса флага, часть чтением спец регистра... Короче вообще бардак. У него периферия реально заточена под общее микропотребление. Все остальное вторично. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 187 23 января, 2017 Опубликовано 23 января, 2017 · Жалоба С чем можно было бы согласится, что нет общего подхода к разным периферийным модулям. Но это просматривается почти во всех камнях. Во многих МК, как я понимаю, часть периферийных блоков - свои, собственной разработки, поддерживаемые неизменными на протяжении разных линеек, для совместимости; другие блоки - купленные у кого-то (может даже у того-го же ARM), соответствующие некоему стандарту. Отсюда и разнобой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 23 января, 2017 Опубликовано 23 января, 2017 · Жалоба Во многих МК, как я понимаю, часть периферийных блоков - свои, собственной разработки, поддерживаемые неизменными на протяжении разных линеек, для совместимости; другие блоки - купленные у кого-то (может даже у того-го же ARM), соответствующие некоему стандарту. Отсюда и разнобой. Тут ещё накладываются и своя невнимательность, и то, что они свои периферийные модули изменяют-дорабатывают от камня к камню. Так, к примеру RTC у F1 и F4 - небо и земля. А кое где видел такие отличия незаметные.. Переносишь библиотеку - не работает. Читаешь внимательно - диву даёшься. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться