Перейти к содержанию
    

Куда в keil5 закинуть cmis stm32f106

Pack Installer нашел, после того как его запущу что дальше делать? Я запускал по-моему именно его, там началась связь с сайтом STM и началась ерунда - файл за файлом не устанавливался из-за обрыва связи, хотя интернет нормальный, я только успевал щелкать мышью чтобы пропустить файл, в итоге ничего не установилось

Установил пак для stm32f3xx хотя он мне и не нужен, выскочило несколько окон с передупреждениями что инструкция сч таким-то номером чего-то там, так что не знаю, насколько правильно это бы работало, потом взял устанавливать пак для stm32f1x и тут вот это1722200843__002.thumb.JPG.246ceeb269cf779e1a635848b43c9946.JPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вообще-то всё понятно - обновить кайло

А потом качнуть гигобайт или два калокуба под видом пака. ST в этом плане не стесняются

Я бы порекомендовал почитать мануал на линейку, можно всё гораздо компактнее сделать, даже под старой осью кейла

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Pack это обычный zip архив. Если в существующей установке Кейла видно, как размещены файлы для других "процов", то что мешает "врукопашную" развернуть требуемый pak?
Чтоб лишних вопросов не задавали: интересовался хедерами в Кейле на интересовавшие меня "филиппки" по сравнению с ИАРовскими.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все-таки я установил драйвера нужной мне микросхемы на кейл5 (на сайте оказывается на строку, которых несколько сотен, можно щелкнуьб и там выпадает еще меню с версиями, а я качал "всю строку", видимо, по умолчанию, самую последнюю версию, правда, при  установке несколько раз предупреждения выскакивали, но нужная мне stm32f103 в меню при создании проекта появилась

10 часов назад, Obam сказал:

что мешает "врукопашную" развернуть требуемый pak?
 

Вот развернул, а куда его потом размещать, в какую папку? С этого я и начал, сейчас, правда установил pack installer-ом, не знаю, насколько удачно если предупреждения выскакивали

Изменено пользователем Aleksey_Serov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, раз pack-и установили, то можете создавать проект.

При создании проекта указываете свой микроконтроллер.

Потом добавляете исходные файлы проекта и пишете код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Идете в каталог, где установлена программа, дальше щелкаете туда, куда установился 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

 

Это просто как пример, у Вас же может быть все по-другому.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите плз, есть чужой ( гитхабовский) кейловский проект, в котором пути к паку не совпадают с путями на рабочем компе. Пути прописаны полностью. Существует ли простой способ изменить путь в проекте на правильный? А то приходится каждый раз файл проекта ручками править в текстовом редакторе. Или как правильно сделать проект с относительными путями к паку ( через глобальные переменные среды)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

куда его потом размещать, в какую папку?


"Гусары, молчать!" Ж8-)
Ну говороил же, гляньте как другие процы расположены (или что, других вообще нет), архиватор структуру пака пускай сохраняет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, khach said:

Подскажите плз, есть чужой ( гитхабовский) кейловский проект, в котором пути к паку не совпадают с путями на рабочем компе. Пути прописаны полностью. Существует ли простой способ изменить путь в проекте на правильный? А то приходится каждый раз файл проекта ручками править в текстовом редакторе. Или как правильно сделать проект с относительными путями к паку ( через глобальные переменные среды)?

Каждый программист делает так как требуется "правилами" (своими предпочтениями, стандартами фирмы и т.д. и т.п.), под ваше желание, вы либо переделываете под себя проект, либо меняете расположение файлов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22.08.2020 в 12:39, khach сказал:

приходится каждый раз файл проекта ручками править в текстовом редакторе. Или как правильно сделать проект с относительными путями к паку ( через глобальные переменные среды)?

Зачем текстовый редактор? Кейл позволяет делать все настройки проекта через меню опций проекта и свойства компонентов. Все меняется через графический интерфейс самой среды разработки. Один раз поменяли, собрали, сохранили проект. Далее все работает. Каждый раз править ничего не надо.

Или что по-вашему значит "каждый раз"? Это когда вы полностью перекачали проект из интернета и заменили им предыдущий целиком?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, Darth Vader said:

Кейл позволяет делать все настройки проекта через меню опций проекта и свойства компонентов.

Если можно то просьба показать скриншот, как сменить путь для всего пака, вернее для группы компонетнов. Для отдельного файла это делается без проблем, но например в подгруппе FreeRtos или FatFS куча файлов и менять пути у каждого отдельно- мышкой закликаешься. Гораздо проще группвую замену в текстовом редакторе сделать. Проблема в том, что весь проект часто приходится перекачивать и внешнего репозитория. И после каждой перекачки пути слетают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 minutes ago, toweroff said:

А пути относительное, а не абсолютные, не судьбец?

Паки на другом логическом диске относительно проекта находятся. хотелось бы пример через глобальные переменные окружения среды %SET% найти пример.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 часов назад, khach сказал:

Паки на другом логическом диске относительно проекта находятся. хотелось бы пример через глобальные переменные окружения среды %SET% найти пример.

Сделайте линк при помощи "mklink" 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Злоключения продолжаются. На этот раз все установлено, МК на макетке, программатор коннектится (у китайского программатора 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

До этого создавал проекты по другим примерам, все то же самое - не находит аргумент обработчика сброса и аргумент __векторы (что это значит я без понятия)

Изменено пользователем Aleksey_Serov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...