|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
Программирование микроконтроллеров28.11.2024, 12:53. Показов 4062. Ответов 44
Всем доброго времени суток,
Я начал изучать программирование микроконтроллеров (и первым стал китайский на ядре RISC-V) Уже несколько дней я мучаюсь и пытаюсь настроить среду для работы с ним, но все безуспешно У меня стоит операционная систем Linux Fedora, хочу настроить или VSCode или Neovim для написания кода на C и последующей заливки на плату Вроде бы и тулчейн поставил, и необходимые библиотеки, и пути прописал, но ничего не работает и постоянно какие то ошибки Понимаю что вся проблема может быть кроется в том, что я абсолютный новичок, так что пожалуйста укажите мне верны путь Можете подсказать что именно нужно делать, а лучше скажите те кто уже знает как нужно настроить среду для работы Заранее спасибо
0
|
|
| 28.11.2024, 12:53 | |
|
Ответы с готовыми решениями:
44
Программирование микроконтроллеров Программирование микроконтроллеров программирование микроконтроллеров pic |
|
Windows must die
|
||
| 06.12.2024, 13:37 | ||
|
Под STM32 стартап ведь на С! Почему бы подо все на С не писать? Я терпеть не могу использовать то, что не понимаю. А асм я не понимаю и не собираюсь понимать, мне это не нужно вообще! Поэтому вместо "магии" я предпочитаю осмысленный код. Правда, у RISC-V код должен не с таблицы прерываний начинаться, как в ARM, а с каких-то невменяемых четырех байт, куда нужно умудриться что-то впихнуть (уж не помню, что). Я с первой попытки не придумал, как для этого правильно ld-скрипт нарисовать.
0
|
||
|
1502 / 520 / 75
Регистрация: 22.09.2023
Сообщений: 1,645
|
|||||||
| 06.12.2024, 14:11 | |||||||
0
|
|||||||
|
4130 / 2708 / 433
Регистрация: 09.09.2017
Сообщений: 12,040
|
||||||||||||||
| 06.12.2024, 14:52 | ||||||||||||||
0
|
||||||||||||||
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 11.12.2024, 13:47 [ТС] | |
|
Господа, я все таки смог подключить микроконтроллер
ошибка была до смешного глупой - подключался не через тот интерфейс Но это уже не важно, так как у меня новая проблема) Не компилируется программа Ни в какую, просто на отрез отказывается Ввожу программу через терминал riscv32-unknown-linux-gnu-gcc -I /usr/local/include -o main.elf main.c и выдает вот такие сообщения: /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: /tmp/ccoFjKmB.o: in function `GPIO_Toggle_INIT': main.c:(.text+0xc): undefined reference to `RCC_APB2PeriphClockCmd' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0x3c): undefined reference to `GPIO_Init' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0x8a): undefined reference to `GPIO_Init' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: /tmp/ccoFjKmB.o: in function `main': main.c:(.text+0xa6): undefined reference to `NVIC_PriorityGroupConfig' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0xb0): undefined reference to `Delay_Init' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0xbe): undefined reference to `USART_Printf_Init' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0xc6): undefined reference to `SystemCoreClock' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0xca): undefined reference to `SystemCoreClock' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0xf2): undefined reference to `GPIO_ReadInputDataBit' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0x140): undefined reference to `Delay_Ms' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0x15c): undefined reference to `Delay_Ms' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0x194): undefined reference to `Delay_Ms' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0x1b0): undefined reference to `Delay_Ms' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: main.c:(.text+0x1e8): undefined reference to `Delay_Ms' /opt/riscv/lib/gcc/riscv32-unknown-linux-gnu/14.2.0/../../../../riscv32-unknown-linux-gnu/bin/ld: /tmp/ccoFjKmB.o:main.c:(.text+0x204): more undefined references to `Delay_Ms' follow collect2: error: ld returned 1 exit status Интересен тот факт, что на Федоре работает а вот на Арче нет Хочется как то исправить это (так как планирую полностью на Арч перейти) буду признателен вам снова
0
|
|
|
4130 / 2708 / 433
Регистрация: 09.09.2017
Сообщений: 12,040
|
||
| 11.12.2024, 15:47 | ||
/usr/riscv64-linux-gnu/lib. Вы можете указать нужный каталог ключом -L. Где эти Delay_Ms и прочие USART_Printf_Init хранятся у вас, я не знаю. У меня-то нигде.
0
|
||
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 11.12.2024, 16:18 [ТС] | |
|
Не помогло
Все равно та же самая ошибка
0
|
|
|
4130 / 2708 / 433
Регистрация: 09.09.2017
Сообщений: 12,040
|
|
| 11.12.2024, 17:15 | |
|
А хотя бы простейшая программа, не завязанная на посторонние библиотеки, работает? Вон хоть из моих статей возьмите пример для v303 на асме. Насколько я помню, уж в блинке-то ничего специфичного не будет.
А вообще - как вы предлагаете вам помогать? Какую прошивку вы пытаетесь скомпилировать неизвестно. Какие флаги компилятору выставляете неизвестно. Что у вас куда подключено на плате неизвестно. Даже компилятор какой-то левый используется.
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 11.12.2024, 20:38 [ТС] | |
|
По порядку
Простейшая программа, со стандартными библиотеками, работает Код на асме не пробовал, но попробую согласно вашему совету Собственно блинк я и пытался залить На счет остального: Прошивку взял из гита для этой платы (и как уже упоминал на федоре все работает и светодиоды мигали) Из флагов только указывал место положение библиотек через -I (если я правильно понял что это) К плате ничего не подключается, пользуюсь только тем что уже на ней есть А компилятор я собрал из исходников, найденных на просторах гитхаба, только там нашел для 32 битного микроконтроллера тулчейн
0
|
|
|
4130 / 2708 / 433
Регистрация: 09.09.2017
Сообщений: 12,040
|
|||||
| 11.12.2024, 21:00 | |||||
|
0
|
|||||
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 12.12.2024, 11:13 [ТС] | |
|
Светодиод на ноге PC0
Из пакетного менеджера по дефолту стоит компилятор для 64 битной архитектуры, а у меня 32 битная Добавлено через 26 минут Кстати ваш код на асме работает и все загружает на плату проблем не возникает Может тоже Makefile использовать нужно
0
|
|
|
4130 / 2708 / 433
Регистрация: 09.09.2017
Сообщений: 12,040
|
|||
| 12.12.2024, 11:25 | |||
|
В принципе, если вы действительно хотите научиться работать с контроллерами, освоить и makefile, и ассемблер в любом случае лишним не будет. Да и вообще - интересно же, как работает та магия, которая превращает высокоуровневый код в мигающую диодом железку.
1
|
|||
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 12.12.2024, 11:51 [ТС] | |
|
Ну вот я тоже хочу избавиться от IDE
В IDE то оно все работает, но это как-то не то Не нравятся мне они Попробую скомпилировать с 64 битной
0
|
|
|
Windows must die
|
||
| 12.12.2024, 11:59 | ||
|
Просто все должно быть прозрачно, как в qt-creator, а не спрятано неизвестно где, как в каком-нибудь "кубе". И Makefile надо самому писать, чтобы не ловить потом непонятные баги. И с большой осторожностью пользоваться чужим кодом (особенно от "копрораций").
0
|
||
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 12.12.2024, 12:05 [ТС] | |
|
Быть может
0
|
|
|
4130 / 2708 / 433
Регистрация: 09.09.2017
Сообщений: 12,040
|
|||
| 12.12.2024, 12:26 | |||
|
--- В любом случае, отказ от IDE поможет разобраться с магией, которая там творится. Формирование makefile, вызов компилятора и прочего, настройки "проекта". Потом можно и вернуться, никто ж не придет пальцем тыкать "фу, IDE-шник, настоящие программисты только в
0
|
|||
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 12.12.2024, 12:43 [ТС] | |
|
Я потихоньку перехожу на neovim/терминал и мне пока все нравится
А ed что такое?
0
|
|
|
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
|
|
| 12.12.2024, 13:31 | |
|
1
|
|
|
4130 / 2708 / 433
Регистрация: 09.09.2017
Сообщений: 12,040
|
|
| 12.12.2024, 15:36 | |
|
Если я правильно помню, ed - редактор еще времен использования принтера вместо экрана. Соответственно и редактирование выглядит как последовательность команд "исправь в 5 строке то на это", "добавь строку после 8" и т.д. На принтере-то курсор особо не подвигаешь.
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 12.12.2024, 16:03 [ТС] | |
|
И это удобно?
0
|
|
| 12.12.2024, 16:03 | |
|
Визуальное программирование микроконтроллеров Втягивание в программирование микроконтроллеров Программирование микроконтроллеров на языке С
Программирование микроконтроллеров на базе STM32F407VET Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж»
Уважаемые коллеги!
Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|