К1921ВК01Т и VectorIDE
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
Re: К1921ВК01Т и VectorIDE
Так и делал.
Re: К1921ВК01Т и VectorIDE
Здравствуйте!
Скажите пожалуйста, а как посмотреть -- какие версии компилятора используются для си и ассемблера и есть ли на них какая-нибудь документация?
Скажите пожалуйста, а как посмотреть -- какие версии компилятора используются для си и ассемблера и есть ли на них какая-нибудь документация?
Даже самую простую задачу можно сделать невыполнимой, если провести достаточное количество совещаний.
- Лашкевич
- Сообщения: 377
- Зарегистрирован: 13 май 2015, 12:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т и VectorIDE
Добрый день. Компиляторы лежат в папках
VectorIDEv1.3.2\GNUGCC
и
VectorIDEv1.3.2\CodeBench
Выбираются они в настройках проекта - Properties - C/C++ Build - Settings - Toolchains
там можно прописать путь до компиляторов, положить другие (свои) версии из интернета.
Документацию ищите также в интернете на GCC - https://gcc.gnu.org/ и другие ресурсы.
VectorIDEv1.3.2\GNUGCC
и
VectorIDEv1.3.2\CodeBench
Выбираются они в настройках проекта - Properties - C/C++ Build - Settings - Toolchains
там можно прописать путь до компиляторов, положить другие (свои) версии из интернета.
Документацию ищите также в интернете на GCC - https://gcc.gnu.org/ и другие ресурсы.
-
- Сообщения: 22
- Зарегистрирован: 04 окт 2023, 14:54
- Предприятие: АО Заслон
- Откуда: Санкт-Петербург
Re: К1921ВК01Т и VectorIDE
Добрый день!
Вопрос по порядку шагов компиляции (Build Steps) в Vector IDE:
я правильно понял, что мои команды записываемые в Post-build steps всегда выполняются раньше,
чем генерируется hex-файл?
Просто, из-за этого не получается автоматом переименовывать этот hex файл после его генерирования.
Я хотел автоматом добавлять в имя hex-файла версию и дату релиза.
В Stm32CubeIDE такое получалось...
Вопрос по порядку шагов компиляции (Build Steps) в Vector IDE:
я правильно понял, что мои команды записываемые в Post-build steps всегда выполняются раньше,
чем генерируется hex-файл?
Просто, из-за этого не получается автоматом переименовывать этот hex файл после его генерирования.
Я хотел автоматом добавлять в имя hex-файла версию и дату релиза.
В Stm32CubeIDE такое получалось...
- Лашкевич
- Сообщения: 377
- Зарегистрирован: 13 май 2015, 12:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т и VectorIDE
У нас используется стандартный эклипс, мы ничего в нём не меняли такого. По логике вещей Post-build steps должно быть после билда. Попробуйте не переименовывать, а копировать под другим именем. Может так получится. Может быть ещё с правами доступа что-то мешает.
-
- Сообщения: 22
- Зарегистрирован: 04 окт 2023, 14:54
- Предприятие: АО Заслон
- Откуда: Санкт-Петербург
Re: К1921ВК01Т и VectorIDE
Сделал копирование, но все равно по данным вывода консоли получается раньше:
"...
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?
"...
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?
-
- Сообщения: 22
- Зарегистрирован: 04 окт 2023, 14:54
- Предприятие: АО Заслон
- Откуда: Санкт-Петербург
Re: К1921ВК01Т и VectorIDE
Еще посмотрел 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-файла.
"...
# 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-файла.
- Лашкевич
- Сообщения: 377
- Зарегистрирован: 13 май 2015, 12:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т и VectorIDE
Нам никогда не требовались hex файлы... наверное, поэтому не было проблемы. Попробуйте в своем скрипте сами сделать hex из elf (раз он готов) с нужным именем.
А за генерацию make файла, возможно, отвечает GNU MCU Eclipse Plugin. Можно попробовать его обновить, но может всё сломаться или потребовать перенастройки. Поэтому всё же советую просто ручками вписать вызов арм-none-eabi-objcopy -O ihex
А за генерацию make файла, возможно, отвечает GNU MCU Eclipse Plugin. Можно попробовать его обновить, но может всё сломаться или потребовать перенастройки. Поэтому всё же советую просто ручками вписать вызов арм-none-eabi-objcopy -O ihex
-
- Сообщения: 22
- Зарегистрирован: 04 окт 2023, 14:54
- Предприятие: АО Заслон
- Откуда: Санкт-Петербург
Re: К1921ВК01Т и VectorIDE
Ну вроде, получилось. Но по-моему, изврат получился - в настройках проекта снял "Create flash image" (на вкладке "Toolchains"), но все равно генерирую hex-файл через свою команду... Через колено!Лашкевич писал(а): ↑10 окт 2023, 11:39 Нам никогда не требовались hex файлы... наверное, поэтому не было проблемы. Попробуйте в своем скрипте сами сделать hex из elf (раз он готов) с нужным именем.
А за генерацию make файла, возможно, отвечает GNU MCU Eclipse Plugin. Можно попробовать его обновить, но может всё сломаться или потребовать перенастройки. Поэтому всё же советую просто ручками вписать вызов арм-none-eabi-objcopy -O ihex
- Лашкевич
- Сообщения: 377
- Зарегистрирован: 13 май 2015, 12:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т и VectorIDE
Да норм. Лучше, чем ковыряться в анналах эклипса и его плагинах...