Конфигурационный заголовок nRF5x SDK |
![]() |
Добавил(а) microsin | ||
Конфигурационный заголовочный файл SDK (sdk_config.h) помогает управлять статической конфигурацией приложения, построенного поверх nRF5 SDK. Опции конфигурации, заключенные в этом файле, можно быстро редактировать в графической утилите (GUI wizard), сгенерированной из CMSIS Configuration Wizard Annotations. Эти стандартные аннотации декодируются ARM Keil uVision (версий 4 и 5), или могут быть обработаны open source инструментарием, написанным на Java - CMSIS Configuration Wizard [2]. Каждому модулю SDK соответствует как минимум одна опция конфигурации, которая разрешает этот модуль. Если модуль запрещен, то он не компилируется, даже когда его исходный код добавлен в проект, потому что реализация модуля добавляется операторами проверки опций препроцессора, например: //example_module.c
#include "sdk_config.h"
#if EXAMPLE_MODULE_ENABLED
...
#endif //EXAMPLE_MODULE_ENABLED При беглом просмотре содержимого хедера sdk_config.h можно увидеть, какие модули используются в приложении. [sdk_config.h и файлы линкера] Для каждого поддерживаемого MCU представляется традиционный sdk_config.h, который содержит все доступные опции конфигурации. sdk/nrf5/config/nrf52810/config/sdk_config.h для nRF52810 Для каждого поддерживаемого MCU представляются файлы линкера, предназначенные для систем разработки Segger Embedded Studio и ARM GCC. Эти файлы линкера содержат все секции, используемые модулями SDK. Для ARM GCC: config//armgcc/generic_gcc_nrf52.ld Эти файлы не обязательно используются в любом проекте SDK, но они могут предоставлять шаблон, помогающий в разработке нового приложения. [CMSIS Configuration Annotations Wizard] Мастер редактирования конфигурации (configuration wizard) генерируется из аннотаций (специально оформленных комментариев) внутри конфигурационного файла. Набор правил, по которым составляются такие аннотации, можно посмотреть в [3]. Проекты-шаблоны. В SDK содержится несколько шаблонных проектов, в которых подключены и разрешены модули SDK (с исходным кодом). Эти проекты дают хороший старт для разработки приложений на основе nRF5 SDK. Стандартные проекты. Все примеры содержат полный конфигурационный файл заголовка, в котором разрешены только используемые модули. Это конфигурационный файл содержит часть конфигурации модулей SDK, который общий для всех проектов, и часть, соответствующая специфике приложения. Добавлены все пути поиска заголовков, как и файлы исходного кода реально используемых модулей SDK. Если Вы хотите начать использовать один из модулей SDK, то необходимо разрешить его в конфигурации, и добавить его модули исходного кода (пути подключения уже присутствуют в этом файле). Сохранение полного файла конфигурации полезно при миграции на новые версии SDK. [Переназначение конфигурации sdk_config.h] Каждое определение в хедере sdk_config.h снабжено условным #define, которое добавляется только тогда, когда ранее не было определения, так что конфигурацию sdk_config.h можно просто отменить. Конфигурация, заданная в sdk_config.h, может быть отменена двумя путями: • Добавление флага/определения в проект. [Редактирование sdk_config.h из IDE] ARM Keil uVision. Эта среда разработки содержит встроенную поддержку стандарта, и когда в файле были обнаружены специальные маркеры, редактор дает возможность переключиться в графическое представление опций конфигурации. В Keil μVision V5.34 и более поздних версий при открытии в редакторе файла sdk_confi.h внизу окна редактора появляются две закладки Text Editor и Configuration Wizard, которые позволяют переключаться между текстовым и GUI-представлением конфигурации SDK. Можно также переключаться между этими вариантами горячей комбинацией клавиш Shift+F8.
Segger Embedded Studio. Здесь может использоваться интеграция с открытой Java-утилитой CMSIS Configuration Wizard [2]. Эта утилита поставляется вместе с релизом, и все примеры содержат ссылку на неё (см. "Project Macros" в опциях проекта). Для разрешения интеграции с CMSIS Config Wizard должна быть обновлена конфигурация внешних инструментов (External Tools Configuration). 1. Перейдите в меню File -> Open Studio Folder... -> External Tools Configuration. 2. В редакторе откроется файл tools.xml. 3. Вставьте следующий текст перед тегом < /tools >: < item name="Tool.CMSIS_Config_Wizard" wait="no"> < menu>&CMSIS Configuration Wizard< /menu> < text>CMSIS Configuration Wizard< /text> < tip>Open a configuration file in CMSIS Configuration Wizard< /tip> < key>Ctrl+Y< /key> < match>*config*.h< /match> < message>CMSIS Config< /message> < commands> java -jar "$(CMSIS_CONFIG_TOOL)" "$(InputPath)" < /commands> < /item>
ARM GCC. CMSIS Config Wizard (CMSIS Configuration Wizard) интегрирован с примерами файлов makefile. Чтобы открыть sdk_config.h в этой утилите, выполните команду: make sdk_config Другие IDE. Используйте стандартный редактор кода для модификации значений #define в sdk_config.h. [Ссылки] 1. SDK configuration header file site:nordicsemi.com. |