本帖最后由 xiong2088 于 2017-12-1 10:42 编辑
单片机是stm8s103k,STVD只设置了与COSMIC的关联(TOOLS->Options ->Toolset,Toolset选择STM8S Cosmic,并设置相关路径),其他都是默认设置。中断的文件名也是原来的stm8_interrupt_vector,开始代码编译很正常,有3个中断程序:1、串口接受,2、ADC转换完成,3、TIM4 的1ms溢出中断。这些写完后,编译没有错误。我想在TIM4中断中加一个变量,类似STM32F0、F1中的滴答定时器,用于延时。于是把代码复制过来如下:
在timer.h中:如图1;在timer.c中,写了延时函数,如:图2。在TIM4中断函数中写了:if (sysTimer) sysTimer--;问题就出在这句上,只要注释掉这句代码,编译没有问题,不注释就出现以下错误:
Running Linker
clnk -l"C:Program Files (x86)COSMICCXSTM8Lib" -o Debugdc-adc.sm8 -mDebugdc-adc.map Debugdc-adc.lkf
#error clnk Debugdc-adc.lkf:1 symbol c_lgsbc not defined (Debugstm8_interrupt_vector.o )
The command: "clnk -l"C:Program Files (x86)COSMICCXSTM8Lib" -o Debugdc-adc.sm8 -mDebugdc-adc.map Debugdc-adc.lkf " has failed, the returned value is: 1
exit code=1.
dc-adc.elf - 3 error(s), 0 warning(s)
弄了好久也没弄好,求大神指点!!
图1
图2
图3
一周热门 更多>