KEIL. Утилита. Мастер конфигурации

Мастер конфигурации — это утилита интегрированная в редактор для генерации GUI подобных элементов управления и помогает визуально управлять конфигурацией в ассемблерных, C/C++ файлах или файлах кода запуска. Аннотации мастера настройки генерируют элементы графического интерфейса. Между текстовым и визуальном режимом можно переключаться на вкладках редактора, если доступен визуальный режим для файла будет доступна вклада Мастер конфигурации.

На картинке можно видеть результат как работает мастер конфигурации, далее будет рассмотрен исходный код.

Где:

Option Параметры, которые могут быть представлены в древовидной структуре. Каждый пункт может иметь пояснительную подсказку.
Value Устанавливает значение параметра. Может содержать элементы управления для инкапсуляции данных в предопределенные раскрывающиеся списки.

Нажмите на вкладку Configuration Wizard (Мастер конфигурации) и установите параметры через графический интерфейс. Нажмите Text Editor (Текстовый редактор)  для просмотра или редактирования исходного кода.

 

Пример использования

В приведенном ниже примере кода создается Мастер конфигурации, представленный выше на картинке, и может быть частью файла инициализации:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//*** <<< Use Configuration Wizard in Context Menu >>> ***
 
 
FUNC void Setup (void) {
 
// <h> External Bus Interface (EBI)
 
//   <e1.13> Enable Chip Select 0 (CSR0)
//     <o1.20..31> BA: Base Address <0x0-0xFFF00000:0x100000><#/0x100000>
//                 <i> Start Address for Chip Select Signal
//     <o1.7..8>   PAGES: Page Size      <0=> 1M Byte    <1=> 4M Bytes
//                                       <2=> 16M Bytes  <3=> 64M Bytes
//                 <i> Selects Active Bits in Base Address
//     <o1.0..1>   DBW: Data Bus Width   <1=> 16-bit     <2=> 8-bit
//     <o1.12>     BAT: Byte Access Type <0=> Byte-write
//                                       <1=> Byte-select
//     <e1.5>      WSE: Enable Wait State Generation
//       <o1.2..4>   NWS: Number of Standard Wait States <1-8><#-1>
//     </e>
//     <o1.9..11>  TDF: Data Float Output Time <0-7>
//                 <i> Number of Cycles Added after the Transfer
//   </e>
  _WDWORD(0xFFE00000, 0x010024A9);   // EBI_CSR0: Flash
 
//   <e1.13> Enable Chip Select 1 (CSR1)
//     <o1.20..31> BA: Base Address <0x0-0xFFF00000:0x100000><#/0x100000>
//                 <i> Start Address for Chip Select Signal
//     <o1.7..8>   PAGES: Page Size      <0=> 1M Byte    <1=> 4M Bytes
//                                       <2=> 16M Bytes  <3=> 64M Bytes
//                 <i> Selects Active Bits in Base Address
//     <o1.0..1>   DBW: Data Bus Width   <1=> 16-bit     <2=> 8-bit
//     <o1.12>     BAT: Byte Access Type <0=> Byte-write
//                                       <1=> Byte-select
//     <e1.5>      WSE: Enable Wait State Generation
//       <o1.2..4>   NWS: Number of Standard Wait States <1-8><#-1>
//     </e>
//     <o1.9..11>  TDF: Data Float Output Time <0-7>
//                 <i> Number of Cycles Added after the Transfer
//   </e>
  _WDWORD(0xFFE00004, 0x040034A5);   // EBI_CSR1: RAM
 
//   <q1.4>        DRP: Data Read Protocol
//                      <0=> Standard Read
//                      <1=> Early Read
  _WDWORD(0xFFE00024, 0x00000010);   // EBI_MCR:  Data Read Protocol
 
  _WDWORD(0xFFE00020, 0x00000001);   // EBI_RCR:  Remap Command
 
// </h>
 
// <o> Program Entry Point
  PC = 0x04000000;
 
}
 
// <s> Change ID
// <s1.30> Change Password String
#define ID  "My User ID"
char pw[] = "My Password";
 
 
/*********************************************************/
/*  Example for enabling and disabling code              */
 
// <c1> Use MY_CPU_VARIANT
// <i> Use MY_CPU_VARIANT, and set the include file
#define MY_CPU_VARIANT
#include "MyCpuVariant.h"
// </c>
 
// <!c1> Disable log
// <i> Disable log file generation
#define _USE_LOG
// </c>
 
// <c1>  Example of inconsistent comment
// <i> a mix of commented and uncommented lines in the block create an inconsistency
 
// This type of comment, mixed with uncommented lines, creates the inconsistency
/* You can use this type of comment without creating an inconsistency */
 
   do_whatever;              // adding this type of comment here is allowed
 
// </c>
 
 
//*** <<< end of configuration section >>>    ***

Аннотации мастера конфигурации

Аннотации это  элементы и  модификаторы которые создают GUI подобные элементы. Применяются следующие правила:

  • Аннотации записываются как комментарии в коде.
  • Секция «Мастер настройки» должна начинаться с первых 100 строк кода и должна начинаться строчкой:
    // <<< Use Configuration Wizard in Context Menu >>>
    

    Необязательно, секция может явно заканчиваться:

    // <<< end of configuration section >>>
    
  • После элемента аннотации следует модификатор. Однако, элемент маркированный с символом § может иметь значение пропуска для перехода нескольких значений (или строк в <c> и <! c>).
  • Символы пробела игнорируются в элементах или модификаторах.
  • Избегайте использования < or > в строках Мастера конфигурации кроме включения аннотаций к элементам.

В таблице перечислены аннотации мастера конфигурации:

Элемент Текст Описание
<c>§ Да Включение кода: создает элемент управления флажок который может закомментировать или раскомментировать код. Все линии, в том числе с пробелами, комментируются двойным слешем (//)  при первом найденном символе когда флажок выключен.Красный текст в мастере указывает на несогласованность. Не вставляйте этот элемент.
<!c>§ Да Выключение кода:создает элемент управления флажок который может закомментировать или раскомментировать код. Все линии, в том числе с пробелами, комментируются двойным слешем (//)  при первом найденном символе когда флажок включен. Красный текст в мастере указывает на несогласованность. Не вставляйте этот элемент.
</c> Нет Конец блока включение/выключение кода, начинается с  <c> или <!c>
<h> Да Заголовок: следующие опции относятся к этой группе.
<e>§ Да Заголовок с возможностью включения:следующие опции относятся к группе, которую можно включить с помощью флажка.
<e.4>§ Да Заголовок с возможностью включения: изменяет определенный бит (бит 4, в этом примере).
</h> или </e> Нет Окончание блоков заголовок или заголовок с возможностью включения.
<i> Да Подсказка для предыдущего элемента.
<q>§ Да Опция для битовых значений, которые можно установить с помощью флажка.
<o>§ Да Опция с выбором или номером.
<o.4..5>§ Да Изменяемый диапазон бит (пример: бит 4 — 5)
<o.4>§ Да Изменяемый один бит (пример: бит 4).
<s>§ Да Опция строка ASCII.
<s.10>§ Да Опция строка ASCII ограниченная по размеру в 10 символов
Модификатор Текст Описание
<0-31> Нет Диапазон значений для полей параметров.
<0-100:10> Нет Диапазон значений для полей параметров с шагом 10.
<0x40-0x1000:0x10> Нет Диапазон значений в шестнадцатеричном формате и шаг 10.
<0=> Да Значение и текст для выбора.
<#+1>   <#-1>
<#*8>   <#/3>
Нет Изменение значения (add, sub, mul, div) до того, как число будет объединено в поле.

Оставить ответ