调试相关知识

KEIL

快捷键

默认快捷键快捷键
剪切整行Ctrl + L
大小写变换Ctrl / Ctrl+Shirt + U
自由选择范围Alt+Shirt+鼠标光标
跳转书签F12
缩进Tab
取消缩进Shirt+Tab
设置自定义快捷键快捷键
Edit:Insert/Remove Bookmark书签Ctrl + Shift + E
Edit:Go to Next Bookmark跳转书签Ctrl + E
Edit:Clear ALL Bookmark清理所有书签Ctrl + Shift +Alt + E
Edit:Advanced:Comment Selection多行注释Ctrl + Q
Edit:Advanced:UnComment Selection取消多行注释Ctrl + W
Edit:Outing:Collapse ALL Definitions全部折叠Ctrl +Shift+ Q
Edit:Outing:Expand ALL Definitions全部展开Ctrl +Shift+ W

实用小技巧

  • 关闭编译声音

project > options for target>user选项卡最下面有个beep when compelet去掉钩就行了

  • 除去L16警告

在这里插入图片描述

黑色背景

在这里插入图片描述

复制进 global.prop 里

# properties for all file types
indent.automatic=1
virtual.space=0
view.whitespace=0
view.endofline=0
code.page=936
caretline.visible=1
highlight.matchingbraces=1
print.syntax.coloring=1
use.tab.color=1
create.backup.files=0
auto.load.ext.modfiles=0
save.prj.before.dbg=0
save.files.before.dbg=0
function.scanner.project=1
function.scanner.files=1
function.scanner.modules=1

# properties for c/cpp files
syntax.colouring.cpp=1
use.tab.cpp=0
tabsize.cpp=3
line.margin.visible.cpp=1
fold.cpp=1
monospaced.font.cpp=1

# properties for asm files
syntax.colouring.asm=1
use.tab.asm=0
tabsize.asm=4
line.margin.visible.asm=1
monospaced.font.asm=1

# properties for other files
use.tabs=0
tabsize=4
line.margin.visible.txt=0
monospaced.font.txt=1

# setting for code completion and syntax check
cc.autolist=1
cc.highlightsyntax=1
cc.showparameters=1
cc.triggerlist=1
cc.triggernumchars=3
cc.enter.as.fillup=0
cc.usealpha4inactcode=1
cc.alphavalue=50

# autosave for editor files
autosave=0
autosave.interval=5

# vertical edge at right margin
edge.mode=0
edge.column=80


# Specification for text selection and caret line
selection.fore=#000000
selection.back=#86C7F7
caret.fore=#FFFFFF
caret.back=#400000

# Color for vertical edge
edge.colour=#00FF00

# C/C++ Editor files
template.cpp="#define","#define |";"#if","#if |\r\n\r\n#endif";\\
    "#include","#include ";"Header","// Header:\r\n// File Name: |\r\n// Author:\r\n// Date:\r\n";\\
    "continue","continue;";"do","do\r\n{\r\n\t// TODO: enter the block content here\r\n\t\r\n\t|\r\n} while ();\r\n";\\
    "enum","enum |\r\n{\r\n\t\r\n};\r\n";"for","for(|;;)\r\n{\r\n}";\\
    "fpointer_type","typedef int (* |F)();\r\n";"function","void function(|)\r\n{\r\n\r\n}\r\n";\\
    "if","if (|)";"ifelse","if (|)\r\n{\r\n}\r\nelse\r\n{\r\n}";\\
    "struct","struct | \r\n{\r\n\r\n};\r\n";"switch","switch (|)\r\n{\r\n\tcase:\r\n\t\tbreak;\r\n\tcase:\r\n\t\tbreak;\r\n\tdefault:\r\n\t\tbreak;\r\n}";\\
    "void","void | ();\r\n";"while","while (|)\r\n{\r\n}";\\
    
