keil使用详解--魔法棒


前言

我相信无论是新手还是使用keil开发了多年的开发者有很大一部分都没有了解keil的所以开发和调试功能。这篇文章旨在将博主认知范围内的所有常用功能讲解清楚。首先先介绍魔法棒中的内容


一、正文

在这里插入图片描述
在这里插入图片描述

图中魔法棒是用keil开发过程中经常用到的功能,但是你真的了解和使用过其中的全部功能吗?

1.Device

在这里插入图片描述

这个页面功能很简单,就是选择我们工程对于的芯片类型,左侧是目前支持的芯片列表,右边的文本框是芯片的英文简介,上面有一个搜索框。不知道有没有人想过,有的国产MCU不在这个列表中我们怎么用keil进行开发呢?这个问题留在后面target解释。

2.target

在这里插入图片描述

在做stm32系列单片机开发的开发者们一般不是特别关注这个页面,因为在工程建立完成后一般这个页面的相关参数就已经固定了后期也不需要再做修改。还有一个因素,这个页面跟芯片的存储结构密切相关,一般芯片厂商会给用户配置好,用户不需要关注这些。所以很多开发者对这个页面的相关功能不甚了解。
在这里插入图片描述
这部分的内容主要显示了当前芯片的型号,使用的晶振频率。这个晶振频率在实际工程中是没有起到实际作用的。下面那个operating system也没有什么作用(这是我目前了解到的情况,可能有特殊的应用)。我们肯要关注一下红色方框中的内容,这里选了一个.sfr文件,这个在进行在线调试的时候我们使用的外设寄存器列表密切相关。所有的外设寄存器信息都是从这个.sfr文件中导入的。我们也可以自己创建.sfr文件。下面展示调试状态下显示的外设信息内容:
在这里插入图片描述
下一块内容:
在这里插入图片描述
Use Cross-Module Optimization不知道是啥功能,Big Endian不能选择。下面重点介绍Use MicroLIB。
Use MicroLIB是一个c语言标准库,它编译出来的固件相比传统的库的固件更小一点,当然性能相对差一些,如果是程序存储空间比较紧张的情况下可以将这个选项打勾。下面是使用和不使用这两个选项编译出来的固件的大小对比:


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


总结:经过对比测试,发现这两个能勾选的选项要配合使用能有效的减少代码量,没有使用或主要过相关功能的开发者可以尝试使用。

下一块内容:
在这里插入图片描述
我其实是从去年才开始注意这一块的内容的,这一块的内容与代码存储以及程序跳转有密切的关系。以上图片内容是STM32配置的内容。左侧通俗点讲是程序指令和只读数据存储区的配置,startup代表程序入口地址所在的区域,左边一般配置为Flash、OTP等存储器挂载在总线上的地址区域,当然我们的程序也可以执行在RAM中,所以左边也可以配置为RAM所在的总线地址区间。右边通俗讲是可读写数据存储的区域,例如栈和堆以及程序中的可读写全局变量,这一块的配置一般在RAM上所以一般配置为RAM所在总线的地址区间。另外,如果我们有多块存储器挂载在总线上时也可以配置多块。(后续有时间我将以程序运行在RAM上为例专门讲一下如何配置这两块的内容)。

3.Output

在这里插入图片描述
这部分主要时输出文件类型选择以及输出路径的配置,这里不做过多赘述。

4.User

在这里插入图片描述
User页面很多开发者几乎都不使用或很少使用,但是这个一块的内容却为keil功能扩展提供了可能。因为它提供了执行外部命令的接口。这里提供了三种状态下执行命令,分别是在编译c/c++文件前、运行Build/Rebuild操作前和运行完Build/Rebuild后执行。下面将给出使用示例:

示例一:我们经常需要输出固件的bin文件,我们可以使用keil自带的命令在程序建立完成后执行转换命令。
在这里插入图片描述
点击编译按钮,输出如下:
在这里插入图片描述
在这里插入图片描述
示例二:示例一展示了使用现有的命令去在编译完成后执行生成bin文件的任务。实际上我们完全可以执行任意我们想要的命令,在其给出的编译的三个阶段,包括我们自己写的命令或程序。这极大的提高了我们在开发过程中的灵活性,下面在示例儿中我将展示在编译前执行我用python脚本实现的自己的命令。
我用python实现了下面简单的脚本及在vscode中的执行结果截图:
在这里插入图片描述
下面我打包成exe并配置执行
在这里插入图片描述
执行结果:
在这里插入图片描述
我们发现在编译每一个c文件前都会执行一下我们自定义的命令,这个功能是不是给了你很多启发?如果你像我一样也掌握了像python这一的第二语言,是不是在开发的过程中可以实现许多自动化的功能以实现更加高效的开发?

4.C/C++

由于篇幅所限最后再介绍一下C/C++,这一部分主要介绍一下编译器优化等级:

在这里插入图片描述
如上图,配置合适的优化等级将高效的利用编译器的功能对程序进行优化,可以大大提高程序的效率以及对存储的优化。我们大多数都是使用O2优化,当然优化会带来程序的bug,有时候优化后不是我们想要的结果,这需要我们在使用的过程中积累经验;
O0:
在这里插入图片描述
O2:
在这里插入图片描述
通过对比O0和O2的优化,可以看到代码大小得到了有效的优化。

该处使用的url网络请求的数据。


再见

这篇文章就介绍到这里把,以后有时间相关的内容将会进一步介绍。希望感兴趣的朋友可以持续关注

  • 21
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: keil是一款常用的嵌入式开发工具,而J-Link是一种常用的仿真器设备。下面我将介绍如何使用keil和J-Link进行下载。 首先,在Keil软件中打开你的工程项目,并确保你已经正确配置了目标芯片的选项。然后,点击“Project”菜单,选择“Options for Target”打开目标选项窗口。在这个窗口中,你需要选择“Debug”选项卡,并将“Use”项设置为“J-Link/J-Trace”。这样,你已经启用了J-Link仿真器作为调试工具。 接下来,将J-Link仿真器与目标设备连接好,确保连接可靠。通常,J-Link需要通过USB接口与计算机连接,并通过其他接口(如JTAG、SWD等)与目标设备连接。在连接完毕后,你可以点击Keil软件菜单的“Debug”选项,选择“Start/Stop Debug Session”开始调试会话。 在调试会话中,你可以点击Keil软件菜单的“Flash”选项,选择“Download”将编译好的二进制文件下载到目标设备中。Keil软件会自动将二进制文件通过J-Link仿真器发送给目标设备,并进行下载操作。下载完成后,你可以点击“Start/Stop Debug Session”按钮结束调试会话。 总结起来,使用Keil和J-Link进行下载的过程主要包括:配置目标选项、连接J-Link仿真器与目标设备、开始调试会话并下载二进制文件。希望以上步骤对你有所帮助。 ### 回答2: Keil是一种嵌入式开发软件,而J-Link是一种常用的支持多种芯片架构的调试和下载工具。在使用Keil进行嵌入式开发时,可以通过J-Link来下载程序到目标芯片中。 首先,确保已经安装了Keil和J-Link的驱动程序。安装完成后,将J-Link连接到目标芯片的调试接口上,例如使用JTAG或SWD接口。 打开Keil软件,点击顶部菜单栏的"Project",选择"Options for Target",再点击"Debug"标签。 在"Debug"标签下的"Use"选项中,选择"J-Link/J-Trace"作为调试器。然后在"Settings"中,根据实际连接方式选择J-Link的接口类型,例如选择"SWD"或"JTAG"。接下来,在"Device"选项中选择目标芯片的型号。 点击"OK"保存设置后,Keil会自动识别J-Link,并在调试界面上显示相关信息。接下来,可以根据需要进行程序的编写和调试。 在进行下载操作之前,需要先新建或打开一个工程,在Keil的工程目录中找到编译得到的可执行文件(通常为.hex或.bin类型),然后点击菜单栏的"Flash",选择"Download"。这样,Keil会将程序下载到目标芯片中。 在下载过程中,Keil会将编译好的程序文件发送给J-Link,然后J-Link负责将程序写入目标芯片的闪存中。下载完成后,可以开始断点调试或运行程序。 总之,Keil使用J-Link下载程序非常简便。只需确保正确连接J-Link和目标芯片,设置好Keil的调试选项,并将程序下载到目标芯片的闪存中,就可以进行嵌入式开发和调试工作。 ### 回答3: Keil是一款常用的嵌入式软件开发工具,而J-Link是一种常用的调试与仿真工具,支持多种微处理器和微控制器。在使用Keil进行开发时,我们可以通过J-Link来将我们的程序下载到目标设备上。 首先,我们需要连接J-Link调试器与目标设备。J-Link调试器通常有USB接口,我们可以将其通过USB线与电脑连接。接着,我们需要用JTAG或SWD接口将J-Link调试器与目标设备连接起来。这通常需要用到一些导线和连接器,确保连接稳定。 接下来,我们需要在Keil中进行一些配置。打开Keil软件后,点击“Project”菜单,并选择“Options for Target”选项。在出现的对话框中,选择“Debug”选项卡,然后选择“Use JTAG or SW Device”选项。在“Settings”中选择“J-Link”,并点击“OK”保存配置。 完成配置后,我们可以在Keil中进行程序的编译。编译完成后,我们可以点击菜单中的“Debug”选项,然后选择“Start/Stop Debug Session”来开始调试会话。 在调试会话开始后,我们可以通过点击菜单中的“Flash”选项,然后选择“Download”来将程序下载到目标设备上。在弹出的对话框中,我们可以选择J-Link作为下载设备,并选择正确的目标设备型号。然后,我们可以点击“Download”按钮开始下载程序。下载完成后,我们就可以开始进行调试了。 总之,使用Keil进行嵌入式开发时,我们可以通过J-Link调试器将程序下载到目标设备上。这需要进行一些硬件连接和软件配置,然后就可以进行调试和仿真了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南波儿万

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值