LINUX.ORG.RU

Rust stm32 i2c slave

 , ,


0

3

Не могу найти, есть ли всё таки сейчас в рамках rust-embedded (или rtfm) i2c slave.

Я хочу сделать i2c proxy, т.е. чтобы CPU ходил физически к одному устройству, думая, что там много разных.

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

Ощущение, что этот кусок не заимплементили и надо дописать чутка.

i2c-slave это таки сложнее чем мастер. В контроллерах-то давно есть, но вот так чтобы обёртку и готовую - хз, скорее всего придётся брать шашку в руки и писать в регистры и обмазываться над прерываниями.

Dark_SavanT ★★★★★ ()
Ответ на: комментарий от Harald
Ответ на: комментарий от Harald

слушай, там совершенно мозговзрывательные штуки в расте.

Эти наркоманы сделали так, что из прерывания приоритетом повыше нельзя просто так редактировать общедоступную переменную: её надо в лок заворачивать. Эта проверка делается в compile time

max_lapshin ★★★ ()
Ответ на: комментарий от max_lapshin

В том и смысл же, чтобы ты не мог data race себе устроить. Прерываниям на борроу чекер похеру.

я пробовал прогать без «думать» — фигня получается. какие-то баги компилятор сыпет

Я подобную штуку на си под msp430 выпиливал, там думать вообще не надо было, конечный ватомат на прерываниях, а между ними спим. На stm32 подозреваю что ничего сильно не меняется, но надо побороть растовый чекатель.

Dark_SavanT ★★★★★ ()

я продолжаю читать спеки и слегка взволнован: есть подозрение, что прийдется писать весь i2c руками. По ходу мульти адрес для слейва никак не получается.

max_lapshin ★★★ ()