Перейти к содержанию
    

Конфликт RAM и SPI на STM32F103

Тут есть еще и проблема с дебильной периферией STM32 - некоторые биты в регистрах периферии сбрасываются при чтении этих или других регистров и отключить это нельзя.

 

Кроме того есть и есть и естественные проблемы с дебагом - в точке останова он считывает все, что открыто в его окнах - и если это фифо приема данных - соответствующая информация пропадет.

 

Использовать дебаг при работе с периферией нужно крайне аккуратно, не допуская подобных ситуаций. Ежели требуется периодический контроль буфера - это можно сделать по прерываниям с высшим приоритетом из другого куска программы. Но только в памяти - трогать ключевые регистры периферии (типа статусных и данных) не следует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы не спешил ругать Кейл. Всё-таки он полагается на дрова для отладочного адаптера, которые написаны другими товарищами...

Я неоднократно наблюдал глюки отладчика Keil с фирменным родным ULINK в оплаченном пакете. (Проц lpc1765). В том числе и при выводе данных в окне периферии.

Особенно криво он себя ведёт, ну например, если 2 одинаковых задачи запускаются (RTX). Откуда он при этом выводит данные в окно отладки вообще не понятно.

В аналогичной ситуации IAR ведёт себя абсолютно корректно. Даже на сторонней ОСи. По моему это показатель.

 

 

 

проблема с дебильной периферией STM32

Объективно, я бы так сказал - периферия как периферия.

Есть удачные решения - есть не очень. Но в целом мне она понравилась.

С чем можно было бы согласится, что нет общего подхода к разным периферийным модулям. Но это просматривается почти во всех камнях. Единый подход более менее виден у LPC. Но и там есть к чему придраться.

Наличие флагов, которые сбрасываются при чтении - это много где. Ситуация с MSP значительно хуже. Там часть прерываний сбрасывается путём чтения регистра источника, часть путём принудительного сброса флага, часть чтением спец регистра... Короче вообще бардак. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ситуация с MSP значительно хуже. Там часть прерываний сбрасывается путём чтения регистра источника, часть путём принудительного сброса флага, часть чтением спец регистра... Короче вообще бардак. :biggrin:

У него периферия реально заточена под общее микропотребление. Все остальное вторично.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С чем можно было бы согласится, что нет общего подхода к разным периферийным модулям. Но это просматривается почти во всех камнях.

Во многих МК, как я понимаю, часть периферийных блоков - свои, собственной разработки, поддерживаемые неизменными на протяжении разных линеек, для совместимости; другие блоки - купленные у кого-то (может даже у того-го же ARM), соответствующие некоему стандарту. Отсюда и разнобой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во многих МК, как я понимаю, часть периферийных блоков - свои, собственной разработки, поддерживаемые неизменными на протяжении разных линеек, для совместимости; другие блоки - купленные у кого-то (может даже у того-го же ARM), соответствующие некоему стандарту. Отсюда и разнобой.

Тут ещё накладываются и своя невнимательность, и то, что они свои периферийные модули изменяют-дорабатывают от камня к камню.

Так, к примеру RTC у F1 и F4 - небо и земля. А кое где видел такие отличия незаметные.. Переносишь библиотеку - не работает. Читаешь внимательно - диву даёшься.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

×
×
  • Создать...