您的位置:首页 > 其它

MDK5错误以及解决方法

2015-12-24 16:16 246 查看
之前做stm32用MDK4.7版本,一直好好的。但是最近手痒,加上MDK5可以导入lwip以及ucos,所以就想试试。

在这两天用的程中,磕磕绊绊的遇到不少问题,好在最终都解决了。现在基本上都能够用起,记录一下吧。

1:在新建工程的时候,发现没有对应的device。

MDK5不像MDK4,在安装的时候,device就已经集成在安装包里。对应的芯片设备型号需要我们自己根据需要导入。

怎么导入?

下面以stm32F0为例子

a:projec->manger->pack install

会弹出下面的界面



b:我们可以点击stm32f0serias,然后在packs中点击install安装相应的pack(我这里是已经安装了,所以是update)。不过这样太慢了,还老是不成功。

还有一个方法就是到keil官网中国找相应的pack。不过找有点麻烦,有个小窍门就是,点击(如上图)芯片信号对应的右边的蓝色字体。就会自动连接到keil官网上该芯片系列的网页上,将该包下载下来。然后点击上述界面的菜单栏的File->import 然后选择下载的pack,就可以了,这个方法要快多了。

c:然后新建工程,选择设备的时候,就有了如下图标。选择相应的型号即可。



终于可以跟MDK4.7版本一样新建工程了,然后后面基本上一样?好吧?原谅我太幼稚了。冯唐易老,李广难封。后面还是虐了我两天。

后来将直接用MDK5 去打开之前的MDk4.7写的程序。嗯嗯,正常打开好像是没有啥问题。可是在translate的时候,报错了!报错了!我以前编译过好几次好好的,居然报错了。报错类型如下,

error: #5: cannot open source input file "core_cm0.h": No such file or directory

明明有,为啥就是打不开。而且在MDK5的安装目录下面的CMISS可以找到该文件。好吧,应该是包含该文件的路径没有被MDK5设置默认。

这样就方法很多了,

1:找到报错缺少的文件,将文件复制到我们的工程源码文件夹中。

2:点击魔术棒,然后在c++选项中中添加头文件路径(软件安装自带的,库文件中的都可以)。

3:projec->manger->runtime environment显示如下界面,然后将在CMISS中勾选core。这才是正解啊(其实在新建工程的时候就应该勾选,可是谁叫我不知道呢,现在才知道呢)。



曾经以为这样就可以了,没有下面还有更加头疼的来了。

如图,编译器停止工作

这个看到就头疼。又不说是哪里出现了问问题。好吧,这个我只能找度娘和谷歌了。



根据搜到的消息,MDK5不支持中文。

所以

1:工程的路径中不要带中文(我的工程里面有中文,但是好像不影响,为了保险起见,最好以后建立工程什么的是不要带中文字符,免的报错烦心)

2:安装的路径中不要带中文(这个我倒是没有)。

3:还有你的环境变量不能含有中文字符

好吧 ,环境变量不能有中文字符,辣么。

也有两种方法

1:在系统上新建一个英文用户,切换到英文用户去编译。

2:设置环境变量。这个不用在中文用户和英文用户之间切换。

怎么做?且看下文

1:计算机->高级系统设置->高级->环境变量。如图,要修改的地方为红色方框,TMP变量:



2:在D盘中创建Temp文件夹,点击上图的编辑按钮,修改环境变量。

如下图:



设置好环境变量之保存之后,然后重启MDK5。编译,通过。终于可以了。哒哒,半个小时左右写完这篇blog。可是这些问题差不多花了我两天。

从换版本,不断调试,查资料。我擦呢,解决了就是萌萌哒。最后附一张编译成功的图片如下(warning有点多

):



最后最后,欢迎多交流。一起学习一起进步。

QQ:1375403697

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: