Keil 5. Настройка проекта в Keil uVision для микроконтроллеров STM32

Как правильно настроить проект в Keil uVision для работы с микроконтроллерами STM32. Какие файлы нужно добавить в проект. Как избежать ошибок компиляции при создании нового проекта. Пошаговая инструкция по настройке проекта Keil uVision для STM32.

Содержание

Подготовка файлов и папок для проекта STM32 в Keil uVision

При создании нового проекта для микроконтроллеров STM32 в среде разработки Keil uVision важно правильно настроить структуру проекта и добавить все необходимые файлы. Это позволит избежать ошибок компиляции и корректно работать с периферией микроконтроллера. Рассмотрим пошаговый процесс настройки проекта:

Шаг 1: Скачивание стандартной периферийной библиотеки

Для начала необходимо скачать с официального сайта STMicroelectronics стандартную периферийную библиотеку (Standard Peripheral Library) для вашей серии микроконтроллеров STM32. Эта библиотека содержит все необходимые драйверы и файлы конфигурации.

Шаг 2: Создание структуры папок проекта

В папке проекта рекомендуется создать следующую структуру директорий:


  • cmsis — для файлов CMSIS (Cortex Microcontroller Software Interface Standard)
  • pl — для файлов периферийной библиотеки
  • user — для пользовательских файлов (main.c и др.)
  • startup — для стартовых файлов

Шаг 3: Копирование необходимых файлов

Из скачанной стандартной периферийной библиотеки необходимо скопировать следующие файлы в соответствующие папки проекта:

  • В папку cmsis:
    • system_stm32f3xx.c
    • system_stm32f3xx.h
    • stm32f3xx.h
  • В папку pl:
    • Папки inc и src из директории STM32F3xx_StdPeriph_Driver
    • Файл stm32f3xx_conf.h из любого примера проекта
  • В папку startup:
    • startup_stm32f3xx.s

Настройка проекта в среде Keil uVision

После подготовки файлов необходимо правильно настроить сам проект в Keil uVision:

Шаг 4: Создание групп в проекте

В проекте Keil uVision создайте группы, соответствующие папкам проекта:

  • CMSIS
  • PL (Peripheral Library)
  • USER
  • STARTUP

Шаг 5: Добавление файлов в проект

Добавьте соответствующие файлы в созданные группы проекта:


  • В группу CMSIS: system_stm32f3xx.c
  • В группу PL: все .c файлы из папки src
  • В группу STARTUP: startup_stm32f3xx.s
  • В группу USER: создайте новый файл main.c

Шаг 6: Настройка использования стандартной периферийной библиотеки

Откройте файл stm32f3xx.h и раскомментируйте строку:

#define USE_STDPERIPH_DRIVER

Это укажет компилятору использовать файлы стандартной периферийной библиотеки.

Шаг 7: Добавление стандартной библиотеки ядра

В менеджере проектов выберите пункт «Run-Time Environment» и установите флажок в поле CMSIS -> CORE.

Настройка опций проекта

Для корректной работы проекта необходимо настроить некоторые опции компилятора и компоновщика:

Шаг 8: Настройка путей включения

В настройках проекта (Options for Target) на вкладке C/C++ добавьте пути к директориям с заголовочными файлами в поле «Include Paths»:

  • .\cmsis
  • .\pl\inc
  • .\user

Шаг 9: Определение используемого микроконтроллера

На той же вкладке C/C++ в поле «Define» добавьте определение для вашего микроконтроллера, например:


STM32F303xC

Проверка настройки проекта

После выполнения всех шагов можно проверить корректность настройки проекта:

  1. Откройте файл main.c и добавьте базовый код, например, инициализацию системы и бесконечный цикл.
  2. Попробуйте скомпилировать проект. Если ошибок нет, значит проект настроен верно.

При правильной настройке проекта вы сможете использовать все функции стандартной периферийной библиотеки для работы с микроконтроллером STM32.

Часто возникающие проблемы при настройке проекта STM32 в Keil uVision

При создании нового проекта для микроконтроллеров STM32 в Keil uVision разработчики часто сталкиваются с некоторыми типичными проблемами. Рассмотрим наиболее распространенные из них и способы их решения:

Ошибка: Undefined symbol assert_param

Эта ошибка обычно возникает, если не определен макрос USE_STDPERIPH_DRIVER. Для решения:

  1. Откройте файл stm32f3xx.h
  2. Найдите строку /* #define USE_STDPERIPH_DRIVER */
  3. Раскомментируйте эту строку, убрав символы /* */

Ошибка: Cannot open source input file «stm32f3xx_conf.h»

Эта ошибка указывает на то, что компилятор не может найти файл конфигурации. Для решения:


  1. Убедитесь, что файл stm32f3xx_conf.h скопирован в папку проекта (обычно в pl или user)
  2. Проверьте, что путь к этому файлу добавлен в настройках проекта (Options for Target -> C/C++ -> Include Paths)

Ошибка: Undefined symbols ___ (referencing multiple symbols)

Если компилятор сообщает о множестве неопределенных символов, это может означать, что не все необходимые исходные файлы добавлены в проект. Для решения:

  1. Проверьте, что все .c файлы из папки pl/src добавлены в группу PL в проекте
  2. Убедитесь, что файл system_stm32f3xx.c добавлен в группу CMSIS

Предупреждение: No clock provided for UART/USART

Это предупреждение появляется, если не настроено тактирование для периферийных устройств. Для решения:

  1. В функции инициализации системы (обычно SystemInit) убедитесь, что включено тактирование всех используемых периферийных устройств
  2. Используйте функции RCC_APB1PeriphClockCmd() или RCC_APB2PeriphClockCmd() для включения тактирования

Ошибка: Device STM32F3xx not found

Эта ошибка возникает, если в настройках проекта неправильно указан используемый микроконтроллер. Для решения:


  1. Откройте настройки проекта (Options for Target)
  2. Перейдите на вкладку «Device»
  3. Выберите правильную серию и модель вашего микроконтроллера STM32

Оптимизация работы с проектом STM32 в Keil uVision

После успешной настройки проекта можно применить некоторые приемы для оптимизации работы:

Использование шаблонов кода

Создайте шаблоны для часто используемых структур кода, таких как инициализация GPIO, настройка таймеров и т.д. Это ускорит разработку новых проектов.

Настройка отладки

Правильно настройте параметры отладки в Keil uVision для вашего отладчика (например, ST-Link). Это позволит эффективно отлаживать код непосредственно на целевом устройстве.

Использование средств статического анализа

Включите и настройте инструменты статического анализа кода в Keil uVision. Это поможет выявить потенциальные проблемы в коде на ранних этапах разработки.

Оптимизация кода

Используйте возможности оптимизации компилятора. Настройте уровень оптимизации в опциях проекта в зависимости от ваших требований к производительности и размеру кода.


Следуя этим рекомендациям, вы сможете эффективно настроить и использовать проект для микроконтроллеров STM32 в среде разработки Keil uVision, избегая распространенных ошибок и оптимизируя процесс разработки.


Создание проекта в Keil uVision

02.06.2018

     ARM (Advanced RISC Machine — усовершенствованная RISC-машина) архитектура, разработанная компанией  ARM Limited, лежит в основе множества 32-х и 64-х битных микропроцессорных ядер. В свою очередь одним из таких ядер, а именно ARM Cortex-M оснащены микроконтроллеры STM32 от компании STMicroelectronics. 

       В семействе Cortex-M присутствуют: Cortex-M3 (выпущен в 2004 году), Cortex-M1 (2007 год), Cortex-M0 (2009 год), Cortex-M4F (2010 год),

Cortex-M0+ (2012 год), Cortex-M7F (2014 год), Cortex-M23 (2016), Cortex-M33F(2016). 

       В данной статье мы рассмотрим подготовку программного обеспечения и создание первого проекта в среде Keil uVision, для микроконтроллера STM32F303RBT6. В основе этого контроллера лежит ядро Cortex-M4.  

       Keil uVision дает возможность создавать проекты любой степени сложности. В этой среде пишется и редактируется исходный код программы, производится внутрисхемная отладка и прошивка ПЗУ микроконтроллера. Под управлением единой оболочки собран стек различных модулей которые используются по мере необходимости и возрастании сложности реализуемых задач. 

       Для того что бы приступить к созданию проекта необходимо скачать архив KEIL uVision and other, в архиве находятся 9 файлов (рисунок 1): 

1) mdk511.exe (установочный файл Keil uVision 5)

2) Keil.STM32F3xx_DFP.1.4.0.pack (пакет для работы с микроконтроллером STM32F303RBT6)

3) STM32F30x_Clock_Configuration_V1.0.0.xls (Визард для настройки тактирования микроконтроллера STM32F303RBT6)

4,5,6) StdPeriph, StartUP, CMSIS (необходимые файлы для работы с ядром Cortex-M)

7,8) USBSource, USBLib (Необходимые файлы для работы c USB)

9) Папка VCP_V1.5.0 с драйверами последовательного COM порта для микроконтроллера STM32F303RBT6

 

 

Рисунок 1  

     Далее устанавливаем  Keil uVision 5 (проблем с установкой быть не должно, следуем инструкциям установщика) и переходим к настройкам среды.  

Нажимаем на кнопку Pack Installer (рисунок 2).

Рисунок 2

     Откроется диалоговое окно  Pack Installer, жмем на File->Import (рисунок 3) и выбираем файл Keil.STM32F3xx_DFP.1.4.0.pack (рисунок 4).

Рисунок 3

Рисунок 4

     Теперь создаем новый проект Project->New uVision Project… (рисунок 5).

Рисунок 5

     Теперь нужно выбрать папку где будет расположен наш проект и присвоить ему имя. У меня это папка Keil_EX_1 и название проекта EX_1 (рисунок 6). Давайте сразу скопируем в эту папку файлы: StdPeriph, StartUP, CMSIS  из скаченного архива KEIL_uVision_and_other  

Рисунок 6

     После нажатия на кнопку сохранить появится диалоговое окно Select Device for Target ‘Target 1’… в котором нам предложат выбрать микроконтроллер с которым мы будем работать.  Нажимаем на вкладку STM32F303 (рисунок 7) после чего в раскрывшемся списке выбираем наш микроконтроллер STM32F303RB как показано на (рисунке 8).

Рисунок 7

Рисунок 8

     Нажимаем на кнопку ОК и автоматически появится диалоговое окно Manage Run-Time Environment

 (рисунок 9), просто жмем Cancel и идем дальше.

Рисунок 9

     Теперь в появившемся окне Project (рисунок 10) необходимо подготовить структуру папок для удобства работы.

Рисунок 10

     Правой кнопкой мыши жмем на папку Target 1 и выбираем Manage Project items… как на (рисунке 11). 

Рисунок 11

     Появится диалоговое окно Manage Project items в котором теперь необходимо добавить с помощью кнопок New/Delet (1) следующие папки: StartUP, USER, CMSIS, StdPeriph (2), после жмем ОК (3) (рисунок 12).

Рисунок 12

     Следующим шагом нужно добавить в созданные нами папки: StartUP, CMSIS, StdPeriph необходимые файлы с помощью команды Add Exsisting Files to Group ‘Название папки’… (рисунок 13).

Рисунок 13

     В составе папки StartUP должны быть следующие файлы: startup_stm32f30x.score_cm4.h.

     В составе папки CMSIS должен быть файл: system_stm32f30x.c.

     В составе папки StdPeriph в первую очередь должен быть конфигурационный файл: stm32f30x_conf.h. Остальные в зависимости от используемой периферии. Я сразу добавил в эту папку все файлы для работы с периферией. 

     Перейдем к папке USER, в ней будет лежать файл исходного кода main и прочие на ваше усмотрение. Для добавления нового файла воспользуемся командой Add New item to Group ‘USER’… (рисунок 14).

Рисунок 14

     Выбираем тип добавляемого файла CFile(.c) (1), присваиваем файлу имя main (2), нажимаем на кнопку добавить Add(3) (рисунок 15).

Рисунок 15

     После всех манипуляций ваш проект должен выглядеть так же как на (рисунке 16), за исключением нескольких строчек кода которые я написал в main для демонстрации ошибки. Здесь нет ни чего страшного просто нужно произвести окончательные настройки проекта (рисунок 17):  

(1) Нажимаем на кнопку Options for Target…

(2) Заходим во вкладку  С/С++

(3) В поле Define вводим USE_STDPERIPH_DRIVER

(4) Жмем на кнопку добавить путь (1) и прописываем пути ко всем файлам проекта (2) (рисунок 18)

Рисунок 16

Рисунок 17

Рисунок 18

     Заходим во вкладку Output выставляем галочку Create HEX File (рисунок 19), этот файл будет использоваться нами для прошивки микроконтроллера. Жмем ОК.

Рисунок 19

     Все готово, теперь осталось только собрать проект. Жмем на кнопку Build (рисунок 20). Ошибок быть не должно.  

Рисунок 20

SPL: Настройки тактирования CodeIN

03.06.2018

Для того что бы примеры для платы CodeIN правильно работали, произведите настройку тактирования микроконтроллера от внешнего источника тактового сигнала.

START: Прошивка микроконтроллера при помощи программы FLASH LOADER DEMONSTRATION

04.06.2018

Благодаря наличию на плате CodeIN переходника USB->UART (микросхема FT232RQ), присутствует возможность прошивки памяти микроконтроллера без использования программатора.

SPL: мигаем светодиодом

05.06.2018

Пример демонстрирует настройку и работу с GPIO.

Как сделать обновляемую прошивку для ARM в Keil μVision 5. Часть 1

Во время работы над проектом iCash я столкнулся со следующей проблемой : устройство надо отдать на сертификацию ( в две компании ), но там могут быть обнаружены ошибки в софте, которые надо будет исправлять. Плюс к этому, сертифицировать необходимо только часть прошивки (кассовое ядро) , и именно вот эту часть позднее ( после проверок ) надо закрепить и не обновлять, а обновлять другую, несертифицируемую ( сервисную ) часть прошивки.

Если не сделать онлайн-обновление обеих частей прошивки через интернет, то придётся :

1. Найти и исправить ошибки.

2. Поехать в сертификационные компании, забрать устройства.

3. Перепрошить эти устройства.

4. Отвезти устройства обратно.

И — по циклу. То есть, теоретически, если ошибки будут выявлять не все сразу, а постепенно — процесс сертификации существенно затянется. 

Решение простое : надо сделать, так чтобы разные части ( редко изменяемые, такие как фискальное ядро, и часто изменяемые, такие как дополнительные, сервисные функции ) исполняемого кода компилировались по разным адресам для того, чтобы их можно было перепрошивать независимо друг от друга и, желательно, удалённо ( про «удалённо» читайте в соответствующей статье про использование Ethernet (lwip) поверх USB ), через интернет.

Также необходимо помнить, что код «самопрошивания» должен запускаться из RAM. Значит часть кода, относящаяся, к процессу прошивки необходимо разместить в RAM, причем этот «RAM-код» не должен вызывать код из ROM, по крайней мере во время процесса обновления.

В моём случае, я разделил адресацию кода на три части :

— загрузчик ( boot ) — отдельный проект. Он должен считать из flash-memory команду на прошивку того или иного ядра. Если команды нет — передавать управление в сервисное ядро. Код для «самоперепрошивки» — должен вызываться в RAM, вместе со всеми вызываемыми из неё функциями.

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

— кассовое ядро — часть основного проекта,  для сервисных функций ( cashcore ) — редко изменяемая (только во время исправления ошибок, и позднее, при изменениях в законодательстве ) часть проекта.

