据说工程目录有中文就不会提示了。步骤:
1、首先打开Keil软件,并打开您的工程。
2、然后选择“View”菜单,在下拉菜单中单击“Register”或“Memory”选项,分别打开寄存器窗口和存储器窗口。
3、最后在寄存器窗口中,您可以查看当前CPU中各种寄存器的值,这些寄存器包括通用寄存器、状态寄存器等。这将帮助您了解代码运行过程中寄存器的变化情况。
4、在存储器窗口中,您可以查看内存中特定位置的值。通过在地址栏中输入一个地址,可以查看该地址处存储的数据,包括程序指令、变量值等。这将帮助您调试由于内存读写问题而引起的错误。
5、在调试模式下,您可以在程序执行过程中停止程序运行,并在寄存器和存储器窗口中查看当前寄存器和存储器的值。这样可以帮助您确定代码中存在的问题。
warning: #550-D: variable "d" was set but never used
描述变量'd'定义但从未使用或者是虽然这个变量你使用了但编译器认为变量d所在的语句没有意义编译器把它优化了解决仔细衡量所定义的变量d是否有用
若是认定变量d所在语句有意义那么尝试用volatile关键字修饰变量d,若是真的没有用那么删除掉以释放可能的内存
warning: #1-D: last line of file ends without a newline
描述:
文件最后一行不是新的一行
编译器要求程序文件的最后一行必须是空行想了半天没想通为什么要这样解决可以不理会若是觉得出现警告不爽那么在出现警告的文件的最后一行敲个回车空出一行
warning: #111-D: statement is unreachable
描述:
声明不可能到达多出现在这种场合
int main(void)
{
while(1) //
无限循环
,
这在不使用 *** 作系统的程序中最常见
Keil⼯具_更改⽂件只读属性
1 前⾔
Keil给⽤户留了⼀个插⼊⾃定义组件的选项。通过插件⽤户可以使⽤外部的编辑器(如Notepad++、VScode等),也可以添加其他⾃定义功能。可以参考这篇⽂章。
为了避免键盘误 *** 作破坏代码,我习惯于锁定(只读)已完成的源⽂件。但每次都要在资源管理器修改属性很⿇烦。本⽂介绍的这个批处理可以在Keil软件内轻松⾃由切换源⽂件的只读状态。(⽹上查了许久都找不到,只能⾃⼰写了 )
插件使⽤批处理,理论上不限定软件版本。IAR没有测试,如果参数⼀致也是可⾏的。
2 效果
先来看看效果
3 快速开始
31 代码
复制代码到⼀个新建的txt⽂件中,更改后缀名为bat,放到任意⽂件夹下。
@echo off
attrib -A %1 /s
for /f %%a in ('attrib %1') do (if "%%a"=="R" (attrib -R %2 /s && echo Unlocked) else (attrib +R %2 /s && echo Locked))
exit
32 设置
打开Keil的tools->customize tools menu菜单可以添加⽤户⾃定义的菜单选项。如下图所⽰:
Menu Content:锁定当前⽂件
Command:C:\Software\Keil_V5\Tools\更改只读属性\lockbat
Arguments:!E !E
Menu Content:锁定所有⽂件
Command:C:\Software\Keil_V5\Tools\更改只读属性\lockbat
Arguments:%P
记得勾选Run Minimized项,这样就不会有批处理的⿊窗d出。
4 相关说明
41 批处理相关知识
411 显⽰或更改⽂件属性。
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]
+ 设置属性。
- 清除属性。
R 只读⽂件属性。
A 存档⽂件属性。
S 系统⽂件属性。
H 隐藏⽂专件属性。
[drive:][path][filename]指定要处理的⽂件属性。
/S 处理当前⽂件夹及其⼦⽂件夹中的匹配⽂件。
/D 也处理⽂件夹
412 给批处理脚本传递参数
批处理⽂件中可引⽤的参数为%0-%9,%0是指批处理⽂件的本⾝,也可以说是⼀个外部命令;%1-%9是批处理参数,也称形参。我们来新建⼀个⽂件,⽂件命名为testbat,⽂件内容如下:
@echo off
echo param[0] = %0
echo param[1] = %1
echo param[2] = %2
echo param[3] = %3
echo param[4] = %4
echo param[5] = %5
echo
pause
在控制台运⾏,并且处传⼊参数,运⾏结果如下:
> testbat 1 2 3 4
param[0] = testbat
param[1] = 1
param[2] = 2
param[3] = 3
param[4] = 4
param[5] =
请按任意键继续
pause>nul和pause
pause就是暂停命令,执⾏时会在命令⾏窗⼝显⽰请按任意键继续 并等待你按键。pause > nul的作⽤是同样的,区别是不显⽰请按任意键继续 这些字,nul相当于空⽂件,把这些⽂字隐去了。同样是等待你按键。
>是重定向符(将输出的内容重定向到其它的设备),例如echo hello >c:\1txt把hello重定向到c:\1txt,如果c:\1txt不存在则新建。nul是空设备。
echo off关闭回显;@echo off加了@就是连本⾝也不显⽰。
413 Bat批处理之for详解
FOR /F ["options"] %variable IN ('command1') DO command2 [command-parameters]
for、in和do是for语句的关键字,它们三个缺⼀不可;
in之后,do之前的括号不能省略;
关于%variable要注意:%a,%%a是for循环时⽤的。%a是在CMD直接执⾏时⽤的,%%a是在BAT脚本中⽤的。%a%是普通变量。
options可以为:delims=XX(指分隔符集);tokens=x,y,m-n(指每⾏的哪⼀个符号被传递到每个迭代的 for 本⾝);skip=n(指在⽂件开始时忽略的⾏数)。
参数/f的效果:for会先读出command1执⾏后得到的所有结果,并把它作为⼀个集合,并且以每⼀⾏作为⼀个元素传⼊参数%variable。
414 批处理顺序执⾏多条命令
命令1 & 命令2 & 命令3 (⽆论前⾯命令是否故障,照样执⾏后⾯)
命令1 && 命令2 && 命令3(仅当前⾯命令成功时,才执⾏后⾯)
命令1 || 命令2 || 命令3 (仅当前⾯命令失败时,才执⾏后⾯)
415 Bat批处理之if详解
判断字符串是否相等的时候,if会区分⼤⼩写。若不想区分⼤⼩写,则需要if /i "字符串1"=="字符串2" 的格式。
判断两个数值之间的⼤⼩关系时,由于在批处理中>和<为重定向符号,这就意味着我们不能⽤>来表⽰⼤于,<表⽰⼩于。
EQU - 等于
NEQ - 不等于
LSS - ⼩于
LEQ - ⼩于或等于
GTR - ⼤于
GEQ - ⼤于或等于
42 customize Tools menu
关于customize Tools menu对话框的详细内容可以参考以下⽂档引⽤:
Menu Content
Text shown in the Tools menu This line may contain Key Codes and File Codes Shortcuts are defined with an ampersand ( & ) character The current selected menu line allows you to specify the options listed below
Prompt for Arguments
If enabled, a dialog box opens at the time you invoke the menu item that allows you to specify the command line arguments for the user program
Run Minimized
Enable this option to execute the application with minimized window
Run Independent
If enabled, µVision will not wait for the completion of the external application If disabled, µVision waits until the external application terminates The output of the external application will be written in the Output Window — Build page The output can be made clickable to jump to a specific location in a source code The output format shall be same as described in Clickable Output section in User dialog Command
Program file that is executed with the selected menu item You can use environment variables as described in Key Sequences to pass path arguments
Initial Folder
Current working folder for the application program If this entry is empty, µVision uses the base folder of the project file
Arguments
Command line arguments that are passed to the application program You may use Key Sequences to pass arguments
All Entries
Export or Import Tools menu customization settings Use this to share current settings across PCs
43 Argument
关于Argument可以参考,本⽂⽤到的参数有:
符号意义例⼦
!E带有扩展名和相对路径的⽂件名\main\mainc
%P当前项⽬的⽂件名PROJECT1UVPROJX
关于图上Keil的其他插件,有问题欢迎咨询。
5 总结
第⼀次在博客园发布⽂章,由于博主能⼒有限,⽂中可能存在描述不正确,欢迎指正、补充!感谢您的阅读。如果⽂章对您有⽤,那么请轻轻点个赞,以资⿎励。
¥
59
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
Keil工具_更改文件只读属性
Keil⼯具_更改⽂件只读属性
1 前⾔
Keil给⽤户留了⼀个插⼊⾃定义组件的选项。通过插件⽤户可以使⽤外部的编辑器(如Notepad++、VScode等),也可以添加其他⾃定义功能。可以参考这篇⽂章。
为了避免键盘误 *** 作破坏代码,我习惯于锁定(只读)已完成的源⽂件。但每次都要在资源管理器修改属性很⿇烦。本⽂介绍的这个批处理可以在Keil软件内轻松⾃由切换源⽂件的只读状态。(⽹上查了许久都找不到,只能⾃⼰写了 )
第 1 页
插件使⽤批处理,理论上不限定软件版本。IAR没有测试,如果参数⼀致也是可⾏的。
2 效果
先来看看效果
3 快速开始
31 代码
复制代码到⼀个新建的txt⽂件中,更改后缀名为bat,放到任意⽂件夹下。
@echo off
attrib -A %1 /s
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)