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 >>>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/254472.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云|人工智能(AI)技术解决方案

函数计算部署Stable Diffusion AI绘画技术解决方案 通过函数计算快速部署Stable Diffusion模型为用户提供快速通过文字生成图片的能力。该方案通过函数计算快速搭建了AIGC的能力&#xff0c;无需管理服务器等基础设施&#xff0c;专注模型的能力即可。该方案具有高效免运维、弹…

Ubuntu安装ARM交叉编译器

Ubuntu安装交叉编译器 更新apt # 更新apt sudo apt update安装gcc sudo apt install build-essential查看gcc版本 gcc -v下载交叉编译工具 复制到用户目录 解压 tar -xvf gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz移动到/opt/下 sudo ./gcc-linaro-5.…

天猫数据平台-淘宝天猫数据-天猫销售数据分析:11月天猫平台滑雪运动装备行业销量翻倍!

随着天气变冷、冬季来临&#xff0c;迎来了疫情后的首个滑雪季&#xff0c;加之自冬奥会结束以来&#xff0c;大众参与冰雪运动的热度持续攀升&#xff0c;因此&#xff0c;冰雪运动的需求正集中释放。 根据相关数据显示&#xff0c;11月以来&#xff0c;全国滑雪场门票预订量较…

Leetcode—746.使用最小花费爬楼梯【简单】

2023每日刷题&#xff08;六十一&#xff09; Leetcode—746.使用最小花费爬楼梯 算法思想 参考灵神 实现代码 class Solution { public:int minCostClimbingStairs(vector<int>& cost) {int n cost.size();vector<int> f(n 1);for(int i 2; i < n;…

C# WPF上位机开发(ExtendedWPFToolkit扩展包使用)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 虽然个人人为当前的c# wpf内容已经足够多&#xff0c;但是肯定还是有很多个性化的需求没有满足。比如说不够好看&#xff0c;比如说动画效果不好&a…

从人的安全价值观看企业的安全发展

文章目录 每日一句正能量前言感受之一&#xff0c;安全价值观是体现个人人生价值的最高境界&#xff0c;是人与企业和谐发展的基本保障&#xff0c;也是企业安全发展的理论导向。感受之二&#xff0c;安全价值观是企业承担社会责任的主要表现&#xff0c;是体现企业价值的根基&…

app上架-您的应用在运行时,未同步告知权限申请的使用目的,向用户索取(相机)等权限,不符合华为应用市场审核标准。

上架提示 您的应用在运行时&#xff0c;未同步告知权限申请的使用目的&#xff0c;向用户索取&#xff08;相机&#xff09;等权限&#xff0c;不符合华为应用市场审核标准。 测试步骤&#xff1a;管理-添加-点击二维码&#xff0c;申请相机权限 修改建议&#xff1a;APP在调…

天猫数据分析-天猫查数据软件-11月天猫平台饮料市场品牌及店铺销量销额数据分析

今年以来&#xff0c;饮料是快消品行业中少数保持稳定增长的品类之一。 11月份&#xff0c;饮料市场同样呈现较好的增长态势。根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年11月份&#xff0c;天猫平台上饮料市场的销量为2700万&#xff0c;环比增长约42%&#xf…

数据结构:图文详解 队列 | 循环队列 的各种操作(出队,入队,获取队列元素,判断队列状态)

目录 队列的概念 队列的数据结构 队列的实现 入队 出队 获取队头元素 获取队列长度 循环队列的概念 循环队列的数据结构 循环队列的实现 判断队列是否为空 判断队列是否已满 入队 出队 得到队头元素 得到队尾元素 队列的概念 队列&#xff08;Queue&#xff0…

【网络安全】-Linux操作系统—VMWare软件

文章目录 VMWare软件的安装选择VMWare版本下载VMWare安装过程 VMWare的常用操作创建新的虚拟机配置虚拟机启动和关闭虚拟机安装VMWare Tools VMWare的克隆和快照克隆&#xff08;Clone&#xff09;快照&#xff08;Snapshot&#xff09; 总结 VMWare是一种流行的虚拟化软件&…