Итак, в проекте кассы iCash мы использовали микроконтроллер K1921VK01T, поэтому у меня 1 Мбайт ROM и 192 Кбайта RAM. RTOS (или другие OS) не используем. Для проекта используется «чистый» Си, без плюсов.

Я решил адресовать части кода следующим образом :

— boot должен находится в первых 16 Килобайтах ROM ( адреса 0000H размером  4000H ), должен использовать RAM для вызова функций «прошивки», передавать управление (когда нет команд на прошивку) двум остальным частям прошивки.

— servcore должен находится c 4000H ROM. Оно должно уметь передавать управление в другое ядро, вызывая необходимые функции cashcore. Причём надо учитывать, что адресация функций ядра cashcore будет меняться. Любая версия servcore должна уметь взаимодействовать с любой версией cashcore, также и обратное тоже должно быть верным.

— cashcore располагается с адреса 80000H ( с половины мегабайта ). Оно должно уметь вызывать необходимые функции servcore, учитывая изменяемые адреса функций. Должно уметь использовать переменные другого ядра.

Подробнее о принятых решениях и способах реализации я напишу в следующей статье.

В этой же, опишу только реализованные мной способы привязки переменных и функций к физическим адресам памяти.
Где возможно, я использовал GUI Keil’a для настроек, в редактирование настроечных файлов «руками» лез только по необходимости, если без этого невозможно было обойтись.

Options для проекта boot

 Для «кода» было выделено 16 Кб с адреса ROM 0000H
В ОЗУ, на всякий случай, я зарезервировал 16 Кб, остальные 192 минус 16 Кб — под переменные и исполняемый вRAM код

Options для файла boot_flash.c

В этом файле ( boot_flash.c ) находятся функции, которые перезаписывают ROM микроконтроллера.
Эти функции должны вызываться из RAM, поэтому в пункте «Code/Const» выбрана RAM, если было бы <default>, то код этого файла располагался  бы вместе с остальным кодом — в ROM .

Вместо настроек в GUI Keil можно было бы вручную заполнить scatter файл вот так :

; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x00000000 0x00004000  {    ; load region size_region
  ER_IROM1 0x00000000 0x00004000  {  ; load address = execution address
   *. o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
   .ANY (+XO)
  }
  RW_IRAM1 0x20004000 0x0002C000  {  ; RW data
    boot_flash.o (+RO)
   .ANY (+RW +ZI)
  }
}

Erase Full Chip — означает, что перед прошивкой первых 16 Кб будет очищаться ВЕСЬ внутренний FLASH микроконтроллера.
Прошивка будет располагаться с адреса 0H размером 4000H .

Настройка инструмента прошивки , находится на закладке «Debug» настроек проекта.

Для чего два ядра ( две отдельно обновляемые прошивки ) в одном проекте ? Для удобства процессов разработки и отладки.

Servcore и cashcore связаны друг с другом очень «плотно», функции ядер вызываются друг из друга, общие переменные и так далее. Всё это удобнее разрабатывать и отлаживать в едином проекте.

Главное — «развести» ядра по разным, непересекающимся частям памяти.

Настройки проекта с двумя прошивками.

Первое ядро ( servcore ) располагается с адреса 4000H, ему отведено место вплоть до 7FFFFH ( вдруг ядро разрастётся ;-).
Второе ядро ( cashcore ) — с адреса 80000H ( 512 Кб ), размер вплоть до 512 Кб.

RAM — общая, под оба «ядра» забираем всю эту память под проект.

Options для одного из файлов, входящих в прошивку, располагаемую с адреса 80000H.

«Ядра» должны быть реализованы так, чтобы адресация ( вызов функций ) происходила либо только внутри этого ядра, либо по заранее определённому адресу, который гарантированно адресует необходимую часть кода, как это сделать — читайте 2-ую часть статьи. 

Ниже приведён scatter файл проекта ( там где  «….0» находятся другие файлы прошивки ядра cashcore, скрыл, соблюдая коммерческую тайну 😉

  ; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x00004000 0x0007C000  {    ; load region size_region
  ER_IROM1 0x00004000 0x0007C000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
   .ANY (+XO)
  }
  RW_IRAM1 0x20000000 0x00030000  {  ; RW data
   . ANY (+RW +ZI)
  }
}
LR_IROM2 0x00080000 0x00080000  {
  ER_IROM2 0x00080000 0x00080000  {  ; load address = execution address
    base64.o (+RO)
    ....o (+RO)
    ....o (+RO)
    ....o (+RO)
    ....o (+RO)
    ....o (+RO)
    ....o (+RO)
    ....o (+RO)
    ....o (+RO)
    ....o (+RO)
  }
}

В этом проекте установлено не стирать ( Do not Erase ) перед прошиванием. Для того чтобы можно было зашить на чип сразу несколько проектов.
В данном случае, сначала прошиваем boot-проект, потом ..cores — проект.

Остальные цифры, я думаю, понятны из предыдущих разъяснений.

Настройка инструмента прошивки J-Link для проекта …cores 

В следующих статьях я опишу, как реализовать код boot-a и взаимодействие двух «отдельных» прошивок в рамках одного проекта.

Как прожигать — Часть 2

Как обеспечить корректно взаимодействие — Часть 3

Спасибо за внимание. 

