打印
[STM8]

ST Visual Develop 编译程序问题!!请教各位!!!

[复制链接]
8412|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Good_ys|  楼主 | 2010-11-13 10:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
使用STM8S105S6芯片,在ST Visual Develop Version 4.1.2 软件下编写程序,遇到一个问题请教各位。

在工程中,有个函数没有被调用,当把这个函数删除,或者把这个函数内的程序代码部分或全部屏蔽时,报错如下:

Running Linker
clnk -lD:\CXSTM8\Lib
-o Release\nf-lcd01.sm8 Release\nf-lcd01.lkf
#error clnk Release\nf-lcd01.lkf:1 symbol c_smodx not defined (Release\stm8_interrupt_vector.o )

The command: "clnk -lD:\CXSTM8\Lib
-o Release\nf-lcd01.sm8 Release\nf-lcd01.lkf " has failed, the returned value is: 1
exit code=1.
nf-lcd01.elf - 3 error(s), 0 warning(s)
请教各位,这个错误怎么解决?谢谢!
沙发
Good_ys|  楼主 | 2010-11-15 08:52 | 只看该作者
大家是不是没遇到过这个问题呀!
谢谢^-^

使用特权

评论回复
板凳
香水城| | 2010-11-15 09:01 | 只看该作者
请具体说清楚:哪个函数?函数是什么样?屏蔽哪部分代码后出问题?

使用特权

评论回复
地板
jgphu| | 2010-11-15 11:27 | 只看该作者
你这个函数没有调用,你要删掉这个函数后,如果这个函数有申明,要把申明也删掉; 如果你这个函数跟中断有关的话,就把中断向量表相应的中断改为NOINTERRUPTHANDLE.

使用特权

评论回复
5
Good_ys|  楼主 | 2010-11-15 16:55 | 只看该作者
谢谢各位。具体情况如下:
函数为:
/**********************************************/
/*                函数名:s_ledtest()                                     */
/*                功能:  LED灯测试                                       */
/*                输入:  无                                                  */
/*                输出:  无                                                  */
/**********************************************/
void s_ledtest(void)
{
  delsec= 0x32;
  flag0_work=1;               
        /*          //程序屏蔽部分  开始
  while(delsec && !flag0_change)
   {  
          s_routinchk();      //计时函数,根据中断基准时间清看门狗等等。
          if(!flag0_work)
          {
         delsec = 0x32;
         ztmpause=0x78;      
         }         
         if( !(delsec%10) && !r_buzitem && flag0_work)
        {
         r_buzitem=4;
        }         
  }
*/     //程序屏蔽部分  结束
}  
该函数在工程中的搜索结果:
Searching for "s_ledtest"
D:\st-program\2010\nf-LCD01\code\main.c:525:/*        函数名:s_ledtest()   */
D:\st-program\2010\nf-LCD01\code\main.c:530:void s_ledtest(void)
D:\st-program\2010\nf-LCD01\code\function.h:70:void s_ledtest(void);
Search finished.

程序屏蔽时编译报错为:
Running Linker
clnk -lD:\CXSTM8\Lib  -o Release\nf-lcd01.sm8 Release\nf-lcd01.lkf
#error clnk Release\nf-lcd01.lkf:1 symbol c_smodx not defined (Release\stm8_interrupt_vector.o )
The command: "clnk -lD:\CXSTM8\Lib  -o Release\nf-lcd01.sm8 Release\nf-lcd01.lkf " has failed, the returned value is: 1
exit code=1.
把整个函数删除,把函数申明也删除,报错同上。
程序不屏蔽,则不报错,能顺利编译通过。该函数未在任何地方被调用!

使用特权

评论回复
6
香水城| | 2010-11-15 18:56 | 只看该作者
看不出有什么关联。

请把整个项目rebuild一遍试试看。

使用特权

评论回复
7
Good_ys|  楼主 | 2010-11-16 16:49 | 只看该作者
to 香水城:
整个项目rebuild 同样报错。

使用特权

评论回复
8
czx2014| | 2015-2-4 14:27 | 只看该作者
Good_ys 发表于 2010-11-16 16:49
to 香水城:
整个项目rebuild 同样报错。

遇到同样的问题,请问解决了吗?解决的方法是什么?

使用特权

评论回复
9
Andy001847| | 2017-12-29 11:06 | 只看该作者
本帖最后由 Andy001847 于 2017-12-29 11:08 编辑

点击Projects--->Settings...--->Linker--->Category目录下选择Input,找到stm8_interrupt_vector.c所在路径,点击OK即可。

STM8.png (21.19 KB )

STM8.png

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

24

帖子

0

粉丝