|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
Программирование микроконтроллеров28.11.2024, 12:53. Показов 4184. Ответов 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
|
||
|
1507 / 524 / 76
Регистрация: 22.09.2023
Сообщений: 1,659
|
|||||||
| 06.12.2024, 14:11 | |||||||
0
|
|||||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
||||||||||||||
| 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
|
|
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
||
| 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
|
|
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|
| 11.12.2024, 17:15 | |
|
А хотя бы простейшая программа, не завязанная на посторонние библиотеки, работает? Вон хоть из моих статей возьмите пример для v303 на асме. Насколько я помню, уж в блинке-то ничего специфичного не будет.
А вообще - как вы предлагаете вам помогать? Какую прошивку вы пытаетесь скомпилировать неизвестно. Какие флаги компилятору выставляете неизвестно. Что у вас куда подключено на плате неизвестно. Даже компилятор какой-то левый используется.
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 11.12.2024, 20:38 [ТС] | |
|
По порядку
Простейшая программа, со стандартными библиотеками, работает Код на асме не пробовал, но попробую согласно вашему совету Собственно блинк я и пытался залить На счет остального: Прошивку взял из гита для этой платы (и как уже упоминал на федоре все работает и светодиоды мигали) Из флагов только указывал место положение библиотек через -I (если я правильно понял что это) К плате ничего не подключается, пользуюсь только тем что уже на ней есть А компилятор я собрал из исходников, найденных на просторах гитхаба, только там нашел для 32 битного микроконтроллера тулчейн
0
|
|
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||||
| 11.12.2024, 21:00 | |||||
|
0
|
|||||
|
0 / 0 / 0
Регистрация: 28.12.2020
Сообщений: 14
|
|
| 12.12.2024, 11:13 [ТС] | |
|
Светодиод на ноге PC0
Из пакетного менеджера по дефолту стоит компилятор для 64 битной архитектуры, а у меня 32 битная Добавлено через 26 минут Кстати ваш код на асме работает и все загружает на плату проблем не возникает Может тоже Makefile использовать нужно
0
|
|
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||
| 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
|
|
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||
| 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
|
|
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|
| 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|