Aleksey_Serov 0 Posted August 21, 2020 · Report post Pack Installer нашел, после того как его запущу что дальше делать? Я запускал по-моему именно его, там началась связь с сайтом STM и началась ерунда - файл за файлом не устанавливался из-за обрыва связи, хотя интернет нормальный, я только успевал щелкать мышью чтобы пропустить файл, в итоге ничего не установилось Установил пак для stm32f3xx хотя он мне и не нужен, выскочило несколько окон с передупреждениями что инструкция сч таким-то номером чего-то там, так что не знаю, насколько правильно это бы работало, потом взял устанавливать пак для stm32f1x и тут вот это Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
toweroff 0 Posted August 21, 2020 · Report post Ну вообще-то всё понятно - обновить кайло А потом качнуть гигобайт или два калокуба под видом пака. ST в этом плане не стесняются Я бы порекомендовал почитать мануал на линейку, можно всё гораздо компактнее сделать, даже под старой осью кейла Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Obam 0 Posted August 21, 2020 · Report post Pack это обычный zip архив. Если в существующей установке Кейла видно, как размещены файлы для других "процов", то что мешает "врукопашную" развернуть требуемый pak? Чтоб лишних вопросов не задавали: интересовался хедерами в Кейле на интересовавшие меня "филиппки" по сравнению с ИАРовскими. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Aleksey_Serov 0 Posted August 22, 2020 (edited) · Report post Все-таки я установил драйвера нужной мне микросхемы на кейл5 (на сайте оказывается на строку, которых несколько сотен, можно щелкнуьб и там выпадает еще меню с версиями, а я качал "всю строку", видимо, по умолчанию, самую последнюю версию, правда, при установке несколько раз предупреждения выскакивали, но нужная мне stm32f103 в меню при создании проекта появилась 10 часов назад, Obam сказал: что мешает "врукопашную" развернуть требуемый pak? Вот развернул, а куда его потом размещать, в какую папку? С этого я и начал, сейчас, правда установил pack installer-ом, не знаю, насколько удачно если предупреждения выскакивали Edited August 22, 2020 by Aleksey_Serov Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Arlleex 1 Posted August 22, 2020 · Report post Ну, раз pack-и установили, то можете создавать проект. При создании проекта указываете свой микроконтроллер. Потом добавляете исходные файлы проекта и пишете код. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Arlleex 1 Posted August 22, 2020 · Report post Идете в каталог, где установлена программа, дальше щелкаете туда, куда установился pack. У меня это, например, D:\Program Files\Keil\ARM\PACK\STMicroelectronics\STM32F1xx_DFP. Тут будут лежать вообще все файлы, которые необходимы для старта проекта на конкретном семействе МК. Кроме того, понадобятся некоторые файлы из CMSIS. У меня они лежат по D:\Program Files\Keil\ARM\PACK\ARM\CMSIS\5.5.1\CMSIS\Core\Include. У меня взято за правило, что в рамках одного проекта я копирую в рабочую директорию проекта (в нужную папку) нужные файлы. Например, дерево проекта под ARMCC (компилятор такой, ныне считается устаревшим, но у Вас, видимо, будет доступен только он) будет примерно таким D:\AUXDSC │ AuxDSC.uvprojx │ ├───spl │ ├───inc │ │ stm32f0xx_adc.h │ │ stm32f0xx_can.h │ │ stm32f0xx_cec.h │ │ stm32f0xx_comp.h │ │ stm32f0xx_crc.h │ │ stm32f0xx_crs.h │ │ stm32f0xx_dac.h │ │ stm32f0xx_dbgmcu.h │ │ stm32f0xx_dma.h │ │ stm32f0xx_exti.h │ │ stm32f0xx_flash.h │ │ stm32f0xx_gpio.h │ │ stm32f0xx_i2c.h │ │ stm32f0xx_iwdg.h │ │ stm32f0xx_misc.h │ │ stm32f0xx_pwr.h │ │ stm32f0xx_rcc.h │ │ stm32f0xx_rtc.h │ │ stm32f0xx_spi.h │ │ stm32f0xx_syscfg.h │ │ stm32f0xx_tim.h │ │ stm32f0xx_usart.h │ │ stm32f0xx_wwdg.h │ │ │ └───src │ stm32f0xx_adc.c │ stm32f0xx_can.c │ stm32f0xx_cec.c │ stm32f0xx_comp.c │ stm32f0xx_crc.c │ stm32f0xx_crs.c │ stm32f0xx_dac.c │ stm32f0xx_dbgmcu.c │ stm32f0xx_dma.c │ stm32f0xx_exti.c │ stm32f0xx_flash.c │ stm32f0xx_gpio.c │ stm32f0xx_i2c.c │ stm32f0xx_iwdg.c │ stm32f0xx_misc.c │ stm32f0xx_pwr.c │ stm32f0xx_rcc.c │ stm32f0xx_rtc.c │ stm32f0xx_spi.c │ stm32f0xx_syscfg.c │ stm32f0xx_tim.c │ stm32f0xx_usart.c │ stm32f0xx_wwdg.c │ ├───system │ │ startup_stm32f030.s │ │ stm32f0xx.h │ │ │ └───cmsis │ arm_acle.h │ arm_common_tables.h │ arm_compat.h │ arm_const_structs.h │ arm_math.h │ core_cm0.h │ core_cmFunc.h │ core_cmInstr.h │ └───user eds.c eds.h eds.s exch.c exch.h hw.c hw.h main.c main.h ringbuf.c ringbuf.h stddefs.h types.h verhist.h Это просто как пример, у Вас же может быть все по-другому. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
khach 0 Posted August 22, 2020 · Report post Подскажите плз, есть чужой ( гитхабовский) кейловский проект, в котором пути к паку не совпадают с путями на рабочем компе. Пути прописаны полностью. Существует ли простой способ изменить путь в проекте на правильный? А то приходится каждый раз файл проекта ручками править в текстовом редакторе. Или как правильно сделать проект с относительными путями к паку ( через глобальные переменные среды)? Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Obam 0 Posted August 22, 2020 · Report post куда его потом размещать, в какую папку? "Гусары, молчать!" Ж8-) Ну говороил же, гляньте как другие процы расположены (или что, других вообще нет), архиватор структуру пака пускай сохраняет. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Lagman 0 Posted August 22, 2020 · Report post 8 hours ago, khach said: Подскажите плз, есть чужой ( гитхабовский) кейловский проект, в котором пути к паку не совпадают с путями на рабочем компе. Пути прописаны полностью. Существует ли простой способ изменить путь в проекте на правильный? А то приходится каждый раз файл проекта ручками править в текстовом редакторе. Или как правильно сделать проект с относительными путями к паку ( через глобальные переменные среды)? Каждый программист делает так как требуется "правилами" (своими предпочтениями, стандартами фирмы и т.д. и т.п.), под ваше желание, вы либо переделываете под себя проект, либо меняете расположение файлов. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Darth Vader 0 Posted August 25, 2020 · Report post 22.08.2020 в 12:39, khach сказал: приходится каждый раз файл проекта ручками править в текстовом редакторе. Или как правильно сделать проект с относительными путями к паку ( через глобальные переменные среды)? Зачем текстовый редактор? Кейл позволяет делать все настройки проекта через меню опций проекта и свойства компонентов. Все меняется через графический интерфейс самой среды разработки. Один раз поменяли, собрали, сохранили проект. Далее все работает. Каждый раз править ничего не надо. Или что по-вашему значит "каждый раз"? Это когда вы полностью перекачали проект из интернета и заменили им предыдущий целиком? Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
khach 0 Posted August 25, 2020 · Report post 6 hours ago, Darth Vader said: Кейл позволяет делать все настройки проекта через меню опций проекта и свойства компонентов. Если можно то просьба показать скриншот, как сменить путь для всего пака, вернее для группы компонетнов. Для отдельного файла это делается без проблем, но например в подгруппе FreeRtos или FatFS куча файлов и менять пути у каждого отдельно- мышкой закликаешься. Гораздо проще группвую замену в текстовом редакторе сделать. Проблема в том, что весь проект часто приходится перекачивать и внешнего репозитория. И после каждой перекачки пути слетают. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
toweroff 0 Posted August 25, 2020 · Report post А пути относительное, а не абсолютные, не судьбец? ..\ типа Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
khach 0 Posted August 25, 2020 · Report post 35 minutes ago, toweroff said: А пути относительное, а не абсолютные, не судьбец? Паки на другом логическом диске относительно проекта находятся. хотелось бы пример через глобальные переменные окружения среды %SET% найти пример. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
antis 0 Posted August 26, 2020 · Report post 20 часов назад, khach сказал: Паки на другом логическом диске относительно проекта находятся. хотелось бы пример через глобальные переменные окружения среды %SET% найти пример. Сделайте линк при помощи "mklink" Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Aleksey_Serov 0 Posted December 19, 2020 (edited) · Report post Злоключения продолжаются. На этот раз все установлено, МК на макетке, программатор коннектится (у китайского программатора ST-LINK, оказывается надо крышку снять, на которой распиновка написана и посмотреть на плату - там может быть другая распиновка), файлы F10x GPIO rcc , как .h так и .c в папке вложенной в паку проекта, путь указан в настройках как таргета так и сорс группы. Создаю пробный проект, взял вот отсюда https://microtechnics.ru/stm32-uchebnyj-kurs-gpio-porty-vvoda-vyvoda/, вот код /***************************************************************************************/ //Подключаем все нужные файлы #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h" /***************************************************************************************/ //Тут будет вся инициализация всей использующейся периферии void initAll() { // Объявляем переменную port типа GPIO_InitTypeDef GPIO_InitTypeDef port; // Это функция из файла stm32f10x_rcc.c, включает тактирование на GPIOA // GPIOA сидит на шине APB2 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // Про эту функцию напишу чуть ниже GPIO_StructInit(&port); // Заполняем поля структуры нужными значениями // Первый вывод – вход для обработки нажатия кнопки – PA1 port.GPIO_Mode = GPIO_Mode_IPD; port.GPIO_Pin = GPIO_Pin_1; port.GPIO_Speed = GPIO_Speed_2MHz; // А про эту функцию мы уже говорили // Отметим только что один из параметров – указатель(!) на нашу структуру GPIO_Init(GPIOA, &port); // Настраиваем вывод, на котором будет висеть диодик – PA0 port.GPIO_Mode = GPIO_Mode_Out_PP; port.GPIO_Pin = GPIO_Pin_0; port.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &port); } /***************************************************************************************/ int main() { // Объявляем переменную для хранения состояния кнопки uint8_t buttonState = 0; initAll(); while(1) { // С помощью функции из SPL считываем из внешнего мира состояние кнопки buttonState = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1); if (buttonState == 1) { GPIO_SetBits(GPIOA, GPIO_Pin_0); } else { GPIO_ResetBits(GPIOA, GPIO_Pin_0); } } } /***************************************************************************************/ Кейл выдает ошибку Build target 'Target 1' linking... .\Test_001.axf: Error: L6320W: Ignoring --entry command. Cannot find argument 'Reset_Handler'. .\Test_001.axf: Warning: L6320W: Ignoring --first command. Cannot find argument '__Vectors'. Not enough information to list image symbols. Not enough information to list the image map. Finished: 2 information, 1 warning and 1 error messages. ".\Test_001.axf" - 1 Error(s), 1 Warning(s). Target not created До этого создавал проекты по другим примерам, все то же самое - не находит аргумент обработчика сброса и аргумент __векторы (что это значит я без понятия) Edited December 19, 2020 by Aleksey_Serov Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...