KEIL51 调试时一些的错误总结
提示无 文件
编译时候提示:
?
解决方法:
重新生成项目,产生 !" 即可。
#$ 重复调用
%%%& '(')$!$("$*+$$,*)*'
*)*'--." ."(/ *+*(0*/&, 1.1/"(
+$$* --." .02'+/('* !".('
+$$* #--.+/+ !"
---该警告表示连接器发现有一个函数可能会被主函数和一个中断服务程序或者调用中断服务程序的函数同
时调用或者同时被多个中断服务程序调用。
---出现这种问题的原因之一是这个函数是不可重入性函数当该函数运行时它可能会被一个中断打断从而使
得结果发生变化并可能会引起一些变量形式的冲突即引起函数内一些数据的丢失可重入性函数在任何时候都可以
被 ( 打断一段时间后又可以
运行但是相应数据不会丢失。
---原因之二是用于局部变量和变量暂且这样翻译34自变量变元一数值用于确定程序或子程序
的值5的内存区被其他函数的内存区所覆盖如果该函数被中断则它的内存区就会被使用这将导致其他函数的内存
冲突。
---例如第一个警告中函数 & (*/)0$/ *)在 1/)0$+或者 1/)0$ 被定义它被一
个中断服务程序或者一个调用了中断服务程序的函数调用了调用它的函数是 02'+/('* !"在 ('+ 中。
解决方法:
---如果你确定两个函数决不会在同一时间执行该函数被主程序调用并且中断被禁止并且该函数不占用内存
假设只使用寄存器则你可以完全忽略这种警告。
---如果该函数占用了内存则应该使用连接器6,0* $2 指令将函数从覆盖分析788
中除去例如:
,0* $2." ./& (*/)0$/ *).1/)0$9%