Настройка проекта в Keil uvision5

Подробности
Категория: Микроконтроллеры STM32
Опубликовано 29. 11.2013 14:41
Автор: Admin
Просмотров: 15778

 

Сам я начинающий в этом деле, если что не так опишу, просьба сильно не пинать) 

До работы с STM микроконтроллерами, упорно изучал AVR. После приобретения своей первой платы STM32f3discovery, своим первым проектом, конечно же, хотел помигать светодиодами. Думал ща приду домой, включу и сразу начну программировать и без проблем делать всякие там проекты. Но не тут то было. После создания проекта постоянно вылетали всякие ошибки, компилятор постоянно ругался на недостающие файлы. 

Наиболее часто вылетала ошибка типа этой:

«.\Objects\Ex3.axf: Error: L6218E: Undefined symbol assert_param (referred from stm32f30x_adc.o).
Not enough information to list image symbols.
Finished: 1 information, 0 warning and 1 error messages.
".\Objects\Ex3.axf" - 1 Error(s), 497 Warning(s).
Target not created.»

После долгих попыток наконец-то удалось установить причину всех моих неудач. Ниже представлены несколько шагов, которые делаю я для создания проекта. Эти шаги облегчат процесс создание своих первых проектов на микроконтроллерах семейства STM32.

Среда Keil имеет свои «внутренние» файлы, которые она использует по умолчанию. К примеру фалы отвечающие за конфигурацию периферии и др. Для того чтобы компилятор использовал скипированные файлы необходимо сделать

1. Шаг первый – скачиваем файлы настройки контроллера

Для того чтобы настроить свой первый проект вам необходимо для начала скачать архив для вашей конкретной платы с официального сайта

www.st.com

Для своей платы STM32f3Discovery я скачал архив с примерами по ссылки

http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1576/LN1531/PF252054#

Далее распаковываем данный архив.

2. Создаем папки проекта

После этого в папке с проектом создаем 4 папки

  • cmsis – папка содержащая файлы настройки микроконтроллера;
  • pl – папка с файлами переферрий;
  • user – пользовательская папка, тут главный исполняемый файл;
  • startup – начальная инициализация/

У меня это выглядит так:

«F:\Projects\STM32\Ex4\cmsis»

«F:\Projects\STM32\Ex4\pl»

«F:\Projects\STM32\Ex4\startup»

«F:\Projects\STM32\Ex4\user»

3. Создаем аналогичные группы в среде Keil u vision

Аналогично в нашем проекте создаём группы с такими же названиями. Названия можно давать любые, но чтобы не путаться лучше такие же, как и сами папки.

Важно понимать, что создание группы в проекте это не создание аналогичных папок в папке проекта, а всего лишь группировка исполняемых файлов.

4. Копируем нужные файлы в папки проекта

Далее нам необходимо скопировать из нашего,ранее скаченного архива, следующие файлы.

В папку cmsis следующие 3 файла:

  1. » F:\Projects\STM32\Ex4\cmsis\system_stm32f30x.c»
  2. » F:\Projects\STM32\Ex4 \cmsis\system_stm32f30x.h»
  3. » F:\Projects\STM32\Ex4cmsis\stm32f30x.h»

Файл stm32f30x.h – это файл необходимый для настройки работы микроконтроллера.

В папку pl две папки из STM32F30x_StdPeriph_Driver это

 inc  и src, в которых находится куча файлов для работы с периферией.

Также в папку pl необходимо скопировать файл stm32f30x_conf.h из любого проекта.

В итоге имеем:

  1. «F:\Projects\STM32\Ex4\pl\stm32f30x_conf.h»
  2. «F:\Projects\STM32\Ex4\pl\inc\тут куча файлов h»
  3. «F:\Projects\STM32\Ex4\pl\src\ тут куча файлов c»

В папку startupкопируем следующий файл

«F:\Projects\STM32\Ex4\startup\startup_stm32f30x.s»

В папке userсоздаем наш исполняемый файл main.c

5. Добавляем файлы в проект

В среде Keil нам необходимо добавить некоторые файлы в  созданные группы.

  1. В группу cmsis добавляем один файл system_stm32f30x.c;
  2. В группу pl все си-шные файлы периферии из папки src;
  3. В группу startup файл startup_stm32f30x.s;
  4. А в папке user создаем файл main.cв ручную.

На данном этапе это выглядит так:

6. Самый главные этап создания проекта

Далее нам необходимо открыть файл stm32f30x. h и убрать комментарий со следующей строки:

/* #define USE_STDPERIPH_DRIVER*/

В результате Keil начинает использовать ваши скопированные файлы.

7. Добавляем в проект стандартную библиотеку core

Для того чтобы добавить данную библиотеку необходимо менеджере проектов выбрать пунк Run-TimeEnviroment и поставить галочку в поле CMSIS.

Далее открываем наш main.c и компилируем, если ошибок нет. Значит проект настроен верно.

  • < Назад
  • Вперёд >
Добавить комментарий

Сравнить выпуски MDK

Главная /  MDK  /  Сравнить выпуски MDK

Функция Версия МДК
Профессиональный Плюс Основные Сообщество

