Keil的配置向导
配置向导
??配置向导是一个集成的编辑器实用程序,用于在汇编、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 >>>
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!