物联网对接使用蓝牙还是WiFi,应该如何选择?

蓝牙是一种无线技术协议&#xff0c;可促进连接设备之间短距离的数据交换。它依赖于物理邻近性并使用2.400至2.485 GHz之间的UHF&#xff08;超高频&#xff09;无线电波。蓝牙旨在创建个人区域网络&#xff08;PAN&#xff09;并在笔记本电脑、智能手机和外围设备等计算设备之…

webview 的 title 和 url

在Appium以混合型App进行自动化操作时&#xff0c;遇到WebView时切换至WebView才能进行操作。当遇到多个WebView时&#xff0c;可以利用 title 和 url 切换至相应的 WebView。

✺ch5——纹理贴图

目录 加载纹理图像文件纹理坐标在着色器中使用纹理&#xff1a;采样器变量和纹理单元纹理贴图&#xff1a;示例程序多级渐远纹理贴图各向异性过滤环绕和平铺透视变形材质——更多OpenGL细节补充说明 纹理贴图是在栅格化的模型表面上覆盖图像的技术。 它是为渲染场景添加真实感的…

宏基因组学Metagenome-磷循环Pcycle功能基因分析-从分析过程到代码及结果演示-超详细保姆级流程

大背景介绍 生信分析,凡事先看论文,有了论文就有了参考,后续分析就有底了,直接上硬菜开干: PCycDB: a comprehensive and accurate database for fast analysis of phosphorus cycling genes - PubMed 数据库及部分分析代码github库: GitHub - ZengJiaxiong/Phospho…

docker 与 ffmpeg

创建容器 docker run -it -v /mnt/f/ffmpeg:/mnt/f/ffmpeg --name ffmpeg 49a981f2b85f /bin/bash 在 Linux 上编译 FFmpeg&#xff1a; 安装依赖库&#xff1a; sudo apt-get update sudo apt-get install build-essential yasm cmake libtool libc6 libc6-dev unzip wget下…

SpringCloud-高级篇(八)

&#xff08;1&#xff09;TCC模式 前面学了XA和AT模式&#xff0c;这两种模式最终都能实现一致性&#xff0c;和隔离性&#xff0c;XA是强一致&#xff0c;AT是最终一致&#xff0c;隔离性呢XA是在第一阶段不提交&#xff0c;基于事务本身的特性来完成隔离&#xff0c;AT则是…

Python都有什么特性,为什么适合每个人学习?详细解读来了

Python编程语言简介 Python&#xff0c;一种高层次的、解释型的编程语言&#xff0c;以其跨平台性、易读性和灵活性在全球编程界占据了重要的地位。自1991年首次发布以来&#xff0c;Python已经成为了无数程序员和企业的首选语言&#xff0c;尤其是在快速开发和原型设计方面。 …

Ansible:模块1

Ansible&#xff1a; 远程操作主机功能 自动化运维&#xff08;playbook 剧本 yaml&#xff09; 是基于python开发的配置管理和应用部署工具。在自动化运维中&#xff0c;现在是一军突起。 Ansible能批量配置&#xff0c;部署&#xff0c;管理上千台主机。类似于xshell的一…

MFC 程序执行流程

目录 MFC 程序启动 MFC 入口函数 程序执行流程总结 在Win32课程中WinMain由程序员自己实现&#xff0c;那么流程是程序员安排&#xff0c;但到了MFC中&#xff0c;由于MFC库实现WinMain&#xff0c;也就意味着MFC负责安排程序的流程。 MFC 程序启动 程序的启动&#xff0c;…

红枣期货个股(红枣期货个股:投资方向分析)

红枣期货个股介绍 红枣是我国传统的绿色健康食品&#xff0c;具有营养丰富、味道独特的特点&#xff0c;深受消费者喜爱。红枣产业链较长&#xff0c;包括种植、采摘、加工、销售等环节&#xff0c;其中期货是红枣产业不可或缺的一环。红枣期货个股作为期货交易市场上的重要投…