"Что не нравится при этом — ну нельзя никак запускать DMA от прерывания от входа GPIO, вот и приходится работать с таймерами. Может, кто-нибудь подскажет другой способ?"
На Cypress PSoC так получиться. И QSPI тоже есть, но нет ethernet (есть только MDIO (
В данный момент не существует информации об использовании робототехнической операционной системы ROS в связке с микроконтроллером STM32. Интернет переполнен только вопросами.
Что мне не нравиться в Cube (прошу прощения за эмоции):
1. Если мне нужна только LL библиотека, всё равно получу смесь HAL и LL, даже если выбирал только LL.
2. Нет возможности выбрать только FreeRTOS без CMSIS RTOS API. (в CMSIS RTOS нет например streaming buffer)
3. При включении прерывания по UART, включаеться только NVIC, а для UART нужно вллючать вручную.
4. Нет возможности отказаться от Timebase Source. Если у меня RTOS и я получаю тик от SysTimer, ну нахрена мне в системе два таймера с прерыванием 1ms (от Timebase Source и SysTimer)
5. Cube генерирует Debug код с оптимизацией по размеру.
"Данный микроконтроллер не умеет делать мультизадачность. Он считает код сверху вниз, проходя по всем веткам и функциям и после завершения, он начинает заново. " все MCU так работают, мультизадачностю занимаеться софт.как напишете так и работает. Но arduino ограничила Вас рамками. Используйте interrupt для упрощения кода. Можете познакомииься с FreeRTOS — там будет мультизадачность. Arduino отлично подходить для прошивки MCU без программатора. (Arduino- нет нормальной IDE, нет Debug и другие "-")
www.edx.org/course/real-time-bluetooth-networks-shape-the-world
Согласен на 100% :)
А почему не FRAM? Например https://www.cypress.com/products/f-ram-nonvolatile-ferroelectric-ram
Жаль что для x86… Для ARM было бы намного интересней ( jtag, uart)
заменить на
на
Что делает и зачем так сложно?
на
на
на
на
А MCU 2-ма ядрами не рассматриваете?
"Что не нравится при этом — ну нельзя никак запускать DMA от прерывания от входа GPIO, вот и приходится работать с таймерами. Может, кто-нибудь подскажет другой способ?"
На Cypress PSoC так получиться. И QSPI тоже есть, но нет ethernet (есть только MDIO (
www.youtube.com/watch?v=q9Ssi9ry1eg
www.youtube.com/watch?v=6RqUkFIeN6w
www.youtube.com/watch?v=JnmjmP2Xchg
Atollic is now part of STMicroelectronics: atollic.com
Не нужно, достаточно только изменить main.c на main.cpp
В Atollic True Studio есть возможность «конвертировать C проект в С++»
неправда, работает без проблем.
Мой проект под STM32F767 с Rosserial и FreeRTOS и LL библиотекой (не люблю HAL), пока сироват и работает без UART прериваний и DMA:
github.com/ros-ukraine/leobot/tree/F%23111_STM32F767_Firmware/leobot_firmware/STM32F767_Firmware
полно, например Adding Support for New Hardware:
wiki.ros.org/rosserial_client/Tutorials/Adding%20Support%20for%20New%20Hardware
wiki.ros.org/rosserial_client/Tutorials/Using%20rosserial%20with%20AVR%20and%20UART
Не знаю почему, но если после nh.spinOnce(); поставить задержку (даже osDelay(1)) Rosserial работать не будет.
1. Если мне нужна только LL библиотека, всё равно получу смесь HAL и LL, даже если выбирал только LL.
2. Нет возможности выбрать только FreeRTOS без CMSIS RTOS API. (в CMSIS RTOS нет например streaming buffer)
3. При включении прерывания по UART, включаеться только NVIC, а для UART нужно вллючать вручную.
4. Нет возможности отказаться от Timebase Source. Если у меня RTOS и я получаю тик от SysTimer, ну нахрена мне в системе два таймера с прерыванием 1ms (от Timebase Source и SysTimer)
5. Cube генерирует Debug код с оптимизацией по размеру.
Знаю, что можно потом удалить ненужное.
Супер!
P.S.если не ограничивать себя ардуино, много интересного можно сделать :)
А загрузка на ARM будет?
У нас можно купить такой: https://stiystil.com.ua/ru/en
Эффект Даннинга — Крюгера на практике :)
У вас ошибка, там 500 микроА, а не 500mA (0.5)
Ничего удивительного, просто результат низкого порога вхождения который всё ардуинщики любят :)
"Данный микроконтроллер не умеет делать мультизадачность. Он считает код сверху вниз, проходя по всем веткам и функциям и после завершения, он начинает заново. " все MCU так работают, мультизадачностю занимаеться софт.как напишете так и работает. Но arduino ограничила Вас рамками. Используйте interrupt для упрощения кода. Можете познакомииься с FreeRTOS — там будет мультизадачность. Arduino отлично подходить для прошивки MCU без программатора. (Arduino- нет нормальной IDE, нет Debug и другие "-")