К1921ВК01Т и VectorIDE

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

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

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

Re: К1921ВК01Т и VectorIDE

Сообщение RaJa »

Так и делал.
Аватара пользователя
Eugene
Сообщения: 8
Зарегистрирован: 14 июл 2022, 12:58
Предприятие: ООО Диаконт

Re: К1921ВК01Т и VectorIDE

Сообщение Eugene »

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

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

Re: К1921ВК01Т и VectorIDE

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

Добрый день. Компиляторы лежат в папках
VectorIDEv1.3.2\GNUGCC
и
VectorIDEv1.3.2\CodeBench
Выбираются они в настройках проекта - Properties - C/C++ Build - Settings - Toolchains
там можно прописать путь до компиляторов, положить другие (свои) версии из интернета.
Документацию ищите также в интернете на GCC - https://gcc.gnu.org/ и другие ресурсы.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
Vitaly
Сообщения: 20
Зарегистрирован: 04 окт 2023, 15:54
Предприятие: АО Заслон
Откуда: Санкт-Петербург

Re: К1921ВК01Т и VectorIDE

Сообщение Vitaly »

Добрый день!
Вопрос по порядку шагов компиляции (Build Steps) в Vector IDE:
я правильно понял, что мои команды записываемые в Post-build steps всегда выполняются раньше,
чем генерируется hex-файл?
Просто, из-за этого не получается автоматом переименовывать этот hex файл после его генерирования.
Я хотел автоматом добавлять в имя hex-файла версию и дату релиза.
В Stm32CubeIDE такое получалось...
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: К1921ВК01Т и VectorIDE

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

У нас используется стандартный эклипс, мы ничего в нём не меняли такого. По логике вещей Post-build steps должно быть после билда. Попробуйте не переименовывать, а копировать под другим именем. Может так получится. Может быть ещё с правами доступа что-то мешает.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
Vitaly
Сообщения: 20
Зарегистрирован: 04 окт 2023, 15:54
Предприятие: АО Заслон
Откуда: Санкт-Петербург

Re: К1921ВК01Т и VectorIDE

Сообщение Vitaly »

Сделал копирование, но все равно по данным вывода консоли получается раньше:
"...
Building target: VectorIDE132_VK035_BPIK_LDM.elf
Invoking: GNU арм Cross C Linker
арм-none-eabi-gcc -mcpu=кортекс-m3 -mthumb -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g -T "D:\Vitaly\MyProgramms\VectorIDE132\VectorIDE132_VK035_BPIK_LDM\build.ld" -Xlinker --gc-sections -Wl,-Map,"VectorIDE132_VK035_BPIK_LDM.map" -o "VectorIDE132_VK035_BPIK_LDM.elf" ./device/src/startup_K1921VK035.o ./device/src/system_K1921VK035.o ./code/src/DebugPrint.o ./code/src/ExtIface.o ./code/src/IntIface_I2C.o ./code/src/LightsCtrl.o ./code/src/SinTable.o ./code/src/crc.o ./code/src/gpio.o ./code/src/main.o ./code/src/main_app.o ./code/src/main_def.o ./code/data/ZaslonLogo.o
Finished building target: VectorIDE132_VK035_BPIK_LDM.elf

make --no-print-directory post-build
D:\Vitaly\MyProgramms\VectorIDE132\VectorIDE132_VK035_BPIK_LDM\MyBat.bat VectorIDE132_VK035_BPIK_LDM 1 1 04102023

D:\Vitaly\MyProgramms\VectorIDE132\VectorIDE132_VK035_BPIK_LDM\Release>copy VectorIDE132_VK035_BPIK_LDM.hex BPIK_MAIN_VK035_v1_1-04102023.hex
ЌҐ г¤ Ґвбп ­ ©вЁ гЄ § ­­л© д ©«.
make[2]: [makefile:78: post-build] Error 1 (ignored)


Invoking: GNU арм Cross Create Flash Image
арм-none-eabi-objcopy -O ihex "VectorIDE132_VK035_BPIK_LDM.elf" "VectorIDE132_VK035_BPIK_LDM.hex"
Finished building: VectorIDE132_VK035_BPIK_LDM.hex


