Keil的配置向导

2023-12-18 14:58:19

配置向导

??配置向导是一个集成的编辑器实用程序,用于在汇编、C/ c++或初始化文件中生成类似gui的配置控件。使用源代码中的配置向导注释来生成控件。

官方例子

在这里插入图片描述

名称含义

  • Option?是设备属性,可以用树状结构表示。每个项目都可以有一个解释性的工具提示。
  • Value?设置选项值。可以包含在预定义下拉列表中封装数据的控件。

单击“配置向导”选项卡,通过图形控件设置设备选项。单击“文本编辑器”选项卡以查看或更改源代码。

以下是上述向导的注释性代码

//*** <<< 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";

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

官方注释

在这里插入图片描述

  • 注释在代码中被写成注释。

  • 默认情况下,修改注释后面的下一个数字字符串。标记为 § 的项可以后跟一个跳过值。跳过值跳过许多项。该示例修改了注释后面的第二个数字。

    <o1>
    
  • 修饰语项后面可以跟一个文本。

  • 项目或修饰符中的空白字符将被忽略。

  • 在描述前面使用设备数据表中的符号名称是一种良好的做法。

标签描述

使用文件配置导向代码的开头和结尾,分别加上这两句。配置向导部分必须在前100行代码中开始,并且必须以以下注释行开始:

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

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

<c>...</c><!c>...</c>?描述:创建一个复选框来取消注释或注释代码。<c>是勾上复选框时,代码启用,<!c>则相反,勾上时,代码注释。

//<c> 选框名称
#define DEMO 1
//</C>

扩展:可以用<C#>,#代表数字,如<C1>,<C2>。代表着,代码从第几行受<C#>控制,行数从0行开始计数,如<C1>下所列,它在配置中只能控制第一行和后面的启用或注释。而第0行不受控制。

//<C1> 选框名称
#define DEMO 1	// 第0行
#define DEMO 2	// 第1行
//</c>

<h>...</h>?描述:以下选项属于一个组。一般内部嵌套着<c>之类的。

//<h> 标签名称
//<c> 选框名称
#define DEMO 1
//</C>
//<c> 选框名称
#define DEMO 2
//</C>
//</h>

<e>...</e>?描述:以下选项属于一个组,可以通过复选框启用。勾选复选框时,第一个数据变成1,取消时恢复为0。有多个数据时,也只会修改第一个。还有就是<e>标签内的,例如<c>复选框,只有<e>这个上级的复选框勾选上了,才能控制勾选内部的<c>复选框,否者显灰色,无法勾选。

//<e> 选框名称1
#define NUM_DEMO 0x00
//<c> 选框名称2
#define Num 1
///c>
//</e>

扩展:可以用<e#1.#2>,#1,#2分别代表着数据,如:<e0.2>,<e1.3>,#1处数字,代表着第几个数据(从0开始算),#2处数字代表着,数据的第几位。

//<e0.2> 选框名称
#define NUM_DEMO (0x10,0x20)//第0个数据 第1个数据
//</e>
//<e1.3> 选框名称
#define NUM_DEMO1 0x00		//第0个数据
#define NUM_DEMO2 0x00		//第1个数据
//</e>

在上述程序中

  • 当<e0.2>复选选框被勾选时,第0个数据,也就是NUM_DEMO,的数据0x10的第3为置1,也就是被改变成0x14。

  • 当<e1.3>复选选框被勾选时,第1个数据,也就是NUM_DEMO2,的数据0x00的第3为置1,也就是被改变成0x08。

取消勾选时对应的为会被置回为0

<i>?描述:上一项的工具提示帮助文本。在程序的案例中,<i>在<h>下面,所以到时候在配置向导时,除了<h>的名称外,还会有<i>的详细描述。

//<h> 标签名称
//<i> 标签的具体描述,此处省略100字...
// 代码主体
//</h>

<o>?描述:往下的第1个数据在配置向导中可直接输入改变0x00000000(4字节),可控制数值的。并不是上面标签一样只能控制复选框的是否勾选。

//<o> 数值框名称
#define NUM_DEMO 0x00000000

扩展:

  • 位的全部控制。可以用<o#>,#代表数字,如<o0>,<o1>。代表着第几个数据,可以参考上面类似的。
  • 位的单独控制。可以用<o#1,#2>,#1,#2分别代表着数据,如:<o0.2>,<o1.3>,#1处数字,代表着第几个数据(从0开始算),#2处数字代表着,数据的第几位。跟<e#1.#2>用法一样。
  • 还能这样,做到局部位数可控制。<o#1.#2…#3>,代表着允许修改第#1个数据的第#2到#3之间的位数。

<s>?描述:选项,包含ASCII字符串条目。往下的第1个字符串数据在,在向导配置为文中框形式,可以直接修改字符串。

//<s> 文字框名称
#define STR_DEMO "demostr"

修饰符

在下面中十进制和十六进制都可以使用

<0-31>?描述:选项字段的取值范围。超过最大范围值的,强制取最大值。如程序举例:

//<o> 限定数值  <0x00-0x0F>
#define NUM 0x00

<0-30:10>?描述:选项字段的取值范围,规定了指定的步进量。不按步进量输入的,回退上一个合规的数值。

//<o> 限定数值  <0x00-0x0F:0x3>
#define NUM 0x06

<0=> 选项描述?描述:值和用于选择的文本,用于<u>组成下拉框<u>。当选择右边的文字下拉框后,就赋值等号左边的值,给第一个数据。

//<o> 下拉数值  <0x00=> 1M Byte <0x01=> 4M Bytes <0x02=> 16M Bytes <0x03=> 64M Bytes
#define NUM 0x00

<#+1> <#-1> <#*8> <#/3>?描述:在将数字合并到字段之前修改值(add, sub, mul, div)。就是对可以对在向导配置中输入的做一个偏移之类的计算。

//<o> 偏移数值		<0x00-0x08> <#-0x01>
#define NUM 0x00000000

在上面的程序中,在向导配置中允许用户输入的0x00~0x08后,在减去0x01,就输入给第一个数据也就是NUM定义。

其它帮助

如果还是不太了解的,也可以查看Keil中,原文讲解。在图中所在位置。不过“Configuration Wizard”的标签要出来,文件内容里要有下面的注释代码。

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

在这里插入图片描述

文章来源:https://blog.csdn.net/m0_60313295/article/details/135060276
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。