Jump to content

    
jenya7

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

Recommended Posts

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

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

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
16 минут назад, Arlleex сказал:

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

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

Share this post


Link to post
Share on other sites
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:

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
On 9/10/2020 at 12:25 PM, jcxz said:

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

И Infineon - тоже.  :wink2:

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

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

 

Share this post


Link to post
Share on other sites
3 hours ago, AlexandrY said:

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

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

Share this post


Link to post
Share on other sites
4 часа назад, AlexandrY сказал:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.