最近人前几天在头问件上折腾了好久,主要是头文件里面的 嵌套问题, 后来曲线救国了。
现在问题是:
一个key.c文件中有些函数,这些函数有一个在key.c中的全局变量i。但这些函数在key.h中声明,在main.c中被调用,但全局变量i定义在哪里呢?我定义在key.c和main.c中都有问题。
定义在key.c里,但是在key.h里用extern关键字声明
函数和全局变量都是一样的,只能在一个工程里面只能定义一次。在别的文件里面用的时候声明一下就可以了,也就是加一个extern;
比如你要定义i,在main文件里面定义 ucahr i;在key.c里面加一句 extern uchar i;就行了。
随着工程文件的增大,这样写会越来越乱,有一些技巧还是需要慢慢掌握的。
Error[e16]: Segment INTVEC (size: 0x60 align: 0x1) is too long for segment definition. At least 0x40 more bytes needed. The problem occurred while processing the segment
placement command "-Z(CODE)INTVEC=FFE0-FFFF", where at the moment of placement the available memory ranges were "CODE:ffe0-ffff"
Reserved ranges relevant to this placement:
ffe0-ffff INTVEC
Error while running Linker
问题解决了,默认芯片是f149。我傻傻的没有更改芯片
中断函数必须写在main.c 中吗?我想写在其他.c文件中,不知运行会不会出错