К1921ВК01Т и VectorIDE

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

RaJa
Сообщения: 6
Зарегистрирован: 17 дек 2021, 12:46
Предприятие: ООО Аэроб

К1921ВК01Т и VectorIDE

Сообщение RaJa »

Добрый день.
Приобрели плату LDM-HELPER-К1921ВК01Т-FULL. Скачал SDK НИИЭТ, в нем примеры для коммерческих сред и для cmake.
Однако, есть VectorIDE специально разработанная для работы с данным МК, но в примеры к ней не удается встроить библиотеку периферии.
При попытке собрать проект на файлах SDK получаю ошибку
../asm/startup_K1921VK01T.S:294: undefined reference to `_start'
При этом с помощью CMAKE все собирается без проблем.
Как заставить линковщик собирать скомпилированное как это делает скрипт Cmake?
Проект во вложении.
Вложения
BlinkK1921VK01T.rar
(413.77 КБ) 44 скачивания
RaJa
Сообщения: 6
Зарегистрирован: 17 дек 2021, 12:46
Предприятие: ООО Аэроб

Re: К1921ВК01Т и VectorIDE

Сообщение RaJa »

Ошибка возникает при попытке использовать функции из стандартной библиотеки, например, printf. А еще пример из niietcm4_pd инициализирует тактирование на низкой частоте и подключиться к МК не удается без стирания в сервисном режиме. при этом пример с инициализацией на регистрах работает и отлаживается без проблем.
dav
Сообщения: 209
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: К1921ВК01Т и VectorIDE

Сообщение dav »

Доброго времени суток!
Ранее не планировались работы по оформлению примеров из SDK для VectorIDE.
В связи с тем, что с VectorIDE практически не работаем, на адаптацию и проверку проектов из SDK потребуется несколько дней. По готовности новой ревизии SDK сообщу в этой теме.
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: К1921ВК01Т и VectorIDE

Сообщение Лашкевич »

По моему мнению, printf в микроконтроллерах лучше не использовать. Он реализован через непонятную "магию" библиотек, чтобы выплёвывать данные не то в UART, не то в JTAG. В библиотеке libc.a из VectorIDE это не поддерживается вроде бы. Если закомментировать printf и подобное, то работает?
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
Аватара пользователя
Disona
Сообщения: 81
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Контактная информация:

Re: К1921ВК01Т и VectorIDE

Сообщение Disona »

RaJa писал(а): 17 дек 2021, 13:18 Добрый день.
Приобрели плату LDM-HELPER-К1921ВК01Т-FULL. Скачал SDK НИИЭТ, в нем примеры для коммерческих сред и для cmake.
Однако, есть VectorIDE специально разработанная для работы с данным МК, но в примеры к ней не удается встроить библиотеку периферии.
При попытке собрать проект на файлах SDK получаю ошибку
../asm/startup_K1921VK01T.S:294: undefined reference to `_start'
При этом с помощью CMAKE все собирается без проблем.
Как заставить линковщик собирать скомпилированное как это делает скрипт Cmake?
Проект во вложении.
Для того, чтобы скомпилировать проект в VectorIDE (как я понял по косвенным признакам, у вас VectorIDE версии 1.2?), нужно проделать следующее:
1. В папке "asm" заменить startup-файл на файл из вложения.
2. В папке "cmd" изменить содержимое файла "build.h" следующим образом (подключить niiet_flash вместо K1921VK01T.ld:

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

/* После изменения конфигурации нужно поменять галочку Debug in RAM 
во вкладке Startup окна Debug Configurations, а также дать команду на 
пересборку проекта */
/*INCLUDE niiet_ram.ld*/
/*INCLUDE K1921VK01T.ld*/

INCLUDE niiet_flash.ld

3. Закомментировать функцию "printf()", так как эта функция не реализована в используемой нами библиотеке "libc.a".

Тогда проект должен успешно скомпилироваться.
Вложения
startup_MCP_gcc.zip
(4.09 КБ) 61 скачивание
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
Аватара пользователя
Disona
Сообщения: 81
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Контактная информация:

Re: К1921ВК01Т и VectorIDE

Сообщение Disona »

Но если очень нужен printf(), то можно встроить вот этот.
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
RaJa
Сообщения: 6
Зарегистрирован: 17 дек 2021, 12:46
Предприятие: ООО Аэроб

Re: К1921ВК01Т и VectorIDE

Сообщение RaJa »

Лашкевич писал(а): 23 дек 2021, 14:50 По моему мнению, printf в микроконтроллерах лучше не использовать. Он реализован через непонятную "магию" библиотек, чтобы выплёвывать данные не то в UART, не то в JTAG. В библиотеке libc.a из VectorIDE это не поддерживается вроде бы. Если закомментировать printf и подобное, то работает?
Работает. У меня есть свой аналог printf, но некоторые функции из станадртной библиотеки используются другим импортируемым кодом в разных проектах. Переписывать их все - значит вносить изменения, которые нужно тестировать полностью.
RaJa
Сообщения: 6
Зарегистрирован: 17 дек 2021, 12:46
Предприятие: ООО Аэроб

Re: К1921ВК01Т и VectorIDE

Сообщение RaJa »

dav писал(а): 21 дек 2021, 15:47 Доброго времени суток!
Ранее не планировались работы по оформлению примеров из SDK для VectorIDE.
В связи с тем, что с VectorIDE практически не работаем, на адаптацию и проверку проектов из SDK потребуется несколько дней. По готовности новой ревизии SDK сообщу в этой теме.
Могу протестировать.
RaJa
Сообщения: 6
Зарегистрирован: 17 дек 2021, 12:46
Предприятие: ООО Аэроб

Re: К1921ВК01Т и VectorIDE

Сообщение RaJa »

Disona писал(а): 23 дек 2021, 14:56 Для того, чтобы скомпилировать проект в VectorIDE (как я понял по косвенным признакам, у вас VectorIDE версии 1.2?), нужно проделать следующее:
1. В папке "asm" заменить startup-файл на файл из вложения.
2. В папке "cmd" изменить содержимое файла "build.h" следующим образом (подключить niiet_flash вместо K1921VK01T.ld:
3. Закомментировать функцию "printf()", так как эта функция не реализована в используемой нами библиотеке "libc.a".
Да, я примерно то же самое сделал. Единственное, проект на основе niited_pd неверно инициализирует тактирование и проц запирается с необходимостью стирания через сервисный режим.
Аватара пользователя
Disona
Сообщения: 81
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Контактная информация:

Re: К1921ВК01Т и VectorIDE

Сообщение Disona »

RaJa писал(а): 29 дек 2021, 11:52
Disona писал(а): 23 дек 2021, 14:56 Для того, чтобы скомпилировать проект в VectorIDE (как я понял по косвенным признакам, у вас VectorIDE версии 1.2?), нужно проделать следующее:
1. В папке "asm" заменить startup-файл на файл из вложения.
2. В папке "cmd" изменить содержимое файла "build.h" следующим образом (подключить niiet_flash вместо K1921VK01T.ld:
3. Закомментировать функцию "printf()", так как эта функция не реализована в используемой нами библиотеке "libc.a".
Да, я примерно то же самое сделал. Единственное, проект на основе niited_pd неверно инициализирует тактирование и проц запирается с необходимостью стирания через сервисный режим.
Да, инициализация, действительно, проходит как-то криво, хотя залочивания я не наблюдал.
Поэтому нам пришлось ещё подтянуть свои InitCLK().

Я бы предложил - если речь идёт о примерах - пойти обратным путём.
Не адаптировать примеры SDK к VectorIDE, а наоборот, взять Blinky из VectorIDE и туда уже положить файлы из примеров SDK.
Есть такая возможность?
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
Ответить

Вернуться в «32-разрядные микроконтроллеры»