|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
Программирование микроконтроллеров28.11.2024, 12:53. Показов 4511. Ответов 44
Всем доброго времени суток,
Я начал изучать программирование микроконтроллеров (и первым стал китайский на ядре RISC-V) Уже несколько дней я мучаюсь и пытаюсь настроить среду для работы с ним, но все безуспешно У меня стоит операционная систем Linux Fedora, хочу настроить или VSCode или Neovim для написания кода на C и последующей заливки на плату Вроде бы и тулчейн поставил, и необходимые библиотеки, и пути прописал, но ничего не работает и постоянно какие то ошибки Понимаю что вся проблема может быть кроется в том, что я абсолютный новичок, так что пожалуйста укажите мне верны путь Можете подсказать что именно нужно делать, а лучше скажите те кто уже знает как нужно настроить среду для работы Заранее спасибо
0
|
|
| 28.11.2024, 12:53 | |
|
Ответы с готовыми решениями:
44
Программирование микроконтроллеров Программирование микроконтроллеров программирование микроконтроллеров pic |
|
Нарушитель
|
||
| 06.12.2024, 13:37 | ||
|
Под STM32 стартап ведь на С! Почему бы подо все на С не писать? Я терпеть не могу использовать то, что не понимаю. А асм я не понимаю и не собираюсь понимать, мне это не нужно вообще! Поэтому вместо "магии" я предпочитаю осмысленный код. Правда, у RISC-V код должен не с таблицы прерываний начинаться, как в ARM, а с каких-то невменяемых четырех байт, куда нужно умудриться что-то впихнуть (уж не помню, что). Я с первой попытки не придумал, как для этого правильно ld-скрипт нарисовать.
0
|
||
|
1515 / 531 / 77
Регистрация: 22.09.2023
Сообщений: 1,691
|
|||||||
| 06.12.2024, 14:11 | |||||||
0
|
|||||||
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
||||||||||||||
| 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
|
|
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
||
| 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
|
|
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|
| 11.12.2024, 17:15 | |
|
А хотя бы простейшая программа, не завязанная на посторонние библиотеки, работает? Вон хоть из моих статей возьмите пример для v303 на асме. Насколько я помню, уж в блинке-то ничего специфичного не будет.
А вообще - как вы предлагаете вам помогать? Какую прошивку вы пытаетесь скомпилировать неизвестно. Какие флаги компилятору выставляете неизвестно. Что у вас куда подключено на плате неизвестно. Даже компилятор какой-то левый используется.
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 11.12.2024, 20:38 [ТС] | |
|
По порядку
Простейшая программа, со стандартными библиотеками, работает Код на асме не пробовал, но попробую согласно вашему совету Собственно блинк я и пытался залить На счет остального: Прошивку взял из гита для этой платы (и как уже упоминал на федоре все работает и светодиоды мигали) Из флагов только указывал место положение библиотек через -I (если я правильно понял что это) К плате ничего не подключается, пользуюсь только тем что уже на ней есть А компилятор я собрал из исходников, найденных на просторах гитхаба, только там нашел для 32 битного микроконтроллера тулчейн
0
|
|
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|||||
| 11.12.2024, 21:00 | |||||
|
0
|
|||||
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 12.12.2024, 11:13 [ТС] | |
|
Светодиод на ноге PC0
Из пакетного менеджера по дефолту стоит компилятор для 64 битной архитектуры, а у меня 32 битная Добавлено через 26 минут Кстати ваш код на асме работает и все загружает на плату проблем не возникает Может тоже Makefile использовать нужно
0
|
|
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|||
| 12.12.2024, 11:25 | |||
|
В принципе, если вы действительно хотите научиться работать с контроллерами, освоить и makefile, и ассемблер в любом случае лишним не будет. Да и вообще - интересно же, как работает та магия, которая превращает высокоуровневый код в мигающую диодом железку.
1
|
|||
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 12.12.2024, 11:51 [ТС] | |
|
Ну вот я тоже хочу избавиться от IDE
В IDE то оно все работает, но это как-то не то Не нравятся мне они Попробую скомпилировать с 64 битной
0
|
|
|
Нарушитель
|
||
| 12.12.2024, 11:59 | ||
|
Просто все должно быть прозрачно, как в qt-creator, а не спрятано неизвестно где, как в каком-нибудь "кубе". И Makefile надо самому писать, чтобы не ловить потом непонятные баги. И с большой осторожностью пользоваться чужим кодом (особенно от "копрораций").
0
|
||
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 12.12.2024, 12:05 [ТС] | |
|
Быть может
0
|
|
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|||
| 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
|
|
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|
| 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|