Darth Vader 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба Нет. Всё подхватывается из установленных паков. Если у вас стоит пак Keil::STM32F1xx_DFP версии 2.3.0 и ARM::CMSIS 5.0.1 то всё заработает, как у меня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksey_Serov 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба Пак 1.0.2 под xp другие не пошли У меня вот что в моем проекте происходит. Он выдает, не знаю уж, то ли это хекс или нет,(например в нкекоторых попытках расширение указываю, он создает хекс на полмегабайта файл) и тут же сам на него в любом случае жалуется Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба 6 минут назад, Aleksey_Serov сказал: под xp другие не пошли А а сам Keil какой версии? Уж не 4.хх ? Насколько я знаю, версии 5.хх с XP дружат плохо. Если версии 4, то не знаю чем помочь - у меня Win 7 и Keil MDK-ARM версии 5.23, в ней мой проект собирается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksey_Serov 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 (изменено) · Жалоба Пятый. А вообще, вот он создаст хекс, если все пойдет правильно где этот хекс окажется, в какой папке А еще в mаnanage project items можно выбрать ARM или GCC compiler, стоял ARM, на что это влияет, при GCC тоже не может выполнить, но пишет другое Build target 'Target 1' FCARM uses the following Files via command file '.\Auto_FcArm_Cmd.inp': Includes\STM32_CMSIS\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_cl.s, Includes\STM32_CMSIS\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s, Includes\STM32_CMSIS\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_ld.s, Includes\STM32_CMSIS\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_ld_vl.s, Includes\STM32_CMSIS\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s, Includes\STM32_CMSIS\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md_vl.s, Includes\STM32_CMSIS\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_xl.s TO 0158 NOPRINT custom translating @.\Auto_FcArm_Cmd.inp... Custom: H:\Keil_v5\ARM\Bin\FCARM.exe @.\Auto_FcArm_Cmd.inp FCARM FILE CONVERTER V2.50 Completed 7 File(s), Ratio 100% compiling Test_002.c... --- Error: failed to execute 'arm-none-eabi-gcc' ".\Test_002.elf" - 1 Error(s), 0 Warning(s). Target not created Изменено 20 декабря, 2020 пользователем Aleksey_Serov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба 5 минут назад, Aleksey_Serov сказал: вот он создаст хекс, если все пойдет правильно где этот хекс окажется, в какой папке В папке Objects. Уберите файл 0158.hex из дерева проекта. Его там быть не должно. Там должны быть только файлы с кодом, т.е. с расширением *.s, *.c, *cpp. Общее правило: файлы-заголовки *.h не должны напрямую включаться в дерево проекта. Они включаются в текст исходников директивой #include. В дереве проекта это выглядит так, что они входят в раскрывающиеся группы исходников - см. ваш файл Test_002.c. Кроме того, если заголовочный файл имеет парный ему файл реализации (*.c или *.срр), то вот они-то как раз обязаны быть включены в проект и видеться в нем. А у вас это нет. Где в вашем дереве проекта файлы: - stm32f10x_gpio.c - stm32f10x_rcc.c ? Я их не вижу. Их нет. А должны быть, если вы используете функции из них. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksey_Serov 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 (изменено) · Жалоба файл 0158.hex (это я так назвал output file) появляется всякий раз как я жму на f7, насчет остального сейчас посмотрю Вот добавил, обведено синим. То что зачеркнуто красным пока не трогал но как я понимаю надо убрать, а файлы стартап на своем месте? Изменено 20 декабря, 2020 пользователем Aleksey_Serov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 132 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба То что зачеркнуто красным Вы удалить не сможете ибо это всего лишь визуальное отображение дерева включений заголовочных файлов. Уберите .hex из дерева проекта (вообще удалите файл) и снесите все startup-ы кроме одного нужного (в соответствии с Вашим МК). STM32F103VC это категория High-Density, значит в проекте надо оставить startup_stm32f10x_hd.s, остальные выпилить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба 10 минут назад, Aleksey_Serov сказал: Вот добавил, обведено синим. То что зачеркнуто красным пока не трогал но как я понимаю надо убрать Добавлено правильно. Зачеркнутое красным убирать не надо. Оно не входит в дерево проекта напрямую. Оно включается директивами #include в единицу трансляции Test_002.c. Это отображается в виде раскрывающегося списка Test_002.c. Так и должно быть. Вот что у меня на вкладке Utilities - никакого Output File не задано. И всё работает. Так что не надо там ничего писать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksey_Serov 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 (изменено) · Жалоба вот когда у меня такое окно свойств таргета то кейл пишет коротко (от этого не легче) Build target 'Target 1' FCARM - Output Name not specified, please check 'Options for Target - Utilities' Target not created выделенный синим я трогать не стал. Теперь правильно, или его тоже убрать? Убрал и тот что синим подчеркнул, без изменений. А что это за FCARM, из за него весь shit как я понимаю, может где-то в другом месте галка нужная не убрана или не поставлена? Изменено 20 декабря, 2020 пользователем Aleksey_Serov Добавление текста Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба 11 минут назад, Aleksey_Serov сказал: Теперь правильно, или его тоже убрать? Тоже убрать. Он включается в другие единицы трансляции, где он нужен, директивой #include - см. раскрывающиеся группы файлов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 132 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба Сделайте скрины содержимого вкладок "Device", "Target", "Output", "C/C++", "Linker", "Utilities". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksey_Serov 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба Ну теперь в дереве проекта все правильно, осталось только допинать кейл чтобы он-таки выдал хекс, знать бы только как Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 132 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба Допинайте сначала, чтобы он проект адекватно собрал. P.S. Идете в "Output" и ставите галку "Create HEX FIle". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksey_Serov 0 20 декабря, 2020 Опубликовано 20 декабря, 2020 (изменено) · Жалоба Сейчас, галку в output я первым делом добавлял вместо обведенной красным сорс групп я ранее создавал другую группу и указывал ее, тоже без результатов, и еще как папки эту самую созданную я нигде не нашел, хотя отображается как папка Изменено 20 декабря, 2020 пользователем Aleksey_Serov Добавление рисунка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 132 20 декабря, 2020 Опубликовано 20 декабря, 2020 · Жалоба На вкладке "Target" поставьте галку "Use MicroLIB". Ниже - галку IROM1, а в окошках сбоку 0x08000000 0x00080000. Рядом - галку IRAM1, а в окошках сбоку 0x20000000 0x0000C000. На вкладке "C/C++" поставьте галки "One ELF Section per Function" и "C99 Mode". На вкладке "Linker" поставьте галку "Use Memory Layout from Target Dialog". Больше на данном этапе ничего не трогайте. Компилируйте проект. Хотя, как вижу, он не скомпилируется. Ищите в дебрях DFP файлы system_stm32f10x.c/.h и добавляйте в папку проекта, добавляйте .c (исходник) в сам проект. В stm32f10x.h ищите строку (где-то сверху) с типом МК - ее надо раскомментировать. Также раскомментировать USE_STDPERIPH_DRIVER. Дальше закиньте файл stm32f10x_conf.h в директорию проекта (не в сам проект), потому что он будет включаться из stm32f10x.h. Если у Вас МК тактируется от кварца, его частоту надо определить (поменять) в stm32f10x.h (параметр HSE_VALUE). Ну и быть осторожным с функцией SystemInit(). В ней надо сразу задать правильные параметры при тактировании от PLL. Иначе есть риск получить лавинообразный нагрев МК из-за оверклокинга и, соответственно, выход его из строя. Вам рекомендую в startup-файле вообще закомментировать вызов SystemInit(), дабы не наломать дров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться