当前位置:首页 » 编程软件 » keil编译不提示

keil编译不提示

发布时间: 2022-05-23 23:18:18

‘壹’ 大神们keil 4 编译程序时提示mian.c(1): warning C318: can't open file 'STC12C5A.H'怎么办

keil 4 编译程序时提示mian.c(1): warning C318: can't open file 'STC12C5A.H'是没有正确编译造成的,解决方法为:

1、实现先长按住目标板上的复位键--》再点击 Settings--》再松开目标板上的复位键的操作如下。

‘贰’ keil51编译提示没了keil51编译提示没了一个字也没有提示了,咋回事,重装了好多次了

先translate current file 通过(它左边的按钮)没有错误,再编译

‘叁’ keil不能编译了,提示Target not created

我是一名多年的单片机工程师,下面的讲解你可以参考一下。
1 Target not created 说明程序语句或者语法有错。

2 最好的办法是先找哪里出错,这样才能修改,如果在别的版本软件上没有错,新装的软件有错,那就查查头文件有没有丢失。因为只有头文件才有机会和系统安装有关。

3 如果你想学习更多关于单片机C语言的知识,网络一下“17个实验学会单片机”,就可以看到教程了,感兴趣的朋友可以找一下。

‘肆’ 启动keil5出现如图警告,并且写函数过程中,不会提示错误,求解决方法

Keil 编译时出现错误和警告的总结
      和C 编译器错误信息中文翻译
      (1)L15 重复调用
      ***WARNING L15: MULTIPLE CALL TO SEGMENT
      SEGMENT: ?PR?SPI_RECEIVE_WORD?D_SPI
      CALLER1: ?PR?VSYNC_INTERRUPT?MAIN
      CALLER2: ?C_C51STARTUP
      该警告表示连接器发现有一个函数可能会被主函数和一个中断服务程序(或者调用中断服务程序的函
      数)同时调用,或者同时被多个中断服务程序调用。
      出现这种问题的原因之一是这个函数是不可重入性函数,当该函数运行时它可能会被一个中断打断,从
      而使得结果发生变化并可能会引起一些变量形式的冲突(即引起函数内一些数据的丢失,可重入性函数在任何时候
      都可以被ISR 打断,一段时间后又可以
      运行,但是相应数据不会丢失)。
      原因之二是用于局部变量和变量(暂且这样翻译,arguments,[自变量,变元一数值,用于确定程序或子
      程序的值])的内存区被其他函数的内存区所覆盖,如果该函数被中断,则它的内存区就会被使用,这将导致其他函数
      的内存冲突。
      例如,第一个警告中函数WRITE_GMVLX1_REG 在D_GMVLX1.C 或者D_GMVLX1.A51 被定义,它被一个中断
      服务程序或者一个调用了中断服务程序的函数调用了,调用它的函数是VSYNC_INTERRUPT,在MAIN.C 中。
      解决方法:
      如果你确定两个函数决不会在同一时间执行(该函数被主程序调用并且中断被禁止),并且该函数不占
      用内存(假设只使用寄存器),则你可以完全忽略这种警告。
      如果该函数占用了内存,则应该使用连接器(linker)OVERLAY 指令将函数从覆盖分析(overlay
      analysis)中除去,例如:
      OVERLAY (?PR?_WRITE_GMVLX1_REG?D_GMVLX1 ! *)
      上面的指令防止了该函数使用的内存区被其他函数覆盖。如果该函数中调用了其他函数,而这些被调用在
      程序中其他地方也被调用,你可能会需要也将这些函数排除在覆盖分析(overlay analysis)之外。这种OVERLAY 指
      令能使编译器除去上述警告信息。
      如果函数可以在其执行时被调用,则情况会变得更复杂一些。这时可以采用以下几种方法:
      1.主程序调用该函数时禁止中断,可以在该函数被调用时用#pragma disable 语句来实现禁止中断的目的。必
      须使用OVERLAY 指令将该函数从覆盖分析中除去。
      2.复制两份该函数的代码,一份到主程序中,另一份复制到中断服务程序中。
      3.将该函数设为重入型。例如:
      void myfunc(void) reentrant {
      ...
      }
      这种设置将会产生一个可重入堆栈,该堆栈被被用于存储函数值和局部变量,用这种方法时重入堆
      栈必须在STARTUP.A51 文件中配置。这种方法消耗更多的RAM 并会降低重入函数的执行速度。
      (2)提示无M51 文件
      编译时候提示:
      F:\...\XX.M51
      File has been changed outside the editor, reload ?
      ------
      解决方法:
      重新生成项目,产生STARTUP.
      
1/9

A51 即可。
      (3)L16 无调用
      *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
      SEGMENT: ?PR?_COMPARE?TESTLCD
      说明:程序中有些函数例如COMPARE(或片段)以前(调试过程中)从未被调用过,或者根本没
      有调用它的语句。
      这条警告信息前应该还有一条信息指示出是哪个函数导致了这一问题。只要做点简单的调整就
      可以。不理它也没什么大不了的。
      解决方法:去掉COMPARE()函数或利用条件编译#if …..#endif,可保留该函数并不编译。
      (4)L10 和L16"主程序名字写错(或无主程序)"
      

‘伍’ 在keil4中没有错误可是却编译不了提示error L250:CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED

使用注册机生成注册码的时候选择第二项,developer kit,试试。还有一个需要注意,安装新的注册码时,一定要把以前的两个都uninstall了,否则可能还是不好使。

‘陆’ keil软件怎么编译程序无结果显示

你的两个文件中可能都有main函数。
在keil编译器中,main函数是C函数的入口点,有且只有一个。所以你的程序在链接阶段发现了两个同名函数定义,所以给出了一个警告,又发现这两个同名函数还是main函数,所以错误提示。删掉一个就可以了。

‘柒’ KEIL为什么编译永远都是那一句话,不提示错误

没有错误啊,只有俩警告,你往上看看,警告内容是什么。

‘捌’ keil编译后,output窗口不提示错误,不出现几个错误几个警告的提示,就是叮叮的响,装了卸了都不行,怎么

首先确认你的Keil安装正确,并且注册License,可以查看License Management选项

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:649
制作脚本网站 发布:2025-10-20 08:17:34 浏览:940
python中的init方法 发布:2025-10-20 08:17:33 浏览:635
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:824
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:734
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1070
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:302
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:164
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:855
python股票数据获取 发布:2025-10-20 07:39:44 浏览:766