К1921ВК01Т и VectorIDE

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

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

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

К1921ВК01Т и VectorIDE

Сообщение 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?
Проект во вложении.
Вложения
BlinkK1921VK01T.rar
(413.77 КБ) 2 скачивания

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

Re: К1921ВК01Т и VectorIDE

Сообщение RaJa » 21 дек 2021, 13:00

Ошибка возникает при попытке использовать функции из стандартной библиотеки, например, printf. А еще пример из niietcm4_pd инициализирует тактирование на низкой частоте и подключиться к МК не удается без стирания в сервисном режиме. при этом пример с инициализацией на регистрах работает и отлаживается без проблем.

dav
Сообщения: 125
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: К1921ВК01Т и VectorIDE

Сообщение dav » 21 дек 2021, 15:47

Доброго времени суток!
Ранее не планировались работы по оформлению примеров из SDK для VectorIDE.
В связи с тем, что с VectorIDE практически не работаем, на адаптацию и проверку проектов из SDK потребуется несколько дней. По готовности новой ревизии SDK сообщу в этой теме.

Аватара пользователя
Лашкевич
Сообщения: 299
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

Re: К1921ВК01Т и VectorIDE

Сообщение Лашкевич » 23 дек 2021, 14:50

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

Аватара пользователя
Disona
Сообщения: 70
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Contact:

Re: К1921ВК01Т и VectorIDE

Сообщение Disona » 23 дек 2021, 14:56

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 КБ) 8 скачиваний
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"

Аватара пользователя
Disona
Сообщения: 70
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Contact:

Re: К1921ВК01Т и VectorIDE

Сообщение Disona » 23 дек 2021, 16:56

Но если очень нужен printf(), то можно встроить вот этот.
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"

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

Re: К1921ВК01Т и VectorIDE

Сообщение RaJa » 29 дек 2021, 11:48

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

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

Re: К1921ВК01Т и VectorIDE

Сообщение RaJa » 29 дек 2021, 11:48

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

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

Re: К1921ВК01Т и VectorIDE

Сообщение 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 неверно инициализирует тактирование и проц запирается с необходимостью стирания через сервисный режим.

Аватара пользователя
Disona
Сообщения: 70
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Contact:

Re: К1921ВК01Т и VectorIDE

Сообщение Disona » 29 дек 2021, 11:56

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-разрядные микроконтроллеры»

Пользователи онлайн

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя