Vector IDE

ira-cocunya!
Сообщения: 14
Зарегистрирован: 12 фев 2020, 19:36

Re: Vector IDE

Сообщение ira-cocunya! » 22 май 2020, 12:45

Вот что пытаюсь сделать

Код: Выделить всё

 main (void){
     FILE *S1, *S2;
     S1=fopen("S1.txt","r");
     S2=fopen("S2.txt","w");
     fscanf(S1,"%d",&period);
     period++;
     fclose(S1);
     fprintf(S2,"%d\n",period);
     fclose(S2);

Аватара пользователя
Disona
Сообщения: 24
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: Vector IDE

Сообщение Disona » 22 май 2020, 12:48

Судя по тексту ошибок, линкер не может найти некоторых функции для работы с вводом и выводом.

Связано это скорее всего с тем, что тулчейн GCC, который используется в "Vector IDE" предназначен для т.н. "bare-metal" программирования. То есть считается, что ваша программа заработает на "голом" микрокроконтроллере без использования операционных систем, типа FreeRTOS и т.д.

Функции открытия/закрытия/чтения/записи файлов как раз реализуются в составе операционных систем, либо пишутся самостоятельно.
В этих функциях обычно предусматривается вывод в UART какой-нибудь. Грубо говоря, вы пишете "printf("hi")", и это "hi" отправляется по UART наверх куда-то.

Периферия на всех микроконтроллерах разная, поэтому эти функции не являются стандартными. Насколько я знаю, у НИИЭТ-а, кажется, была реализация этих функций, но лучше обратиться к ним на форум, или поискать библиотеку с этими в репозитории НИИЭТ на Битбакете:
https://bitbucket.org/niietcm4/k1921vkx ... c/develop/

Вот, кстати, прямо на этой странице написано про файл "platform/retarget : Перенаправление printf/scanf в UART" - возможно, это именно то, что вам нужно.

Однако, насколько я понял из беседы, вы планировали взаимодействие с микроконтроллером через консоль "Vector IDE",а не через UART.
В таком случае вынужден вас огорчить - такой функции в "Vector IDE" нет и, скорее всего, не будет.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

Аватара пользователя
Disona
Сообщения: 24
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: Vector IDE

Сообщение Disona » 22 май 2020, 12:51

ira-cocunya! писал(а):
22 май 2020, 12:45
Вот что пытаюсь сделать

Код: Выделить всё

 main (void){
     FILE *S1, *S2;
     S1=fopen("S1.txt","r");
     S2=fopen("S2.txt","w");
     fscanf(S1,"%d",&period);
     period++;
     fclose(S1);
     fprintf(S2,"%d\n",period);
     fclose(S2);

А вы раньше пытались делать такие вещи именно на микроконтроллерах, а не в десктопных приложениях?
Такая конструкция, как вы привели, работать на МК не будет.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

Аватара пользователя
Лашкевич Максим
Сообщения: 223
Зарегистрирован: 30 дек 2015, 10:38

Re: Vector IDE

Сообщение Лашкевич Максим » 22 май 2020, 12:53

Судя по коду, это какой-то пример работы с файлами через операционную систему на Си. Скорее всего, вам это не нужно. Скорее всего, вы пытаетесь перенести напрямую опыт программирования на компьютере под микроконтроллер, что не всегда можно делать "в лоб".
Опишите глобально задачу, что надо решить, тогда мы, может быть, подскажем пути.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

ira-cocunya!
Сообщения: 14
Зарегистрирован: 12 фев 2020, 19:36

Re: Vector IDE

Сообщение ira-cocunya! » 08 июн 2020, 17:34

Добрый день
Хотелось бы получить какие нибудь примеры применения ассемблера на GCC

Аватара пользователя
Disona
Сообщения: 24
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: Vector IDE

Сообщение Disona » 08 июн 2020, 17:52

ira-cocunya! писал(а):
08 июн 2020, 17:34
Добрый день
Хотелось бы получить какие нибудь примеры применения ассемблера на GCC
Здравствуйте.
1. Вы можете ознакомиться с примерами составления файлов на языке ассемблера в проекте "K1921VK01T_Blinky", который идёт вместе со средой VectorIDE 1.3 (этот пример появляется в воркспейсе после установки). Находится в папке "asm" и называется "startup_MCP_gcc.S". В этом файле осуществляется инициализация микроконтроллера.
2. Можете попробовать посмотреть вот этот проект с примером расчёта экспоненты на ассемблере: https://yadi.sk/d/V5zAf2jseKuyRg
Смотреть надо файл "mathFuncs.S" в папке "asm". В этом примере (как и в предыдущем) функции ассемблера вызываются из функций на языке Си.
3. Поискать в интернете информацию по запросу, ну например, "GCC arm assembler examples".

Как я понял, у вас есть опыт/примеры разработки приложений на ассемблере в среде "Keil uVision" или "IAR", но в этих средах язык ассемблера отличается от того, который используется в GCC. То есть сами инструкции процессора, конечно, те же самые, а вот всякие ключевые слова типа EXTERN / GLOBAL / END и т.д. - другие.

Так что для того, чтобы перенести ассемблерный код из одной среды в другую, а потом сопрячь это с языком Си (при необходимости), придётся потрудиться.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

ira-cocunya!
Сообщения: 14
Зарегистрирован: 12 фев 2020, 19:36

Re: Vector IDE

Сообщение ira-cocunya! » 15 июн 2020, 13:02

добрый день!
пр попытки использовать функции scanf и printf, при работе по uart(переопределение этих функций)
выдает ошибку причем только на команду scanf
Вложения
Снимок.PNG
Снимок.PNG (67.98 КБ) 531 просмотр

Аватара пользователя
Disona
Сообщения: 24
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: Vector IDE

Сообщение Disona » 15 июн 2020, 13:32

Здравствуйте.

Расскажите, пожалуйста, более подробно, как вы организовали перенаправление printf/scanf в UART?
Пробовали убрать пробел между "scanf" и "("?
Это макроопределение, поэтому оно чувствительно к пробелам.

Сразу хочу предупредить, что на практике мы никогда не пробовали перенаправлять print/scanf в UART, поэтому тут наши советы могут только теоретическими.

UPD: И ещё советую обратиться на форум НИИЭТА. С первого взгляда на их реализацию printf/scanf создаётся впечатление, что они как-то позабыли про функцию scanf при билде с GCC:
2020-06-15 13-37-24 niietcm4   k1921vkx_sdk   platform   retarget   Template   K1921VK01T   retarget_conf.h — Bitbucket — Я.png
2020-06-15 13-37-24 niietcm4 k1921vkx_sdk platform retarget Template K1921VK01T retarget_conf.h — Bitbucket — Я.png (25.21 КБ) 522 просмотра
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

ira-cocunya!
Сообщения: 14
Зарегистрирован: 12 фев 2020, 19:36

Re: Vector IDE

Сообщение ira-cocunya! » 15 июн 2020, 13:51

а каким способом вы осуществляете общение по UART?

Аватара пользователя
Disona
Сообщения: 24
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: Vector IDE

Сообщение Disona » 15 июн 2020, 14:00

Обычно "общение" с контроллером у нас идёт по интерфейсу CAN по протоколу CANopen. Драйвер CANopen поддерживает также и работу через UART, но всё равно, только про протоколу CANopen. Сразу скажу, что возможности загрузить поток данных из файла в контроллер там нет.

Как я понимаю, вы собираетесь взаимодействовать с контроллером через какой-то терминал.
Так вот мы таким способом с контроллером никогда не связывались.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

Ответить