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

Как лучше оформить таск?

9 минут назад, AlexandrY сказал:

Среднее количество файлов в проекте с развитой RTOS не менее 1000. Так что заблудиться есть где.

Ну если пользуетесь какими-нибудь SDK из индостана, то да.
Неудивительно, что для "помигать светодиодом" нужно будет не меньше сотни исходников...

13 минут назад, AlexandrY сказал:

Не в самом крутом uC на Cortex-M4 не меньше 50 разных периферий.

И все используются одновременно? Ну-ну.

14 минут назад, AlexandrY сказал:

Многие зависимости даже неочевидны их приходится исследовать...

Читать даташит - ну да, кому оно нынче надо:biggrin: Это ж мозг напрягать надо!

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


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

16 минут назад, Arlleex сказал:

Читать даташит - ну да, кому оно нынче надо:biggrin: Это ж мозг напрягать надо!

Если Большие программисты будут читать даташиты, то они никогда не напишут свое Большое приложение. Поэтому есть мы - эмбеддеры, которые должны прочитать эти даташиты и написать ту прослойку (MCAL, BSP), которая даст возможность комфортно работать Большим программистам используя им понятные open(),  read(), write() и т.д.

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


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

3 часа назад, Arlleex сказал:

Исходя из чисто моего опыта скажу, что мне крайне редко приходилось работать с периферией так, что ее нужно переинициализировать глобально, требуя thread-safety кода при работе с ней.

Везёт вам!  :wink2:

3 часа назад, Arlleex сказал:

Вот, висит на SPI какой-нибудь дисплейчик. Ну неужели драйвер этого дисплея должен каким-то образом (на лету) изменить настройки этого SPI?

Бывает и так. У меня был проект (даже не один проект, а целая линейки устройств), где было требование - горячая замена ЖКИ без выкл. питания. Причём один ЖКИ мог быть заменён на совершенно другой, с другим контроллером; и матричный на сегментный или наоборот. А значит и драйвер должен был на ходу поменять алгоритм работы. Это кроме того, что он дожен был на ходу обнаружить такую замену.

3 часа назад, Arlleex сказал:

Именно поэтому считаю, что в 99.9% случаев всю периферию можно настроить в main(), оформив только вызовом единственной функции.

Видимо специфика ваших проектов такая простая, что можно один раз настроить и всё. У меня в большинстве проектов надо на горячую менять режимы работы интерфейсов. Без выключения питания или сброса.

3 часа назад, Arlleex сказал:

Ну неужели драйвер этого дисплея должен каким-то образом (на лету) изменить настройки этого SPI?

Если на шине SPI не одно устройство, а несколько, то для каждого может быть своя максимально-допустимая SCLK. Так что смена SCLK (или режима - по какому фронту работать / пассивный уровень) - обычное дело при переключении драйвера с одного слэйва на другой. Опять-же: в моих проектах почти во всех - на SPI по несколько устройств.

3 часа назад, Arlleex сказал:

Ну а I2C? В большинстве случаев все, что может поменяться - это скорость. А почти все устройства ныне поддерживают 400кГц.

А некоторые поддерживают ещё и 1Мб/с.  ;)

Если есть требование горячей замены устройств на I2C, то надо например обнаруживать факты кратковременного залипания уровней сигналов или подобных случаев, обрывов транзакций и т.п., происходящие при втыкании/выдёргивании. И корректно выходить из таких ситуаций.

2 часа назад, haker_fox сказал:

Renesas или Kinetic?:dance3:

И Infineon - тоже.  :wink2:

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


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

On 9/10/2020 at 12:25 PM, jcxz said:

Это кроме того, что он дожен был на ходу обнаружить такую замену.

А как было реализовано обнаружение?

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


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

Просто. Так как шина была - I2C, то: если получаем NACK - переключаемся на следующий по списку драйвер ЖКИ. И так по кольцу, пока не получим ACK.

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


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

On 9/10/2020 at 12:25 PM, jcxz said:

Если есть требование горячей замены устройств на I2C, то надо ...

И Infineon - тоже.  :wink2:

Горячая замена делается элементарно на чипах типа PCA9617. 
А вот при чем ту Infineon не понял. У них нет фичи переконфигурации шины на лету вместе с данными. 

Реально переинициализация всей внутренней периферии микроконтроллера нужна когда переходим в разные режимы потребления и меняем все тактовые частоты. 
Вот где настоящая развлекуха начинается.  

 

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


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

3 hours ago, AlexandrY said:

Реально переинициализация всей внутренней периферии микроконтроллера нужна когда переходим в разные режимы потребления и меняем все тактовые частоты. 
Вот где настоящая развлекуха начинается.

Ну, кому развлекуха, кому - рутина. И уж с матлабом-то эту систему построить и отладить - как два байта переслать.

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


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

4 часа назад, AlexandrY сказал:

А вот при чем ту Infineon не понял. У них нет фичи переконфигурации шины на лету вместе с данными.

Странно... а я не знал что "нету" и использую. :biggrin:

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


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

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

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

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

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

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

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

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

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

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