Keil配置向导——在keil中使用图形化界面编程

配置向导是集成在编辑器中通过图形控制来配置汇编语言、C/C++或初始化文件的应用程序。文件必须以特定方式书写来调用配置向导,并且必须在文件的前100行中包含以下声明。

<<< Use Configuration Wizard in Context Menu >>>

以下可选文本表示配置向导部分的结束。

<<< end of configuration section >>>

如下图所示,Option选项可以按树状结构表示,并且可以带有解释性的工具提示;Value甚至可以在下拉列表中封装数据。

Keil配置向导——在keil中使用图形化界面编程

在配置向导书写过程中,需要用到以下几条命令:

文本

描述

<h>

标题: 紧随其后的选项归为同一组。

<e>§

可以使能的标题: 紧随其后的选项归为一组,可以通过复选框使能。

<e.4>§

可以使能的标题: 修改一个指定的位(例如bit 4)。

</h> or </e>

标题或使能的结束符。

<i>

上一条项目的工具提示。

<q>§

一个将bit值显示为复选框的选项。

<o>§

创建一个能够选择或输入数据的选项

<o.4..5>§

修改选项中数字表示的位(例如bit 4bit 5)。

<o.4>§

修改数字表示的单个位。

<s>§

字符串输入选项。

<s.10>§

字符串输入选项,限制长度(10个字符)

修改器

 

描述

<0-31>

操作域的取值范围

<0-100:10>

操作字段的取值范围,步进为10(输入必须为10的整数倍)

<0x40-0x1000:0x10>

十六进制的取值范围

<0=>

用于创建可供选择的值或文本

<#+1>   <#-1>
<#*8>   <#/3>

在数值添加到字段中之前修改(加,减,乘,除)数值

注意:

通常情况下,紧跟着注释部分的下一个数或字符串将被修改。用§标记的命令可以跟随一个跳行值。例如:

<o1>

跳行值用来跳过一些命令。以上示例修改紧跟着注释的第二个数。

空白字符在命令或调节器中被忽略。

 

命令详解

需要明确,配置选项的所有内容以注释语句的形式出现在源文件中。

例如配置向导的起始

//***<<< Use Configuration Wizard in Context Menu >>>***

配置向导的结束

//***<<< end of configuration section >>>***

1、<h>与</h>命令

这两条命令之间的内容组成一个可折叠的组,形式如下:

//  <h>模数转换(ADC)

//  </h>

Keil配置向导——在keil中使用图形化界面编程

2、<e>和</e>命令

该命令具备<h>与</h>的功能,但是还带有复选框使能的功能。形式如下:

//          <e0.7>允许ADC模块

//          </e>

Keil配置向导——在keil中使用图形化界面编程

该示例中,<e0.7>中的0.7(此值即为跳行值)表示该命令控制注释行后的第0个数值的bit 7。如果不带跳行值,则默认更改第0个值的bit 0。

3、<i>命令

该命令为上一行的注释内容提供一个浮动的提示信息。示例如下:

//                 <h>转换时间=12*tad+(TS+1)*tad

//                      <i>详细内容请参考SH79F3212数据手册

//                 </h>

Keil配置向导——在keil中使用图形化界面编程

4、<q>命令

该命令将一个bit位用复选框的形式显示,示例如下:

//                 <q2.0>ADC通道配置 配置AN0为AD通道

Keil配置向导——在keil中使用图形化界面编程

5、<o>命令

创建一个能够选择或输入数据的选项,例如:

//                 <o1.5..7>ADC时钟周期 <0=>tad=2tsys

//                                     <1=>tad=4tsys

//                                     <2=>tad=6tsys

//                                     <3=>tad=8tsys

//                                     <4=>tad=12tsys

//                                     <5=>tad=16tsys

//                                     <6=>tad=24tsys

//                                     <7=>tad=32tsys

Keil配置向导——在keil中使用图形化界面编程

//                 <e0.5>允许数字比较功能

//                      <o4.0..7>ADDL = <0x0-0xFF>

//                      <o5.0..7>ADDH = <0x0-0xFF>

//                  </e>

Keil配置向导——在keil中使用图形化界面编程

//              <h>基准源开关

//                 <o3.7>基准源开关位

//              </h>

Keil配置向导——在keil中使用图形化界面编程

此时其具有<e>命令的功能。

// <o> Program Entry Point

  PC = 0x04000000;

 

该值可以随意修改。

6、<s>命令

用来创建一个字符串修改选项,有两种用法,可以不限制长度,也可以限制为指定长度,示例如下:

// <s> Change ID

// <s1.30> Change Password String

#define ID "My User ID"

char pw[] = "My Password";

Keil配置向导——在keil中使用图形化界面编程

黑色框内的内容可以进行更改。

7、修改器<0-31>

括号内为十进制数,表示被修改值的取值范围,该修改器通常以<o>配合使用。常见格式如下:

//          <o> ADDL <1-255>

Keil配置向导——在keil中使用图形化界面编程

修改结果为:

ADDL = 7;

当然,<o>命令可以指定一个跳行值,用来操作其他数字或某个数字的指定位。例如:

<o1>、<o1.4..7>等,来修改指定的部分。

8、修改器<0-100:10>

与上一个修改器功能相同,但是增加了一个步进限制,必须为冒号后面值的整数倍。器取值方式遵循如下规则:

  1. 在取值范围内时向下取整;
  2. 超过取值范围则取其极限值;

例如:

//          <o> ADDL <1-255:5>

由于限制输入取值范围为1-255,若输入4,则向下取值为1,若输入6-9,则向下取值为5,若输入小于1,则向上取值为1,若输入大于256,则向下取值为255。

修改器<0x40-0x1000:0x10>

该修改器可以参考十进制修改器。不再赘述。

9、修改器<0=>

括号内“=”前的值为写入指定数据段的值,该修改器通常与<o>命令配合使用,创建可选的下拉列表。书写格式如下:

//                 <o1.5..7>ADC时钟周期 <0=>tad=2tsys

详细内容可以参考“<o>命令”的示例内容。

10、修改器<#+1><#-1><#*8><#/3>

该修改器通常与<1-31>等数值输入型修改器配合使用,在输入值的基础上进行“加、减、乘、除”运算。书写格式如下:

//          <o> ADDL <1-255:5> <#+3>

 

配置向导使用注意事项:

  1. 跳行值表示的是修改第n个数值或字符串,而不是第n行的数值或字符串,对于单条语句操作多个数值的情况要特别注意,例如:

//    <e>一个测试项

//          <o1> ADDL <0x00-0xFF:0x01>

//    </e>

Keil配置向导——在keil中使用图形化界面编程

最终产生的代码如下:

ADDL = 0x01|0x25;

<e>与</e>创建一个可以选择使能的项,勾选后,第一个数值被修改为0x01,<o1> ADDL <0x00-0xFF:0x01>命令中输入0x25,将第二个数值修改为0x25。