Invoking: GNU арм Cross Print Size
арм-none-eabi-size --format=berkeley "VectorIDE132_VK035_BPIK_LDM.elf"
text data bss dec hex filename
1540 1708 240 3488 da0 VectorIDE132_VK035_BPIK_LDM.elf
Finished building: VectorIDE132_VK035_BPIK_LDM.siz"

А если выполнить мой bat после компиляции отдельно в консоли Винды, то работает без ошибок.

В STM32CubeIDE настройка, отвечающая за генерацию hex-файла находится в "MCU Post build outputs", а у VectorIDE в "GNU арм Cross Create Flash Image" - ниже по дереву настроек проекта (хотя может не в этом дело). Это потому что разные версии Eclipse?
Vitaly
Сообщения: 20
Зарегистрирован: 04 окт 2023, 15:54
Предприятие: АО Заслон
Откуда: Санкт-Петербург

Re: К1921ВК01Т и VectorIDE

Сообщение Vitaly »

Еще посмотрел makefile:
"...
# Tool invocations
VectorIDE132_VK035_BPIK_LDM.elf: $(OBJS) $(USER_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: GNU арм Cross C Linker'
арм-none-eabi-gcc -mcpu=кортекс-m3 -mthumb -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -g -T "D:\Vitaly\MyProgramms\VectorIDE132\VectorIDE132_VK035_BPIK_LDM\build.ld" -Xlinker --gc-sections -Wl,-Map,"VectorIDE132_VK035_BPIK_LDM.map" -o "VectorIDE132_VK035_BPIK_LDM.elf" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '
$(MAKE) --no-print-directory post-build

VectorIDE132_VK035_BPIK_LDM.hex: VectorIDE132_VK035_BPIK_LDM.elf
@echo 'Invoking: GNU арм Cross Create Flash Image'
арм-none-eabi-objcopy -O ihex "VectorIDE132_VK035_BPIK_LDM.elf" "VectorIDE132_VK035_BPIK_LDM.hex"
@echo 'Finished building: $@'
@echo ' '

VectorIDE132_VK035_BPIK_LDM.siz: VectorIDE132_VK035_BPIK_LDM.elf
@echo 'Invoking: GNU арм Cross Print Size'
арм-none-eabi-size --format=berkeley "VectorIDE132_VK035_BPIK_LDM.elf"
@echo 'Finished building: $@'
@echo ' '
..."
Т.е. действительно команда "$(MAKE) --no-print-directory post-build" идет раньше, чем команда создания hex-файла.
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: К1921ВК01Т и VectorIDE

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

Нам никогда не требовались hex файлы... наверное, поэтому не было проблемы. Попробуйте в своем скрипте сами сделать hex из elf (раз он готов) с нужным именем.

А за генерацию make файла, возможно, отвечает GNU MCU Eclipse Plugin. Можно попробовать его обновить, но может всё сломаться или потребовать перенастройки. Поэтому всё же советую просто ручками вписать вызов арм-none-eabi-objcopy -O ihex
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
Vitaly
Сообщения: 20
Зарегистрирован: 04 окт 2023, 15:54
Предприятие: АО Заслон
Откуда: Санкт-Петербург

Re: К1921ВК01Т и VectorIDE

Сообщение Vitaly »

Лашкевич писал(а): 10 окт 2023, 12:39 Нам никогда не требовались hex файлы... наверное, поэтому не было проблемы. Попробуйте в своем скрипте сами сделать hex из elf (раз он готов) с нужным именем.

А за генерацию make файла, возможно, отвечает GNU MCU Eclipse Plugin. Можно попробовать его обновить, но может всё сломаться или потребовать перенастройки. Поэтому всё же советую просто ручками вписать вызов арм-none-eabi-objcopy -O ihex
Ну вроде, получилось. Но по-моему, изврат получился - в настройках проекта снял "Create flash image" (на вкладке "Toolchains"), но все равно генерирую hex-файл через свою команду... Через колено!
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: К1921ВК01Т и VectorIDE

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

Да норм. Лучше, чем ковыряться в анналах эклипса и его плагинах...
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
Ответить

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