Комплексное решение
, включая ПО промежуточного слоя
Поддерживает все ядра микроконтроллеров и ПО промежуточного слоя Поддерживает выбранные
Cortex-M
Бесплатно для некоммерческого использования

 Запросить Цитировать  Запросить Цитировать  Запросить Цитата  Скачать

 Купить онлайн  Купить онлайн  Купить онлайн  
µVision ®
IDE с Редактор, Установщик пакета



Отладчик



Фиксированный Виртуальный Имитационные модели платформ



Виртуальная рука Оборудование



Arm ® Компилятор C/C++
Компилятор, компоновщик, Библиотеки и утилиты



Функциональный Безопасность Поддержка и расширенное обслуживание



Поддержка устройства
Рука Кортекс-M0/M0+/M3/M4/M7



Рука Кортекс-M23/M33/M35P/M55




Армв8-М Архитектура Модели
включая FastModel




Рука Секуркор ® СК000, СК300



Arm7 , Arm9 , Arm Cortex-R4*



ОСРВ и ПО промежуточного слоя
Кейл RTX5 (с полным исходным кодом)



Промежуточное ПО
Сеть IPv4, USB-устройство, файловая система, графика




Промежуточное ПО
Сеть IPv6, USB-хост, Mbed TLS




Поддержка отладки и трассировки
Отладка ULINK Переходники
ULINK-ME, ULINK2, ULINK plus , ULINK pro




Трассировка
Трассировка инструкций по потоковой передаче,
Встроенная Буфер трассировки, микробуфер трассировки




Средства расширенного анализа
Покрытие кода, Анализатор производительности,
Профилировщик выполнения, Логический анализатор




Поддержка и обслуживание
Обновления и техническая поддержка В комплекте 12 месяцев 12 месяцев 12 месяцев Только через форум

*Все устаревшие ядра поддерживаются только Arm Compiler 5.


Типы лицензий

Привязка к узлу:
Привязка к узлу позволяет использовать MDK только одному человеку в максимум два компьютера (однопользовательский). Не требуется подключение к сети.

FlexLM Плавающий:
Лицензия FlexLM позволяет разработчикам использовать MDK на нескольких компьютеры. Для получения лицензии FlexLM требуется подключение к сети.

MDK для Holtek Cortex-M0+:
MDK для Holtek Cortex-M0+ — это лицензия, оплачиваемая Холтек. Это бесплатный номер для разработчиков программного обеспечения, работающих с устройствами Holtek на основе ядра Arm Cortex-M0+.

MDK для Nuvoton Cortex-M0/M23:
MDK для Nuvoton Cortex-M0/M23 — это лицензия, оплаченная Нувотон. Это бесплатный номер для разработчиков программного обеспечения, работающих с устройствами Nuvoton на базе на ядрах Arm Cortex-M0 и Arm Cortex-M23.

MDK для STMicroelectronics STM32F0, STM32G0 и STM32L0:
MDK для STMicroelectronics STM32F0, STM32G0, а STM32L0 — лицензия, оплаченная STMicroelectronics. Это бесплатное использование для разработчики программного обеспечения, работающие с устройствами STM32 на базе ядер Arm Cortex-M0 и Arm Cortex-M0+.

Тип лицензии Версия МДК
Профессиональный Плюс Основной
Блокировка узла
Упаковка, вечная МДК-ПРО МДК-ПЛЮС МДК-ARM-ES
Загрузка, бессрочная МДК-ПРО-ЛК МДК-ПЛЮС-LC МДК-ARM-ES-LC
Пакет, срок годности 1 год МДК-ПРО-Т МДК-ПЛЮС-Т МДК-ARM-ЕС-Т
Загрузка, срок действия 1 год МДК-ПРО-Т-ЛК МДК-ПЛЮС-Т-ЛК МДК-ARM-ES-T-LC
FlexLM Плавающий
Упаковка, вечная МДКПР-КТ-40000 МДКПЛ-КТ-40000 МДКЭС-КТ-40000
Загрузка, вечная МДКПР-КД-40000 МДКПЛ-КД-40000 МДКЭС-КД-40000
Пакет, срок годности 1 год МДКПР-КТ-40001 МДКПЛ-КТ-40001 МДКЭС-КТ-40001
Скачать, 1 год ограничен МДКПР-КД-40001 МДКПЛ-КД-40001 МДКЭС-КД-40001

Системные требования

Все выпуски MDK предназначены для 64-разрядных версий Microsoft Windows и имеют одинаковые системные требования.

Важная информация

Этот сайт использует файлы cookie для хранения информации на вашем компьютере. Продолжая использовать наш сайт, вы согласие на использование наших файлов cookie.

Изменить настройки

Обновление политики конфиденциальности

Политика конфиденциальности Arm была обновлена. Продолжая использовать наш сайт, вы соглашаетесь с политикой конфиденциальности Arm. Политика. Пожалуйста, ознакомьтесь с нашей Политикой конфиденциальности, чтобы узнать больше о нашем сборе, использовании и передаче
ваших данных.

Создание нового проекта STM32 в учебном пособии Keil uVision 5

