*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT keil5的这个警告要怎么解决
时间: 2023-10-04 18:03:02 浏览: 462
这个警告通常是由于在Keil中未正确设置代码段导致的。要解决此问题,请按照以下步骤操作:
1. 打开Keil工程,转到Project -> Options for Target -> Target -> Code Generation选项卡。
2. 确保在Memory Model下,选择的是正确的模型。如果您的代码段使用的是XDATA,则选择Small or Medium Model。如果您的代码段使用的是CODE,则选择Large Model。
3. 在Code/Const/RO Data/Zero Data下,设置每个段的起始地址和大小。确保Code段的起始地址与向量表的地址匹配。
4. 在LX51 Locate下,选择Use Memory Layout from Target Dialog。
5. 单击OK保存更改并重新编译代码。
如果这些步骤无法解决问题,请检查您的代码,以确保未使用任何不支持的指令或数据类型。
相关问题
keil4中*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
这个错误提示通常出现在Keil4编译器中。它指示一个公共符号引用了一个被忽略的段。在Keil4中,可以使用PUBLIC关键字来声明一个公共符号,以便可以在不同的源文件中引用它。而被忽略的段是指在链接过程中被排除的段。
要解决这个问题,你可以检查以下几个方面:
1. 确保你使用PUBLIC关键字声明的符号在其他源文件中正确引用,且没有被忽略。
2. 检查你的链接脚本文件,确保忽略的段没有被排除。
3. 检查编译器选项和设置,确保没有设置任何排除段的选项。
如果以上方法都没有解决问题,建议你查阅Keil4的文档或者咨询Keil技术支持来获取更具体的帮助。
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
引用\[1\]:*** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: ?DT?_TIMER1_DELAY1MS?DELAY LENGTH: 0004H *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: HOUTPUT SEGMENT: ?DT?OUTPUT *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: LEDTICK SEGMENT: ?DT?OUTPUT *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: _INIT_LEDPARA MODULE: .\Output\output.obj (OUTPUT) ADDRESS: 0C35H *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: CTRL_LEDSTATE MODULE: .\Output\output.obj (OUTPUT) ADDRESS: 0C5BH *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: ?_CREATETASK?BYTE SEGMENT: ?DT?_CREATETASK?UXOS *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: ?C_IBP SEGMENT: ?C?LIB_DATA Program Size: data=179.2 xdata=0 code=4545 Target not created.
引用\[2\]:转自VC错误:http://www.vcerror.com/?p=1714 问题描述: 写一个单片机程序,出现这个问题,仔细查看每一句语句,发现逻辑上没有错误,但就是出现这个问题,不能生成目标文件: *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: ?DT?USART_READWRITE LENGTH: 007AH *** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL SYMBOL: USARTREADWAVEDATA MODULE: .\Timer_DAC.obj (TIMER_DAC) ADDRESS: 0367H *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: USARTREADWAVEDATA SEGMENT: ?DT?USART_READWRITE *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: USARTDATACOUNT SEGMENT: ?DT?USART_READWRITE Program Size: data=140.3 xdata=10 code=968 Target not created 解决方法: 具体的解决方法参考文章:http://www.vcerror.com/?p=1714。
引用\[3\]:Small:变量存储在内部ram里; small模式下,再入函数的堆栈是设在idata中的 Compact:变量存储在外部ram里,使用页8位间接寻址; compact模式下,再入函数堆栈是设在pdata中的 Large:变量存储在外部Ram里,使用16位间接寻址。
问题:*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
回答: 这个错误通常是由于引用了被忽略的段(segment)导致的。在编程中,段是用来存储不同类型的数据的一种方式。根据引用\[1\]和引用\[2\]的描述,这个错误可能是由于在代码中引用了被忽略的段导致的。具体的解决方法可以参考引用\[2\]中提供的文章。
#### 引用[.reference_title]
- *1* *3* [PUBLIC REFERS TO IGNORED SEGMENT; ADDRESS SPACE OVERFLOW错误解决](https://blog.csdn.net/qq_32626931/article/details/85692819)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT 的解决办法](https://blog.csdn.net/swanabin/article/details/46912107)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文