реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Конфликт RAM и SPI
rudy_b
сообщение Jan 20 2017, 16:34
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



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

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

Использовать дебаг при работе с периферией нужно крайне аккуратно, не допуская подобных ситуаций. Ежели требуется периодический контроль буфера - это можно сделать по прерываниям с высшим приоритетом из другого куска программы. Но только в памяти - трогать ключевые регистры периферии (типа статусных и данных) не следует.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 22 2017, 08:58
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(scifi @ Jan 20 2017, 13:33) *
Я бы не спешил ругать Кейл. Всё-таки он полагается на дрова для отладочного адаптера, которые написаны другими товарищами...

Я неоднократно наблюдал глюки отладчика Keil с фирменным родным ULINK в оплаченном пакете. (Проц lpc1765). В том числе и при выводе данных в окне периферии.
Особенно криво он себя ведёт, ну например, если 2 одинаковых задачи запускаются (RTX). Откуда он при этом выводит данные в окно отладки вообще не понятно.
В аналогичной ситуации IAR ведёт себя абсолютно корректно. Даже на сторонней ОСи. По моему это показатель.



Цитата(rudy_b @ Jan 20 2017, 19:34) *
проблема с дебильной периферией STM32

Объективно, я бы так сказал - периферия как периферия.
Есть удачные решения - есть не очень. Но в целом мне она понравилась.
С чем можно было бы согласится, что нет общего подхода к разным периферийным модулям. Но это просматривается почти во всех камнях. Единый подход более менее виден у LPC. Но и там есть к чему придраться.
Наличие флагов, которые сбрасываются при чтении - это много где. Ситуация с MSP значительно хуже. Там часть прерываний сбрасывается путём чтения регистра источника, часть путём принудительного сброса флага, часть чтением спец регистра... Короче вообще бардак. biggrin.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 22 2017, 19:10
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(SasaVitebsk @ Jan 22 2017, 10:58) *
Ситуация с MSP значительно хуже. Там часть прерываний сбрасывается путём чтения регистра источника, часть путём принудительного сброса флага, часть чтением спец регистра... Короче вообще бардак. biggrin.gif

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 23 2017, 06:45
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(SasaVitebsk @ Jan 22 2017, 11:58) *
С чем можно было бы согласится, что нет общего подхода к разным периферийным модулям. Но это просматривается почти во всех камнях.

Во многих МК, как я понимаю, часть периферийных блоков - свои, собственной разработки, поддерживаемые неизменными на протяжении разных линеек, для совместимости; другие блоки - купленные у кого-то (может даже у того-го же ARM), соответствующие некоему стандарту. Отсюда и разнобой.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 23 2017, 16:12
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(jcxz @ Jan 23 2017, 09:45) *
Во многих МК, как я понимаю, часть периферийных блоков - свои, собственной разработки, поддерживаемые неизменными на протяжении разных линеек, для совместимости; другие блоки - купленные у кого-то (может даже у того-го же ARM), соответствующие некоему стандарту. Отсюда и разнобой.

Тут ещё накладываются и своя невнимательность, и то, что они свои периферийные модули изменяют-дорабатывают от камня к камню.
Так, к примеру RTC у F1 и F4 - небо и земля. А кое где видел такие отличия незаметные.. Переносишь библиотеку - не работает. Читаешь внимательно - диву даёшься.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th August 2025 - 08:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.0144 секунд с 7
ELECTRONIX ©2004-2016