OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5759|回复: 13

MDK编译问题

[复制链接]

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-6-5
在线时间
2 小时
发表于 2016-6-7 17:29:19 | 显示全部楼层 |阅读模式
2金钱
请问我在学习探索者F4的时候,在用KEIL MDK 4对工程编译时,在USART.C中的
_sys_exit(int x)
{
    x = x;
}
函数显示为警告是可以编译过去的,面在用KEIL MDK5 版本编译时,却显示警告编译显示错误的,编译过不去的!
显示错误是..\SYSTEM\usart\usart.c(38): error:  #260-D: explicit type is missing ("int" assumed)缺少显示类型



最佳答案

查看完整内容[请看2#楼]

加上一个void就好了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-6-5
在线时间
2 小时
 楼主| 发表于 2016-6-7 19:39:13 | 显示全部楼层
本帖最后由 LJXLZSQ 于 2016-6-7 19:40 编辑

求解决,谢谢
回复

使用道具 举报

5

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1522
金钱
1522
注册时间
2014-5-16
在线时间
217 小时
发表于 2016-6-11 00:21:03 | 显示全部楼层
这个函数是KEIL重定向输入输出IO接口时写的,应该是只有在KEIL编译器下能这么用.
首先这是个函数,所以当然要定义函数类型,可能是KEIL5的编译级别和KEIL4的不一样了,所以编译不过.
其实KEIL已经给我们提供了重定向IO的例子,在Keil5\ARM\Startup目录下,就有个Retarget.c,完整代码如下:
[mw_shl_code=c,true]/******************************************************************************/
/* RETARGET.C: 'Retarget' layer for target-dependent low level functions      */
/******************************************************************************/
/* This file is part of the uVision/ARM development tools.                    */
/* Copyright (c) 2005 Keil Software. All rights reserved.                     */
/* This software may only be used under the terms of a valid, current,        */
/* end user licence from KEIL for a compatible version of KEIL software       */
/* development tools. Nothing else gives you the right to use this software.  */
/******************************************************************************/

#include <stdio.h>
#include <time.h>
#include <rt_misc.h>

#pragma import(__use_no_semihosting_swi)


extern int  sendchar(int ch);  /* in Serial.c */
extern int  getkey(void);      /* in Serial.c */
extern long timeval;           /* in Time.c   */


struct __FILE { int handle; /* Add whatever you need here */ };
FILE __stdout;
FILE __stdin;


int fputc(int ch, FILE *f) {
  return (sendchar(ch));
}

int fgetc(FILE *f) {
  return (sendchar(getkey()));
}


int ferror(FILE *f) {
  /* Your implementation of ferror */
  return EOF;
}


void _ttywrch(int ch) {
  sendchar (ch);
}


void _sys_exit(int return_code) {
  while (1);    /* endless loop */
}
[/mw_shl_code]
回复

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2016-6-7 17:29:20 来自手机 | 显示全部楼层
加上一个void就好了
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-6-5
在线时间
2 小时
 楼主| 发表于 2016-6-7 17:31:19 | 显示全部楼层
。。。。。
QQ截图20160606213038.png
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-6-5
在线时间
2 小时
 楼主| 发表于 2016-6-7 17:32:42 | 显示全部楼层
图片在上面,是C/C++编译器问题?  正常说这样定义是可以的。
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-6-5
在线时间
2 小时
 楼主| 发表于 2016-6-10 21:15:42 | 显示全部楼层
我的问题太简单了?  最近刚学32的朋友们没有这个问题?
回复

使用道具 举报

5

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
金钱
240
注册时间
2016-6-5
在线时间
44 小时
发表于 2016-6-10 21:42:20 | 显示全部楼层
你图片上这句话上没有红叉啊,确定是这句话引发的问题?你的提示不是现实问题发生在260行吗
回复

使用道具 举报

5

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
金钱
240
注册时间
2016-6-5
在线时间
44 小时
发表于 2016-6-10 21:42:33 | 显示全部楼层
代码发出来看看
回复

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2016-6-11 00:24:43 来自手机 | 显示全部楼层
加上一个void就好了
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-6-5
在线时间
2 小时
 楼主| 发表于 2016-6-12 09:39:32 | 显示全部楼层
kykxo 发表于 2016-6-10 21:42
你图片上这句话上没有红叉啊,确定是这句话引发的问题?你的提示不是现实问题发生在260行吗

双击这个错误,就到这的
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-6-5
在线时间
2 小时
 楼主| 发表于 2016-6-12 09:41:57 | 显示全部楼层
zmingwang 发表于 2016-6-11 00:21
这个函数是KEIL重定向输入输出IO接口时写的,应该是只有在KEIL编译器下能这么用.
首先这是个函数,所以当然 ...

非常感谢,谢谢
回复

使用道具 举报

5

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
金钱
240
注册时间
2016-6-5
在线时间
44 小时
发表于 2016-6-12 14:21:38 | 显示全部楼层
LJXLZSQ 发表于 2016-6-12 09:39
双击这个错误,就到这的

我看了一下这个问题,主要的原因是配置模式的问题 QQ截图20160612141943.png
如果选了 C99 Mode ,那么你就要添加 void
如果你没有选 C99 选项,那么你就不需要加 void 也能编过
具体什么原因,求大神解释。。。。。
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2016-6-12
在线时间
0 小时
发表于 2016-6-12 20:11:43 | 显示全部楼层

请问你最后是怎么解决的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 12:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表