Fox_Alex
@Fox_Alex
Инженер электронщик

Raspberry Pi + Python или STM32 — кто быстрее?

Вот интересно, кто быстрей - Python на Raspberry Pi 3b+ или STM32F4 с прошивкой на Си?
Задача без строгого реалтайма, обмен пакетами между езернетом, SPI и UART. В общей куче не больше 10 мбит/сек. Ну и в меньшей степени обработка этих данных и сбор статистики.
Но нужна гибкость настройки, вебморда и возможность настраивать все дистанционно. В малине оно все есть из коробки, а на стм придется самому изобретать.
С другой стороны в стм доступно DMA и задача перекидывания пакетов между интерфейсами сильно упрощается.
В общем что выбрать? И где бы поглядеть тесты производительности малины с питоном?
(вариант писать программу на си под малину пока не рассматриваю, это еще научиться надо)
  • Вопрос задан
  • 1818 просмотров
Пригласить эксперта
Ответы на вопрос 4
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Взять и проверить: пишете тест вашей задачи в двух вариантах и сравниваете скорость работы.
Ответ написан
Комментировать
@rPman
Однозначно малинка будет быстрее, если вы конечно пакеты не по байтно будете вручную разбирать. Потому что сами данные будут передаваться нативными методами (порт uart будет файлом а значит в него будет просто сискол записи блока данных).
Если у вас будет преобразование данных - то все зависит от этого преобразования и того как вы его реализуете, но даже в этом случае малинка зачастую будет на порядок быстрее, ведь там как минимум частота в 10 раз быстрее, 4 ядра вместо одного и т.п.
Ответ написан
Комментировать
@Coocos
Зря не рассматриваете вариант Си под малину, поскольку разработка на Си под STM32 еще сложнее, т.к. ресурсы сильно ограничены и придется реализовывать ОС.
Тут уместно подумать в какую сторону будет развиваться проект. Если нужна гибкость, веб морда и дистанционное управление - нужно брать малину и пилить до достижения необходимой производительности.
Ответ написан
Комментировать
@MaxEpt

Однозначно малинка будет быстрее, если вы конечно пакеты не по байтно будете вручную разбирать. Потому что сами данные будут передаваться нативными методами (порт uart будет файлом а значит в него будет просто сискол записи блока данных).

Ок, тоесть вы хотите сказать, что будет гораздо быстрее использовать уровень абстракции операционной системы нежели чем напрямую записать в регистр в stm32 ?
Зря не рассматриваете вариант Си под малину, поскольку разработка на Си под STM32 еще сложнее, т.к. ресурсы сильно ограничены и придется реализовывать ОС.

Человек написал, ему ethernet надо и с перефирией(кол-во которой, я так понял не большое) общаться. Для чего здесь ОС ?

С другой стороны в стм доступно DMA и задача перекидывания пакетов между интерфейсами сильно упрощается.

DMA и в raspberry есть.

Александр, вы сравниваете разные вещи. Одноплатный компьютер и микроконтроллер.

Хоть и не знаю деталей, но по моим предчуствиям вам подойдет stm32.
Нужна какая-то параллельность, организация задач и т.д - возьмите free rtos.
Не хотите париться, и если задачи не специфичны(нет например 9ти битового уарт и еще какой - нибудь редкой фигни) - берите распберри.

Но СТМ32 позволит вам получить знания, и понять как все это работает на самом низком уровне. Т.Е прокачает вас ))) Успехов!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы