Сообщение Re[16]: Rust и экология от 24.02.2022 11:18
Изменено 24.02.2022 11:49 ArtDenis
Re[16]: Rust и экология
Здравствуйте, alex_public, Вы писали:
_>Ну вот https://habr.com/ru/post/495948/ например.
Это антипример какой-то
Несколько строк оттуда:
Код с использованием HAL будет удачнее хотя бы из-за того, что программист не должен знать тонкости тактирования и устройства регистров перифирии. При всех своих больших недостатках HAL является именно hardware abstraction layer, а не поделкой в стиле "смотри, я могу программировать МК на расте!!!"
_>Ну вот https://habr.com/ru/post/495948/ например.
Это антипример какой-то
Несколько строк оттуда:
// за что либа меня мучает тем, что я должен знать регистр управления флэшем - acr?
let clocks = rcc.cfgr.freeze(&mut flash.acr);
// за что либа меня мучает тем, что я должен знать что регистр тактирования порта GPIOB - это apb2?
let mut gpiob = dp.GPIOB.split(&mut rcc.apb2);
// за что либа меня мучает тем, что я должен знать что управление настройками
// порта разделено на два регистра и один из них crh (для пинов с 8 по 15)?
let mut led = gpiob.pb12.into_push_pull_output(&mut gpiob.crh);
Код с использованием HAL будет удачнее хотя бы из-за того, что программист не должен знать тонкости тактирования и устройства регистров перифирии. При всех своих больших недостатках HAL является именно hardware abstraction layer, а не поделкой в стиле "смотри, я могу программировать МК на расте!!!"
Re[16]: Rust и экология
Здравствуйте, alex_public, Вы писали:
_>Ну вот https://habr.com/ru/post/495948/ например.
Это антипример какой-то
Несколько строк оттуда:
Код с использованием HAL будет удачнее хотя бы из-за того, что программист не должен знать тонкости тактирования и устройства регистров перифирии. При всех своих больших недостатках HAL является именно hardware abstraction layer, а не поделкой в стиле "смотри, я могу программировать МК на расте!!!"
Повторюсь: даже если закрыть глаза на эти косяки, то всё равно это те же яйца, только в профиль. Если раст даёт преимущества перед С++ на "большом компе", то для МК пока таких преимуществ не видно
_>Ну вот https://habr.com/ru/post/495948/ например.
Это антипример какой-то
Несколько строк оттуда:
// за что либа меня мучает тем, что я должен знать регистр управления флэшем - acr?
let clocks = rcc.cfgr.freeze(&mut flash.acr);
// за что либа меня мучает тем, что я должен знать что регистр тактирования порта GPIOB - это apb2?
let mut gpiob = dp.GPIOB.split(&mut rcc.apb2);
// за что либа меня мучает тем, что я должен знать что управление настройками
// порта разделено на два регистра и один из них crh (для пинов с 8 по 15)?
let mut led = gpiob.pb12.into_push_pull_output(&mut gpiob.crh);
Код с использованием HAL будет удачнее хотя бы из-за того, что программист не должен знать тонкости тактирования и устройства регистров перифирии. При всех своих больших недостатках HAL является именно hardware abstraction layer, а не поделкой в стиле "смотри, я могу программировать МК на расте!!!"
Повторюсь: даже если закрыть глаза на эти косяки, то всё равно это те же яйца, только в профиль. Если раст даёт преимущества перед С++ на "большом компе", то для МК пока таких преимуществ не видно