一(一)、keil常见问题和解决方法&常用操作

1 篇文章 0 订阅
本文详细介绍了在Keil环境中遇到的JLink识别问题、下载失败、添加源文件、设置编码、烧录HEX文件、串口打印、RTT配置、芯片识别包添加、字体颜色设置以及编译和调试常见问题的解决方案。
摘要由CSDN通过智能技术生成

一、keil识别不了jlink

1、删除Jlink2个配置文件

删除工程所在文件夹的Jlink配置文件,重新打开工程
在这里插入图片描述

2、更换jlink版本

(用驱动中的JLinkARM.DLL替换keil5中的JLinkARM.DLL即可)
在这里插入图片描述
把C:\Program Files (x86)\SEGGER\JLink_V630d\JLinkARM.DLL文件粘贴到keil5中JLinkARM.DLL位置为:keil_5\ARM\Segger\JLinkARM.DLL、
Jlink官网

3、下载程序注意晶振

可以参考该文章
默认状态:BOOT0经电阻接地,即拉低;BOOT1悬空,即拉高。
恢复过程:把BOOT0拉高,BOOT1拉低,即可识别Jlink。

二、可以识别jlink但无法下载

1、添加flash download算法

魔法棒–debug–settings–Flash Download–Add
注意:若搜不到相应芯片的程序,则在网上下在对应的flash pack,安装即可

2、引脚复用

程序中,烧录程序的引脚被其他程序占用。

3、魔法棒里的Utilities配置不对

在这里插入图片描述

三、一些基本操作

1、添加源文件和头文件

参考此文章

2、设置编码格式

在这里插入图片描述
点击设置,进入下面界面,选择相应格式即可。
在这里插入图片描述

3、keil里直接烧录.hex文件

选中魔法棒,点击Output,输入相应的hex文件名,
其文件路径:工程所在文件夹…\Project\STM32F107_LwIP\MDK-ARM\build
在这里插入图片描述

4、使用JLINK的串口打印功能

打开安装Jlink的文件目录SEGGER,在目录中找到J-Link Commander程序。首先在命令窗口中执行si 0。再执行命令vcom enable。最后重新上电J-Link,可以看到J-Link的串口端口如下。
在这里插入图片描述

1、将RTT源代码添加到目标工程中。
#Jlink的安装目录,比如安装目录在C:\Program Files (x86)\SEGGER\JLink_V650b,
打开Samples\RTT目录,将SEGGER_RTT_V694b.zip解压,将RTT整个目录复制到目标工程与MDK-ARM同级目录;

#将RTT目录下的两个c文件SEGGER_RTT.c和SEGGER_RTT_printf.c添加到工程中;将RTT目录添加到头文件的包含路径中;

#工程中,要打印输出变量的c文件中,添加头文件:#include “SEGGER_RTT.h”;

在源码中,添加SEGGER_RTT_printf(0, 格式字符串, 变量),参数0,表示终端0;

#打开JLinkRTTViewer,位于安装目录C:\Program Files (x86)\SEGGER\JLink;

配置:选择USB方式,选择或输入所使用的MCU的型号;确认之后,能看到打印输出的cnt变量了;
注意:不支持以%f格式打印输出,
打印枚举变量,要先将其转为字符串,如下

wdt_division_type dividers[] = {
WDT_CLK_DIV_4,
WDT_CLK_DIV_8,
WDT_CLK_DIV_16,
WDT_CLK_DIV_32,
WDT_CLK_DIV_64,
WDT_CLK_DIV_128,
WDT_CLK_DIV_256,
};
const char* divider_str;
wdt_division_type divider = dividers[0];

switch(divider) {
  case WDT_CLK_DIV_4:
    divider_str = "WDT_CLK_DIV_4";
    break;
  // other cases  
}
SEGGER_RTT_printf(0, "Divider: %s\n", divider_str);

5、keil5里添加芯片的识别包

无法添加,报错:Cannot find PDSC file

注意:识别包均可在对应官网下载。
解决:打开keil所在文件位置,以管理员身份运行所选软件,
在这里插入图片描述
然后File→Import→选择识别包的压缩文件或者单个.pack文件在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

6、keil里字体大小,代码颜色设置

转载-Keil如何设置字体、代码颜色等

7、调试教程

转载-keil调试教程

四、keil环境下JLink添加芯片和JFlash烧录bin文件

1.添加CPU芯片

问题:出现下面弹窗
在这里插入图片描述
解决:
① 到雅特力官网下载相应的支持segger(jlink)识别芯片的包,例如AT32的包
在这里插入图片描述
② 明白自己IDE中所使用jlink路径。打开右下角显示的jlink图标,如下:在这里插入图片描述在这里插入图片描述
③ 接着运行Segger_AT32MCU_AddOn.exe程序之后,选择安装文件目录为上述目录,安装。
注意:有些低版本的jlink,安装目录如下,选择Devices文件夹
在这里插入图片描述
④ 安装完成后,该目录下会出现新的文件,如下图所框。
在这里插入图片描述
⑤ 打开工程,在device选择正确的情况下,进入debug设置界面,能正常识别,无需选择具体芯片,它会自动识别选择(jlink版本高的情况下),版本低的话,仍会弹出窗口选择芯片型号,此时选择对应芯片型号即可。
在这里插入图片描述
在这里插入图片描述

2.JFlash烧录

(1)J-link可以识别芯片但是擦除、下载时出现Verification of RAMCode failed @ address 0x20000000错误
原因和解决:jlink下载速度过快(4MHZ),导致出现上述错误,将Jlink速度降至200KHZ以下即可。
在这里插入图片描述

五、编译问题

1、** Error: CreateProcess failed, Command: 'D:\Keil5\ARM\ARMCC\bin\fromelf.exe --bin -o ./

原因:

  1. 因为 keil版本不同fromelf.exe的位置不一样!
    Keil V5之后的版本,fromelf.exe在 C:\Keil_v5\ARM\ARMCC\bin 目录下
    Keil V4的版本,fromelf.exe在 C:\Keil\ARM\BIN40\下
  2. 在工程中配置了绝对路径:
    \Keil5\ARM\ARMCC\bin\fromelf.exe --bin -o ./
    解决:修改配置,改成fromelf --bin -o “$L@L.bin” “#L”。
    在这里插入图片描述
    fromelf --bin意思是使用fromelf.exe来生成bin文件:
    “–bin”: 该选项设置输出bin文件;
    "-o"即“–output”: 该选项设置输出文件名和输出文件路径;
    L: 指.axf文件的绝对地址;
    $ @ # 这些符号都是指截取L中的一部分来使用;
    “$L@L.bin”就是指在.axf文件的目录下生成一个与.axf文件名称相同的bin文件;

2、error: At end of source: #67: expected a “}”

3、keil5l里无法进行 go to 的跳转

(1)no browse information available in’工程目录’ check-[target-options][output][browse information] then rebuild the target!
**解决方法:**选中target1,然后点击右键,选择 option for target ‘target1’ ,在弹出的对话框中选择output选项卡,看Browse information 选项有没有勾选,如果没有请勾选,然后把你的工程rebuild 一次。
在这里插入图片描述
(2)左下角显示错误 “no browse info for symbol in this context“
在这里插入图片描述
解决方法
① 把工程移到不包含中文的路径下进行编译使用。
② 检查我们工程的配置是否如图所示选择的是version6,尝试更换这个版本重新编译rebuild 。
在这里插入图片描述
【Use Micro LIB】记得勾选

4、“startup_stm32f40_41xxx.s” could not be opened/could not load file“***.axf”

原因:MDK查找路径太长
解决:缩短相关文件路径

5、debug模式,有些地方不能打断点

原因:编译优化太高导致
解决:将优化等级改为default即可,这样每一个运行的地方都可以打断点
在这里插入图片描述
在这里插入图片描述

6、Cannot access target. Shutting down debug session.

在这里插入图片描述
解决方法如下:
1、target选项看这个有没有勾上
在这里插入图片描述
2、工程所在路径不能含有中文
3、编译优化等级,本想着降低优化等级(把下图找的等级改为O0),调试好打断点,结果直接出现上面弹窗,重新改回下面优化等级即可进入debug调试在这里插入图片描述

  • 30
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: LED广告牌是一种常见的电子产品,它通常由多个LED灯组成,可以显示各种文字、图形和动画等内容。基于keilc51和Proteus的LED广告牌项目,是一种电子技术教学设计,旨在培养学生掌握单片机、电路设计和电子系统集成等方面的知识和技能。 以下是基于keilc51和Proteus的LED广告牌项目的驱动式教学设计与实施步骤: 1. 教学目标:了解LED广告牌的原理和设计,掌握keilc51单片机编程和Proteus电路仿真技术,培养学生解决实际电子系统问题的能力。 2. 教学内容:电路设计、单片机编程、电子系统集成。 3. 教学方法:理论教学、实验教学。 4. 教学步骤: (1)理论教学:讲解LED广告牌的原理、常见电路设计和单片机编程技术。 (2)实验教学: a. 确定实验材料:keilc51单片机、Proteus电路仿真软件、LED灯、电阻、电容等。 b. 设计电路:根据LED广告牌的设计要求,设计相应的电路,并在Proteus中进行仿真。 c. 编写程序:根据电路设计,编写keilc51单片机的程序,并在Proteus中进行仿真。 d. 测试实验:将编写好的程序下载到实验板上,在实验板上测试程序是否能够正常运行。 5. 教学评价:通过实验结果和学生的表现,评价学生实验结果和实验过程中的表现,以及学生掌握的知识和技能。 基于keilc51和Proteus的LED广告牌项目的驱动式教学设计与实施,可以提高学生的电子技术实践能力,培养学生解决实际问题的能力。同时,也可以提高学生的创新能力,培养学生的实验技能和实验精神,为学生将来从事电子技术相关行业提供有益的培养。 ### 回答2: 基于Keil C51和Proteus的LED广告牌的项目驱动式教学设计与实施是用于培养学生嵌入式系统开发能力的一种教学方法。该设计目的是通过实践操作,让学生掌握Keil C51和Proteus软件的使用,并了解LED广告牌的工作原理和驱动方式。 教学设计的步骤如下: 第一步:理论授课 在课堂上,教师向学生介绍嵌入式系统的概念、原理和应用,并详细讲解LED广告牌的驱动原理和常用的驱动方式。 第二步:软件工具学习 教师引导学生学习Keil C51和Proteus软件的使用方法,包括安装、基本操作、编程语言等。学生可以通过教材、视频教程等多种方式学习软件的使用。 第三步:实验准备 学生准备实验所需的硬件设备,包括LED显示模块、开发板、连接线等。同时,学生安装并配置Keil C51和Proteus软件。 第四步:实验操作 学生按照教师提供的实验指导书,进行实验操作。首先,学生编写LED广告牌的驱动程序,并将程序烧录到开发板上。然后,学生使用Proteus软件进行电路仿真,验证驱动程序的正确性。最后,学生将开发板与LED显示模块连接,并通过Proteus软件进行联调测试。 第五步:实验分析 学生分析实验结果,检查LED广告牌是否正常工作。如果存在问题,学生需要根据错误日志和实验现象进行排查,并修改程序进行调试。 第六步:实验总结 学生根据实验过程和结果,撰写实验报告。报告内容包括实验目的、步骤、结果分析和心得体会。 通过以上步骤的实践操作,学生可以全面了解嵌入式系统的开发过程和LED广告牌的驱动原理。同时,学生还能够培养解决问题的能力和团队合作精神。 ### 回答3: 基于KeilC51和Proteus的LED广告牌的项目驱动式教学设计与实施是一个结合理论与实践的综合教学方式。该项目的目标是让学生通过设计和制作一个LED广告牌来学习单片机的使用和控制。 教学设计的步骤如下: 第一步是理论教学。在课堂上,教师可以向学生讲解单片机的原理、功能和基本编程语言,以及LED显示屏的工作原理和控制方法等知识。学生可以通过案例分析和问题解决的方式巩固并理解学习内容。 第二步是实验设计。学生根据理论知识,设计出符合实际需求的LED广告牌的原理图和程序代码。他们需要考虑到广告牌的尺寸、显示效果、动画效果等因素,并实现相应的控制功能。 第三步是实验实施。学生使用KeilC51和Proteus软件进行编程和仿真。他们可以通过编写程序、调试代码和模拟电路等步骤来实现LED广告牌的控制效果。同时,学生需要进行实际硬件连接,将单片机和LED显示屏连接在一起进行测试。 第四步是实验结果分析。学生需要根据实验结果对程序进行调试和优化。他们可以通过监视LED广告牌的显示效果、观察硬件工作状态以及测试其它功能等方式,确定项目的可行性和性能。 最后一步是项目总结与评估。学生需要对整个项目进行总结,并将其文档化。他们还可以对项目进行评估,评估的指标可以包括项目的完成度、功能实现的程度、学习过程中的困难与收获等等。 通过基于KeilC51和Proteus的LED广告牌项目,学生能够将理论知识与实际应用相结合,提高他们的实践能力和问题解决能力。这种驱动式的教学方式能够激发学生的学习兴趣,并培养他们的创新思维和团队合作能力。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

最高優先級

制作不易,若有帮助,可以助力!

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

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

打赏作者

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

抵扣说明:

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

余额充值