В этом учебном пособии мы увидим, как создать проект в KEIL MDK uVision 5 для микроконтроллеров на базе STM32 ARM Cortex-M. Это для новичков, которые хотят начать программировать STM32 с помощью Keil. Это руководство также применимо ко всем поддерживаемым устройствам семейства STM32, а именно. STM32F0/F1/F2/F4/F7/и т. д./. Keil uV 5 сильно отличается от более старого Keil uV4. В uVision 5 встроен установщик пакетов, который используется для установки определенных пакетов семейства MCU и других библиотек. Чтобы создать проект для микроконтроллера STM32, вам сначала нужно установить Пакеты программного обеспечения MDK5 для вашего семейства микроконтроллеров. Либо вы можете загрузить его отдельно, либо сделать это из IDE. Я рекомендую добавлять пакеты программного обеспечения с помощью IDE.

В основном можно создать три (или более?) типа проектов STM32 Keil:

  1. Тот, который использует только CMSIS (ядро).
  2. Тот, который основан на стандартной периферийной библиотеке.
  3. Наконец, тот, который основан на библиотеке HAL (уровень аппаратной абстракции).

В этом уроке мы увидим, как создать проект STM32F103C8 Keil uv5 на основе CMSIS и SPL в качестве примера, но он будет работать точно так же для STM32F0, STM32F4 и других семейств. Я расскажу о проектах на основе HAL в другом уроке.

1) Установка необходимого программного пакета STM32 Keil

Если он уже установлен, вы можете ПРОПУСТИТЬ это.

Шаг A. Загрузите последнюю версию Keil MDK uVision5 с веб-сайта Keil.

Шаг B. Установите Keil uVision 5 по пути по умолчанию.

ШАГ C. Откройте Keil 5 и щелкните значок «Установщик пакетов», как показано ниже:

ШАГ D. В левой половине окна в разделе «Устройства» введите «STM3F103C8»
( или другое имя устройства в зависимости от устройства, присутствующего на вашей макетной плате) в поле поиска и выберите MCU в списке ниже. Теперь в правой половине окна нажмите кнопку «Установить», которая находится справа от «Keil: STM32F1xxx_DFP» и «Keil: STM32NUCLEO_B». Повторите этот шаг, если хотите добавить поддержку другого семейства устройств. После этого подождите, пока установщик пакета завершит загрузку необходимых файлов пакета для выбранного MCU.

Кроме того, вы можете вручную загрузить пакет программного обеспечения и установить его непосредственно из пакетов программного обеспечения MDK5. Он будет присутствовать в разделе «KEIL-> STMicroelectronics STM32F1 Series Device Support, Drivers». В целом для устройств STM32Fx.

ШАГ E. После установки из Pack Installer вы получите подтверждение на повторную загрузку пакетов. Нажмите «Да», как показано ниже:

2) Пошаговое руководство

Итак, теперь у нас установлены необходимые пакеты для создания нашего первого проекта STM32 в Keil 5. Просто следуйте шагам, указанным ниже, чтобы создать новый проект в Keil uV 5 или если ваш проект не работает должным образом:

Шаг 1.

Откройте Keil IDE, в главном меню выберите «Проект->Новый проект uVision…», и откроется окно с запросом на сохранение нового проект. Введите желаемое имя проекта и сохраните.

Шаг 2.

После этого появится новое окно, как показано ниже. Убедитесь, что в первом раскрывающемся списке выбрано «Пакеты программного обеспечения». В поле поиска под ним введите «STM32F103C8», а затем выберите устройство из списка ниже. Например: STM32F103C8 для STM32 Blue Pill, STM32F103RB для Nucleo-F103RB, STM32F030R8 для Nucleo-F030R8 и так далее.

Наконец, нажмите «ОК».

Шаг 3.

A. Для CMSIS:
В окне «Управление средой выполнения» установите флажки «ЯДРО» в разделе «CMSIS» и «Запуск» в разделе «Устройство». Если вы хотите выбрать любые другие библиотеки, вы можете сделать это, установив соответствующие флажки. Выбор «Автозагрузка» автоматически добавит все необходимые файлы запуска / загрузки, необходимые для устройства STM32F1xx, поэтому нам не нужно импортировать их из внешних источников. Выбор библиотек может быть изменен в любое время позже.

B. Для стандартной библиотеки периферийных устройств (SPL):
Если вы хотите использовать SPL, выберите необходимые компоненты библиотеки периферийных устройств. Обратите внимание, что некоторые компоненты также имеют зависимости, поэтому вам также потребуется включить зависимые компоненты. За. Например. GPIO нуждается в RCC для включения часов.

Шаг 4.

Теперь нажмите кнопку «Параметры цели», как показано ниже:

Убедитесь, что настройки совпадают, как показано ниже.

Шаг 5.

Теперь перейдите на вкладку «Вывод». Если вы хотите сгенерировать шестнадцатеричный файл, вы можете установить флажок «Создать шестнадцатеричный файл». Вы также вводите подходящее имя для исполняемого выходного файла.

Шаг 6.

Затем щелкните вкладку «Компоновщик» и на этой вкладке установите флажок «Использовать макет памяти из целевого диалогового окна».

Шаг 7.

Теперь на вкладке «Отладка» выберите ST-LINK в качестве отладчика, так как он наиболее распространен для отладки и программирования STM32. Наконец, нажмите «ОК», чтобы применить настройки и закрыть окно.

Шаг 8.

Теперь на панели навигации источника в левой области щелкните правой кнопкой мыши «Исходная группа 1» и выберите «Добавить новый элемент в группу «Исходная группа 1»».

Шаг 9.

