在编译时总会出现如下错误提示
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]; [email protected] */
} s_DAC;
但typedef struct s_DAC {}是系统自带的,总不会有错吧。是不是我在什么地方没设置好呢,请好心人指点一下啊。
------解决方案--------------------
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字段
------解决方案--------------------
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