Xy201207 发表于 2016-7-5 10:37:13

IAR5.3的430的编译器出现下面警告和错误是什么原因?

Warning: Modules have been compiled with possibly incompatible settings: Module SelfAdapt uses unsigned plainchars, while module WaveSearch uses signed plain chars
Error: Incompatible runtime models. Module SelfAdapt specifies that '__data_model' must be 'large', but moduleCluster has the value 'medium'
在Debug时只有警告 在Ralease下有警告也有错误,有谁也遇到这样的情况 能解答一下么?

bujie8010 发表于 2016-7-5 10:42:01

是不是调用了printf等函数,然后在设定里库尺寸没选对?

Xy201207 发表于 2016-7-5 10:47:28

bujie8010 发表于 2016-7-5 10:42
是不是调用了printf等函数,然后在设定里库尺寸没选对?

嗯调用了

Xy201207 发表于 2016-7-5 10:49:44

这里设置Medium后错误没了 警告还是有

Xy201207 发表于 2016-7-5 11:05:40

bujie8010 发表于 2016-7-5 10:42
是不是调用了printf等函数,然后在设定里库尺寸没选对?

要怎么选库尺寸?

bujie8010 发表于 2016-7-5 11:10:18

MSP430X架构下多了DATA的存取模式,好像是你的两个模块用了不同的char默认的类型导致的,你那两个模块的文件头里看看有没有unsigned char 定义成什么东西了?

Xy201207 发表于 2016-7-5 11:16:56

bujie8010 发表于 2016-7-5 11:10
MSP430X架构下多了DATA的存取模式,好像是你的两个模块用了不同的char默认的类型导致的,你那两个模块的文 ...

发现定义了
typedef   signed char   i8;

typedef   signed short    i16;

typedef   signed int      i32;

typedef   unsigned char   u8;

typedef   unsigned shortu16;

typedef   unsigned long   u32;

typedef          char                CHAR;
但是还是不知道为什么? 第一次使用IAR,是一个同事离职留下的工程

bujie8010 发表于 2016-7-5 11:20:20

这个mcu的cpu是20位地址的,传统msp430是16位的,所以你寻址超过64K就要用medium吧

Xy201207 发表于 2016-7-5 12:16:00

bujie8010 发表于 2016-7-5 11:20
这个mcu的cpu是20位地址的,传统msp430是16位的,所以你寻址超过64K就要用medium吧 ...

嗯这个警告要怎么消除呢?

bujie8010 发表于 2016-7-5 13:00:30

typedef          char                CHAR;
估计就是char在不同模块做了不同定义(signed 和unsigned)吧,你把那两个模块的头文件都看看,有没有char的不同定义!
页: [1]
查看完整版本: IAR5.3的430的编译器出现下面警告和错误是什么原因?