Jump to content

    

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

Recommended Posts

Aleksey_Serov

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

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

Share this post


Link to post
Share on other sites

toweroff

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

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

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

Share this post


Link to post
Share on other sites

Obam

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

Share this post


Link to post
Share on other sites

Aleksey_Serov

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

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

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

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

Edited by Aleksey_Serov

Share this post


Link to post
Share on other sites

Arlleex

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

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

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

Share this post


Link to post
Share on other sites

Arlleex

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

 

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

Share this post


Link to post
Share on other sites

khach

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

Share this post


Link to post
Share on other sites

Obam

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


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

Share this post


Link to post
Share on other sites

Lagman
8 hours ago, khach said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

khach
6 hours ago, Darth Vader said:

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

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

Share this post


Link to post
Share on other sites

khach
35 minutes ago, toweroff said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

Share this post


Link to post
Share on other sites

Aleksey_Serov

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.