К1921ВК01Т и VectorIDE
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
К1921ВК01Т и VectorIDE
Добрый день.
Приобрели плату LDM-HELPER-К1921ВК01Т-FULL. Скачал SDK НИИЭТ, в нем примеры для коммерческих сред и для cmake.
Однако, есть VectorIDE специально разработанная для работы с данным МК, но в примеры к ней не удается встроить библиотеку периферии.
При попытке собрать проект на файлах SDK получаю ошибку
../asm/startup_K1921VK01T.S:294: undefined reference to `_start'
При этом с помощью CMAKE все собирается без проблем.
Как заставить линковщик собирать скомпилированное как это делает скрипт Cmake?
Проект во вложении.
Приобрели плату LDM-HELPER-К1921ВК01Т-FULL. Скачал SDK НИИЭТ, в нем примеры для коммерческих сред и для cmake.
Однако, есть VectorIDE специально разработанная для работы с данным МК, но в примеры к ней не удается встроить библиотеку периферии.
При попытке собрать проект на файлах SDK получаю ошибку
../asm/startup_K1921VK01T.S:294: undefined reference to `_start'
При этом с помощью CMAKE все собирается без проблем.
Как заставить линковщик собирать скомпилированное как это делает скрипт Cmake?
Проект во вложении.
- Вложения
-
- BlinkK1921VK01T.rar
- (413.77 КБ) 74 скачивания
Re: К1921ВК01Т и VectorIDE
Ошибка возникает при попытке использовать функции из стандартной библиотеки, например, printf. А еще пример из niietcm4_pd инициализирует тактирование на низкой частоте и подключиться к МК не удается без стирания в сервисном режиме. при этом пример с инициализацией на регистрах работает и отлаживается без проблем.
-
- Сообщения: 224
- Зарегистрирован: 14 дек 2015, 08:21
- Предприятие: АО НИИЭТ
- Откуда: АО НИИЭТ, Воронеж
Re: К1921ВК01Т и VectorIDE
Доброго времени суток!
Ранее не планировались работы по оформлению примеров из SDK для VectorIDE.
В связи с тем, что с VectorIDE практически не работаем, на адаптацию и проверку проектов из SDK потребуется несколько дней. По готовности новой ревизии SDK сообщу в этой теме.
Ранее не планировались работы по оформлению примеров из SDK для VectorIDE.
В связи с тем, что с VectorIDE практически не работаем, на адаптацию и проверку проектов из SDK потребуется несколько дней. По готовности новой ревизии SDK сообщу в этой теме.
- Лашкевич
- Сообщения: 377
- Зарегистрирован: 13 май 2015, 12:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т и VectorIDE
По моему мнению, printf в микроконтроллерах лучше не использовать. Он реализован через непонятную "магию" библиотек, чтобы выплёвывать данные не то в UART, не то в JTAG. В библиотеке libc.a из VectorIDE это не поддерживается вроде бы. Если закомментировать printf и подобное, то работает?
- Disona
- Сообщения: 81
- Зарегистрирован: 06 дек 2016, 10:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т и VectorIDE
Для того, чтобы скомпилировать проект в VectorIDE (как я понял по косвенным признакам, у вас VectorIDE версии 1.2?), нужно проделать следующее:RaJa писал(а): ↑17 дек 2021, 12:18 Добрый день.
Приобрели плату LDM-HELPER-К1921ВК01Т-FULL. Скачал SDK НИИЭТ, в нем примеры для коммерческих сред и для cmake.
Однако, есть VectorIDE специально разработанная для работы с данным МК, но в примеры к ней не удается встроить библиотеку периферии.
При попытке собрать проект на файлах SDK получаю ошибку
../asm/startup_K1921VK01T.S:294: undefined reference to `_start'
При этом с помощью CMAKE все собирается без проблем.
Как заставить линковщик собирать скомпилированное как это делает скрипт Cmake?
Проект во вложении.
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 КБ) 88 скачиваний
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"
- Disona
- Сообщения: 81
- Зарегистрирован: 06 дек 2016, 10:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т и VectorIDE
Но если очень нужен printf(), то можно встроить вот этот.
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"
Re: К1921ВК01Т и VectorIDE
Работает. У меня есть свой аналог printf, но некоторые функции из станадртной библиотеки используются другим импортируемым кодом в разных проектах. Переписывать их все - значит вносить изменения, которые нужно тестировать полностью.Лашкевич писал(а): ↑23 дек 2021, 13:50 По моему мнению, printf в микроконтроллерах лучше не использовать. Он реализован через непонятную "магию" библиотек, чтобы выплёвывать данные не то в UART, не то в JTAG. В библиотеке libc.a из VectorIDE это не поддерживается вроде бы. Если закомментировать printf и подобное, то работает?
Re: К1921ВК01Т и VectorIDE
Могу протестировать.dav писал(а): ↑21 дек 2021, 14:47 Доброго времени суток!
Ранее не планировались работы по оформлению примеров из SDK для VectorIDE.
В связи с тем, что с VectorIDE практически не работаем, на адаптацию и проверку проектов из SDK потребуется несколько дней. По готовности новой ревизии SDK сообщу в этой теме.
Re: К1921ВК01Т и VectorIDE
Да, я примерно то же самое сделал. Единственное, проект на основе niited_pd неверно инициализирует тактирование и проц запирается с необходимостью стирания через сервисный режим.Disona писал(а): ↑23 дек 2021, 13:56 Для того, чтобы скомпилировать проект в VectorIDE (как я понял по косвенным признакам, у вас VectorIDE версии 1.2?), нужно проделать следующее:
1. В папке "asm" заменить startup-файл на файл из вложения.
2. В папке "cmd" изменить содержимое файла "build.h" следующим образом (подключить niiet_flash вместо K1921VK01T.ld:
3. Закомментировать функцию "printf()", так как эта функция не реализована в используемой нами библиотеке "libc.a".
- Disona
- Сообщения: 81
- Зарегистрирован: 06 дек 2016, 10:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т и VectorIDE
Да, инициализация, действительно, проходит как-то криво, хотя залочивания я не наблюдал.RaJa писал(а): ↑29 дек 2021, 10:52Да, я примерно то же самое сделал. Единственное, проект на основе niited_pd неверно инициализирует тактирование и проц запирается с необходимостью стирания через сервисный режим.Disona писал(а): ↑23 дек 2021, 13:56 Для того, чтобы скомпилировать проект в VectorIDE (как я понял по косвенным признакам, у вас VectorIDE версии 1.2?), нужно проделать следующее:
1. В папке "asm" заменить startup-файл на файл из вложения.
2. В папке "cmd" изменить содержимое файла "build.h" следующим образом (подключить niiet_flash вместо K1921VK01T.ld:
3. Закомментировать функцию "printf()", так как эта функция не реализована в используемой нами библиотеке "libc.a".
Поэтому нам пришлось ещё подтянуть свои InitCLK().
Я бы предложил - если речь идёт о примерах - пойти обратным путём.
Не адаптировать примеры SDK к VectorIDE, а наоборот, взять Blinky из VectorIDE и туда уже положить файлы из примеров SDK.
Есть такая возможность?
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"