keil

Keil使用Debug调试模式时出现的几种错误总结

匿名 (未验证) 提交于 2019-12-02 23:47:01
调试器:j_link 1.在使用j-link下载程序时,target options中的debug选项中选择了j-link选项后,出现了J-LINK the connected emulator is a j-link clone问题,然后keil软件自行关闭。 解决方式:用SEGGER安装目录下的JLinkARM.dll替换掉MDK安装目录下的./ARM/Segger/JLinkARM.dll就可以了 2.出现了TCK (pin 9) low, but should be high. Please check target。。。的错误 解决方式:首先先检查原理图中是不是接错线了(就我而言,错的实在是太离谱,电源和地接反,而且BOOT0引脚完全没有接地),当我将这些个问题解决掉了之后,设置target options->Debug->右上角Use->Setting->Debug->Port选择SW选项。 3.在解决第二个问题之后,出现了未发现CPU的错误。 解决方式:这个问题的解决方式是在target options中的Utilities选项中点击Settings在Programming Algorithm选择框内添加芯片的类型(就我而言是STM32F10x 128K的)就行。 4.在debug模式下进行调试时,发现程序没有从main函数进行运行,而是一直在汇编代码BKPT那里停下

Keil MDK5实际使用中遇到的一些坑

匿名 (未验证) 提交于 2019-12-02 23:42:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LZPRO/article/details/84100156 最近对一些新出芯片进行开发,编译环境从Keil MDK4升级到Keil MDK5,然后就遇到各种坑 1.程序无法全速运行,无法进入断点,进入不了相应函数 2 调试读写Flash的程序,debug后提示“internal command error” 原因:一直没想通,为了方便调试加了while循环 while(1) { FLASH读写相关操作 } 文章来源: https://blog.csdn.net/LZPRO/article/details/84100156

Keil开发软件的使用

匿名 (未验证) 提交于 2019-12-02 23:26:52
Keil开发软件的使用 在软件使用手册中已经安装Keil,并对飞控源码进行编译下载。本文档进一步说明Keil开发软件的使用方法。 STM32F0xx库文件下载链接:链接:https://pan.baidu.com/s/1JNqzu9P2uvzp7tLNerLgFA 提取码:lpm1 软件功能介绍 打开Keil软件,主界面如下。 菜单栏:菜单栏里集成Keil MDK开发环境的所有工具与设置选项。 文件编辑栏:有新建、打开、保存及另存的文件操作,有剪切、复制、粘贴的文本操作,有撤销和恢复按钮,有导航到上一位置和下一个位置的按钮,有书签相关按钮,有文本对齐方式,代码注释与取消注释按钮,有查找按钮及输出框。 调试工具:有调试按钮及断点设置与取消按钮,有工程窗口的显示开关,有整个工程配置按钮。 编译下载工具:有单独文件编译,已改变工程文件编译,全部工程编译,批量编译,停止编译,下载工程按钮及目标选择框。 工程配置栏:有工程选项配置,工程管理,package管理等按钮。 工程结构窗口:工程目录栏里以树型图的方式展示了整个工程的文件目录,以便于调出文件。 编程窗口:编写程序的窗口。 输出窗口:打印工程在编译、调试、构建、下载程序中出现的问题。 常用按钮具体说明 编译按钮 :对当前文件进行编译,编译时会进行语法检查,同时在输出窗口显示编译信息。 构建按钮 :构建目标工程,对修改过的文件进行编译

Keil编译:Fatal error: Communication timed out: Requested 20 bytes,received 0 bytes ! session aborted

匿名 (未验证) 提交于 2019-12-02 22:56:40
我的原因是keil下载程序的驱动用错。 硬件平台是STM32F407,而我用的是 。 修改如下Utilities->Settings->把 换成 “”换成 就好了。 文章来源: Keil编译:Fatal error: Communication timed out: Requested 20 bytes,received 0 bytes ! session aborted

KEIL STM32开发 软件仿真 闪退

匿名 (未验证) 提交于 2019-12-02 22:56:40
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/y511374875/article/details/82927586 软件仿真: 学习STM32的时候,尝试了下软件仿真,出现闪退。 晚上找了一些资料, 我的原因是中文路径影响 ,其他的原因大家自行解决吧。 有的说: 将原来能下载的keil MDK程序版本中keil\ARM\Segger文件夹内容拷贝到新安装的MDK相同位置,替换掉原来的。重启J-link即可。 也有点说是: 编程遇到莫名其妙的问题,一般考虑:1、软件破解未完整。2、软件版本、3、中文路径。4、操作系统。 我用的是:win7x64,keil4.73。 使用keil mdk 仿真,点击debug 下载完成后软件自动关闭 为什么我用keil5软件仿真,然后执行,最后keil5都停止工作了? 文章来源: KEIL STM32开发 软件仿真 闪退

安装W7500P驱动到KEIL

匿名 (未验证) 提交于 2019-12-02 22:56:40
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shjhuang/article/details/82697267 最近使用W7500P,但是keil没有其支持库,所以需要手动安装。 1. 下载flash描述文件 https://download.csdn.net/download/shjhuang/10666027 2. 拷贝到keil安装目录的\ARM\Flash子目录,例如:C:\Keil_v5\ARM\Flash 3. 之后编辑工程属性就可以看到W7500P的FLASH信息,就可以调试了。 文章来源: 安装W7500P驱动到KEIL

Keil如何生成bin文件【Keil生成Bin文件的方法】

房东的猫 提交于 2019-12-02 15:00:35
使用过Keil的同鞋都知道,现在Keil中默认可以输出.axf的调试文件和可以通过钩选输出的.hex可执行文件,没有bin(二进制)文件的输出选项。可是偏偏某些时候需要或者习惯性的使用.bin文件来进行烧写,下面各举一例: 1. 一直使用ADS的用户习惯性的使用.bin文件; 2. 某些烧写器带的应用软件只支持.bin文件; 3. 正如笔者遇到的情况,我在使用STM32公司提供的网络更新固件程序的例程时,需要用到.bin文件(.hex文件通过网络更新后遇到某些问题,而且用Hex2Bin软件转换后的也不行)。 其实Keil也自带了工具软件,只要进行适当配置便可以输出bin文件了,不过在介绍具体方法前,请仔细阅读下面这一段关于Keil中自带的 fromelf.exe 工具说明: 该工具的语法为: fromelf [options] input_file 其中options中的选项及说明如下: 命令选项格式 命令 说明 --help 显示帮助信息 --vsn 显示版本信息 --output file 输出文件(默认输出为文本文件) --nodebug 在生成的映像文件中不包含调试信息 --nolinkview 在生成的映像文件中不包含段的信息 二进制输出格式 选项 说明 --bin 输出plain binary格式的文件 --m32 生成Motorola 32位十六进制格式的文件 -

KEIL MDK中 warning: #223-D: function "xxx" declared implicitly 解决方法

那年仲夏 提交于 2019-12-02 10:43:40
今天在EINT的范例里添加了一个函数,即eint.c中添加了一个datawrite()的函数,并在主函数main.c中调用,编译便警告 warning: #223-D: function "datawrite()" declared implicitly 很奇怪,在eint.c中也有初始化函数EINTInit()同样在main.c中调用没有问题,问什么偏偏这个不行。 但毕竟是个警告,还不是错误,做了个测试IO, while(1) { FIO1SET = 1<<19; delaySysTick(10); Data_write(0xff00, 0xff); FIO1CLR = 1<<19; delaySysTick(10); } 下载执行后发现,此IO根本没有输出。 看来这个警告还是不能回避的,在网上差了下,有类似问题说是库的原因,具体是什么也没说清楚。于是尝试着一一打开库文件,打开eint.h,恍然大悟,这里赫然写着 extern void EINT0_IRQHandler(void) __irq; extern DWORD EINTInit( void ); 原来在这里将eint.c中的函数与main.c相关联,也就是在eint.c中添加了新函数,还有在这里声明调用才行。 eint.h中,添加 extern void Data_write(WORD addr, BYTE data)

push_back() causes program to stop before entering main()

Deadly 提交于 2019-12-02 08:41:25
问题 I'm developing in c++ for my STM32F3 Discovery board and using std::deque as queue. After trying to debug my code (directly on device with ST-link or in simulator), the code eventually stops at breakpoint before even entering my code in main(). However, SystemInit() configures board just fine.. I've traced this behavior down to using push_back() (and push_front) as commenting it out from code solves the issue. Through disassmebly I found that after using it, the execution stops at breakpoint

How can I change maximum available heap size for a task in FreeRTOS?

筅森魡賤 提交于 2019-12-02 07:09:39
问题 I'm creating a list of elements inside a task in the following way: l = (dllist*)pvPortMalloc(sizeof(dllist)); dllist is 32 byte big. My embedded system has 60kB SRAM so I expected my 200 element list can be handled easily by the system. I found out that after allocating space for 8 elements the system is crashing on the 9th malloc function call (256byte+). If possible, where can I change the heap size inside freeRTOS? Can I somehow request the current status of heap size? I couldn't find