font.monospace.cpp=Courier New
style.cpp.32=font:Courier New,size:12,fore:#F8F8F8,back:#0B161D
style.cpp.4=font:Courier New,size:12,fore:#FF3A83,back:#0B161D
style.cpp.10=font:Courier New,size:12,fore:#FFAA00,back:#0B161D
style.cpp.1=font:Courier New,size:12,fore:#00FF00,back:#0B161D
style.cpp.2=font:Courier New,size:12,fore:#1E9AE0,back:#0B161D
style.cpp.5=font:Courier New,size:12,fore:#FFAA00,back:#0B161D,bold
style.cpp.6=font:Courier New,size:12,fore:#55E439,back:#0B161D
style.cpp.11=font:Courier New,size:12,fore:#F8F8F8,back:#0B161D
style.cpp.9=font:Courier New,size:12,fore:#FFAA00,back:#0B161D
style.cpp.7=font:Courier New,size:12,fore:#55E439,back:#0B161D
style.cpp.34=font:Courier New,size:12,fore:#500000,back:#20FFFF
style.cpp.35=font:Courier New,size:12,fore:#FF0000,back:#FFFFFF
style.cpp.16=font:Courier New,size:12,fore:#B00040,back:#0B161D
style.cpp.12=font:Courier New,size:12,fore:#000000,back:#E0C0E0
style.cpp.86=font:Courier New,size:12,fore:#696969,back:#FFFFFF


# Asm Editor files
font.monospace.asm=Courier New
style.asm.32=font:Courier New,size:16,fore:#F8F8F8,back:#0B161D
style.asm.1=font:Courier New,size:16,fore:#1E9AE0,back:#0B161D
style.asm.2=font:Courier New,size:16,fore:#FF3A83,back:#0B161D
style.asm.3=font:Courier New,size:16,fore:#FFAA00,back:#0B161D
style.asm.4=font:Courier New,size:16,fore:#FFAA00,back:#0B161D
style.asm.5=font:Courier New,size:16,fore:#F8F8F8,back:#0B161D
style.asm.6=font:Courier New,size:16,fore:#FFAA00,back:#0B161D
style.asm.7=font:Courier New,size:16,fore:#0000FF,back:#0B161D
style.asm.9=font:Courier New,size:16,fore:#FFAA00,back:#0B161D
style.asm.10=font:Courier New,size:16,fore:#FFAA00,back:#0B161D
style.asm.11=font:Courier New,size:16,fore:#007F00,back:#0B161D
style.asm.12=font:Courier New,size:16,fore:#55E439,back:#0B161D
style.asm.8=font:Courier New,size:16,fore:#FFAA00,back:#0B161D


# Editor Text files
font.monospace.txt=Courier New
style.txt.32=font:Courier New,size:14,fore:#FFFFFF,back:#000000

编译提示

KEIL 编译警告

警告编号含义英文提示
C202未定义标识符undefined identifier
C206没有包含引用函数的头文件missing function-prototype
C129
C235条件编译#ifndef忘记写#endif
C316235unterminated conditionals
C249数据段过长SEGMENT TOO LARGE
C280定义变量,后面没有赋值‘check_value’: unreferenced local
C318打不开can’t open file
C290函数有返回值的类型,但你却没有返回一个值
C173函数定义了返回值,但在实现时没有返回实际值missing return-expression
L16某些被定义的函数,没有被使用uncalled segment
L1未解决的外部文件UNRESOLVED EXTERNAL SYMBOL
L2提到L1问题,没有添加头文件REFERENCE MADE TO UNRESOLVED EXTERNAL
L25数据类型不同DATA TYPES DIFFERENT
L104:重复定义MULTIPLE PUBLIC DEFINITIONS

MDK 编译警告

警告编号含义英文提示
#1295D函数加个voidDeprecated declaration
#550-D没有使用
#177-D声明但从未提及
#47-D重复定义
#1-D需要换新行,c语言新行结束last line of file ends without a newline

解决 编译警告

在这里插入图片描述

--diag_suppress=177,1295,550

J-Link

J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,与IAR,Keil等编译环境无缝连接

请添加图片描述

J-link调试软件命令

工具功能
J-link JTAGLoad
J-Mem
J-link STR9 Commander
J-link STM32 Unlock
J-link RTT Viewer
J-link RTT Logger
J-link RTT Client
J-link Registration
J-link RDI Config
J-link License Manager
J-link GDB Server
J-link DLL Updater
J-link Configurator
J-Flash SPI

J-link Commander 调试工具

命令功能备注
h停止运行
s单步目标芯片
ggo运行
mem32读取32位数据mem32 0x08000000 1
r重启

J-Flash 读Flash数据

1、使用J-Flash读单片机的Flash数据

请添加图片描述
2、使用J-Flash下载程序到单片机

请添加图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值