Появится новое окно для добавления элемента, как показано ниже. Выберите «Файл C (.c)» или «Файл C++ (.cpp)», затем введите имя файла в текстовом поле справа от «Имя:» и нажмите «Добавить».

Шаг 10.

Теперь вы можете написать свой код в редакторе. Чтобы скомпилировать вашу программу, нажмите клавишу «F7» или в главном меню выберите «Проект->Создать цель». Чтобы проверить наличие ошибок компиляции, вы можете посмотреть вывод сборки в нижней части главного окна. Два скриншота Keil MDK uVision 5 приведены ниже.

A. Для основного проекта CMSIS:

B. Для проекта на основе стандартной периферийной библиотеки :

)

все: Я обновил свою версию keil MDK до последней версии V5. 37, а затем обнаружил, что проект больше не может собираться. поскольку V5.37 не поддерживает компилятор 5 и устанавливает компилятор по умолчанию на компилятор 6, я установил компилятор 5 (версия компилятора 5, V5.06 update7) с независимым патчем, а затем добавил компилятор 5 в keil , установите компилятор 5 в качестве компилятора по умолчанию, но keil не может собрать проект, постройте вывод следующим образом:

 *** Использование компилятора «V5.06 update 7 (сборка 960)», папка: «C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin»
Построить цель "LED"
сборка startup_stm32f40_41xxx.s...
startup_stm32f40_41xxx.s: Ошибка: A9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
startup_stm32f40_41xxx.s: проверьте правильность сведений о лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
startup_stm32f40_41xxx.s: - ARMLMD_LICENSE_FILE: не установлено
startup_stm32f40_41xxx.s: - LM_LICENSE_FILE: не установлен
startup_stm32f40_41xxx. s: - ARM_TOOL_VARIANT: не установлено
startup_stm32f40_41xxx.s: - ARM_PRODUCT_PATH: не установлено
startup_stm32f40_41xxx.s: - Местоположение продукта: продукт не найден
startup_stm32f40_41xxx.s: — Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
startup_stm32f40_41xxx.s: — Выбранный вариант инструмента: mdk_lite
startup_stm32f40_41xxx.s: Продукт: неизвестен
startup_stm32f40_41xxx.s: Компонент: Компилятор ARM 5.06, обновление 7 (сборка 960)
startup_stm32f40_41xxx.s: Инструмент: ArmAsm [4d35fa]
компиляция delay.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5. 06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция main.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5.06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция stm32f4xx_syscfg.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5. 06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция usart.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5.06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция sys.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5. 06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция stm32f4xx_rcc.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5.06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция stm32f4xx_usart.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK.  Дополнительная информация доступна по адресу:
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5.06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция led.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5. 06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция разное.с...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5.06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция system_stm32f4xx.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK.  Дополнительная информация доступна по адресу:
 Если вам нужна дополнительная помощь, предоставьте этот полный отчет об ошибке своему поставщику.
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5.06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция stm32f4xx_gpio.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
 Если вам нужна дополнительная помощь, предоставьте этот полный отчет об ошибке своему поставщику.
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5. 06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
компиляция stm32f4xx_it.c...
Ошибка: C9511E: Не удалось определить текущий набор инструментов. Убедитесь, что ARM_TOOL_VARIANT установлен правильно.
Проверьте правильность сведений о вашей лицензии в диалоговом окне «Управление лицензиями» MDK. Дополнительная информация доступна по адресу:
 Если вам нужна дополнительная помощь, предоставьте этот полный отчет об ошибке своему поставщику.
 - ARMLMD_LICENSE_FILE: не установлено
 - LM_LICENSE_FILE: не установлен
 - ARM_TOOL_VARIANT: не установлено
 - ARM_PRODUCT_PATH: не установлено
 - Местонахождение товара: товар не найден
 - Расположение набора инструментов: C:\_AnZhuang\keil\Keil\ARMCCv506u7\Bin
 - Выбранный вариант инструмента: mdk_lite
Продукт: неизвестен
Компонент: Компилятор ARM 5.06, обновление 7 (сборка 960)
Инструмент: ArmCC [4d365d]
"..\OBJ\LED.axf" - 13 ошибок, 0 предупреждений.
Цель не создана.
Прошло время сборки: 00:00:01
 

из вывода сборки, это означает, что лицензия keil неверна. Но я пробовал все типы лицензионных кодов, которые генерируются кейгеном, и все эти лицензии не увенчались успехом.

у кого такая же проблема как у меня? и любые решения или советы попробовать? огромное спасибо.

  • c
  • arm
  • keil

У меня была та же проблема, я пытался определить путь в переменной окружения, устанавливая его в разные каталоги,…; Ни один из них не работал.

В итоге столкнулся с этой страницей собственной документации: https://developer.arm.com/documentation/ka005073/1-0/?lang=en

Попробуйте установить компилятор ARM V5 по этому пути: [Путь установки Keil]\ARM\ARM_Compiler_5.06u7

Для меня это: C:\Keil_v5\ARM\ARM_Compiler_5.06u7

Затем добавьте путь к Keil’s ArmCC Path следующим образом: Путь Keil ArmCC: добавить компилятор

1

https://developer.arm.com/documentation/ka005073/latest

Здесь говорится, что компилятор не следует устанавливать в каталог по умолчанию.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *