首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

keil for arm 编译异常:the size of an array must be greater than zero

2012-02-27 
keil for arm 编译错误:the size of an array must be greater than zero在编译时总会出现如下错误提示C:\

keil for arm 编译错误:the size of an array must be greater than zero
在编译时总会出现如下错误提示
C:\Keil\ARM\INC\ADI\dac.h(48): error: #94-D: the size of an array must be greater than zero

双击上面一行会自动转到
typedef struct s_DAC {

  s_DAC_Channel Channel[DAC_COUNT];/*@0 */

} s_DAC;

但typedef struct s_DAC {}是系统自带的,总不会有错吧。是不是我在什么地方没设置好呢,请好心人指点一下啊。

[解决办法]
DAC_COUNT宏定义的值是多少?
[解决办法]

探讨

DAC_COUNT宏定义的值是多少?

[解决办法]
error: #94-D: the size of an array must be greater than zero
数组大小必须大于0,楼主的那个宏定义为0,编译出错。
我记得C99才支持0数组的,不过在实际中还没有使用过。
[解决办法]
一般报系统文件错,都是你的代码引起的,不要想着去修改系统的文件。

现在无法判断是什么错误。

LZ,建议你将建议部分注释后进行编译,看看是什么地方引起错误的。
[解决办法]
No section matches selector - no section to be FIRST/LAST 是链接时的错误,wuxian.sct文件是Scatter loading配置文件,报错在*.o (RESET, +First)这一行,你看汇编代码中有Section RESET的块没有,要把你的包含中断向量表的汇编文件放在First。
或者把包含RESET的贴出来看看。

[解决办法]
你在.s文件搜一下有没有RESET字段

探讨

引用:
No section matches selector - no section to be FIRST/LAST 是链接时的错误,wuxian.sct文件是Scatter loading配置文件,报错在*.o (RESET, +First)这一行,你看汇编代码中有Section RESET的块没有,要把你的包含中断向量表的汇编文件放在First。……

[解决办法]
AREA Reset, CODE, READONLY 这个就是Reset段,假设这个汇编文件是startup.s,你把
*.o (RESET, +First)换成
startup.o(RESET, +First)看看有什么变化。

这块就是ARM复位时从这里开始执行:
AREA Reset, CODE, READONLY
ARM

Vectors LDR PC, Reset_Addr
LDR PC, Undef_Addr
LDR PC, SWI_Addr
LDR PC, PAbt_Addr

热点排行