【经验分享】kinetis flash中仿真可以烧录运行失败问题讲解
一, 问题描述
这次经验分享主要讲解在使用codewarrior编译器,kinetis芯片中出现烧入flash仿真可以,直接烧入脱机运行失败情况的解决方案。之前有一些网友在学习的时候,自己使用Codewarrior生成一个很小的代码,往往就是翻转IO点亮小灯的程序,发现直接仿真,小灯可以闪烁,但是一旦退出仿真,重新上电后,小灯就不闪烁了,就好像程序不再运行或者说程序根本没有烧进去。最初,我们以为是网友不小心,使用了RAM仿真的结果,这样脱机后,由于flash中没有程序确实是会出现这样的情况。但是现实是网友确确实实是采用烧入flash的仿真方式了。那么遇到这种问题是什么情况导致的呢?又如何去解决呢?下面讲解具体的解决方案。
二, 问题解决方案
这个问题目前发现的原因是网友使用工程的时候,所选择的的Embedded warrior libraries(EWL)的问题,如何查看所选的库情况呢?
可以通过选择project->properties->C/C++ Build->Settings->Tool settings->Librarian来查看,具体如下图所示:
网友的问题主要出在了库选择成了ewl_hosted这种,实际上需要选择为默认的ewl库。Ewl_hosted库是通过debugger console这种方式实现I/O口的操作,当脱离仿真运行的时候,设备找不到debugger console所以就不能实现I/O口的操作了。而默认的UART库就不存在这种限制。
实际上在新建工程的时候,就有这样的选项,如下图所示:
如果你在实际的使用中遇到类似的情况,可以通过图1的方法去查看下,你的EWL库选择是否正确了。
关于EWL库的相关信息,我们也是有相关的文档讲解的,请参看章节三。
|