The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Представлена LittleFS, компактная файловая система для встра..."
Отправлено Ordu, 17-Янв-18 05:51 
> Чинить то что не сломано вообще идея очень так себе. На сях
> десятилетиями писали проекты для микроконтроллеров и не только, при том очень
> требовательные к надежности - всякие управляющие системы для жесткого реалтайма и
> ответственных применений.

Фе. Ты писал под микроконтроллеры на C? Значит тебе приходилось заливать в mc кривую прошивку, а потом гадать, что происходит? Так вот rust отличается от C тем, что если программа скомпилировалась, то она работает. Отладка нужна крайне редко. И для микроконтроллеров, которые отлаживать сложнее, чем прикладные процессы, это очень полезный бонус.

> А целая атмега для мигания светодиодиком - весьма по хипстерски. Надо было
> не мелочиться и писюк взять. Смотри, в /sys/class/leds, можно даже из
> баша мигать, даже клавиатурой блин :).

facepalm.jpg

У меня на все случаи жизни спаяна на макетке что-то типа dev-board. Я туда впаял atmega16a, кристалл на 12МГц, коннектор под программатор, usb-разъём, регулятор напряжения, несколько светодиодов. Когда я решил заменить в используемом тулчейне C на rust, естественно я решил это делать на самой простой задаче из возможных -- на мигании светодиодами. Даже не светодиодами, а одним светодиодом висящим на нулевом пине порта B. И естественно я не пойду в магазин покупать самую маленькую attiny, и делать на ней другую девборду под программу мигающую светодиодами, только потому, что аноним в интернете считает, что для мигания светодиодами атмега это оверхед. При этом, ну если по-хорошему, любой микроконтроллер мигающий светодиодом -- это оверхед, потому что вообще-то такая задача легко решается на рассыпухе -- на транзисторах, резисторах да конденсаторах. Я в девятом классе ходил в кружок во дворце пиoнeров, и паял там такую штуку, несмотря на то, что тогда я даже не подозревал о существовании микроконтроллеров.

А когда тебе надо калькулятором воспользоваться, чтобы сложить пяток чисел, ты выключаешь свой Core i7, потому что это оверхед, достаёшь МК-61 и считаешь на нём?

> А подворачивая штаны, в 32-битных микроконтролях половина работы с периферией - тупо
> прямые обращения в память. И еще дрюкание DMA автомата, если хочется
> чтобы это быстро было и без участия проца. Поэтому толку от
> rust-а там ноль целых, фиг десятых.

Я логики не понял. Про работу с переферией и DMA понятно, и не поспоришь. В 8-битных avr'ках, кстати, тоже самое. А вот дальнейшие рассуждения я совсем не понимаю каким образом производятся. Ведь, по идее-то, всё ровно наоборот: если вся работа с периферией -- это работа с памятью, то здесь самым ярким образом раскроется основной перк rust'а -- возможность организовать работу с памятью "безопасным" образом, то есть так, чтобы большинство ошибок отлавливалось бы на этапе компиляции.
Можно например описать память таким образом, чтобы обращение к Rx/Tx приводило бы к ошибке компиляции, каким бы образом оно не происходило. Таким образом можно получить гарантии того, что единственный кусок кода, который туда что-то пишет -- это код работающий с usb. Гарантии того, что я ничего не запишу в portd _случайно_.
Я, знаешь ли, хипстер, и сколько я не писал на C, я не смог дорасти до уровня мифического программиста на C/C++, который может работать с памятью вручную и не совершать ошибок. Я постоянно ошибаюсь, а потом часами сижу и медитирую над кодом, пытаясь сообразить, где и как я накосячил. И именно поэтому мне нравится rust: он позволяет автоматизировать эти медитации, заставить компилятор проверяет, работаю ли я с памятью так, как задумал, или совершил ошибку. Я долго учился писать на C, так чтобы компилятор C проверял бы все эти вещи, но возможности C к проверке ограничены. Возможности rust'а, надо полагать, тоже ограничены, но я пока не нащупал границ.

ps. Что за фильтр на форуме... Дворец пиoнepoв не пропускает.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру