共2条
1/1 1 跳转至页
各位大虾给看看我的一个工程编译后的警告,看看有何对策.
问
下面是我的一个不小不大的工程编译后keil提出的警告,其中警告1~5我怎么看都不可能会递归调用.但他就偏偏给出警告.
另外,请大虾指点一下,为什么警告9~15会出现 STARTUP 也调用的情况,印象中STARTUP 只是上电是初始化用的,为何会出现
STARTUP 和其他程序同时调用另一程序的情况呢.
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
Build target 'Target 1'
assembling STARTUP.A51...
compiling menu .c...
compiling Software Driver for 29le101.c...
compiling driver for ssd1815bb.c...
compiling DS1302.C...
compiling keysCAN.C...
linking...
警告1
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MENU__
CALLER: ?PR?_DISPLAY_WEEK?DS1302
警告2
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MENU__
CALLER: ?PR?FUNC_ROOT_D_1?MENU__
警告3
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MENU__
CALLER: ?PR?_DISPLAY_MENU?MENU__
警告4
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MENU__
CALLER: ?PR?FUNC_ROOT_D_2?MENU__
警告5
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MENU__
CALLER: ?PR?FUNC_ROOT_D_3?MENU__
警告6
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?ENABLE_CHIP_DATA_PROTECTION?SOFTWARE_DRIVER_FOR_29LE101
警告7
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_FLASH_LOAD_DATA?SOFTWARE_DRIVER_FOR_29LE101
警告8
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?LCM_ROLLSCREEN?DRIVER_FOR_SSD1815BB
警告9
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DISPLAY_TIME?DS1302
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告10
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_READ_TIME_1302?DS1302
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告11
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DISPLAY_SUPER_BIG_CHAR?DRIVER_FOR_SSD1815BB
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告12
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_LCM_DISPLAY_STRING?DRIVER_FOR_SSD1815BB
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告13
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DISPLAY_ASCII_CHAR?DRIVER_FOR_SSD1815BB
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告14
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DISPLAY_WEEK?DS1302
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告15
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DISPLAY_YEAR_DATE?DS1302
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
Program Size: data=112.1 xdata=29 code=6380
creating hex file from "encoder"...
"encoder" - 0 Error(s), 15 Warning(s).
答 1: 通常都是常数段调用问题。把你的那些常数指针之类的东西拿到另一份单独的文件中就没有了。
另外,请大虾指点一下,为什么警告9~15会出现 STARTUP 也调用的情况,印象中STARTUP 只是上电是初始化用的,为何会出现
STARTUP 和其他程序同时调用另一程序的情况呢.
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
Build target 'Target 1'
assembling STARTUP.A51...
compiling menu .c...
compiling Software Driver for 29le101.c...
compiling driver for ssd1815bb.c...
compiling DS1302.C...
compiling keysCAN.C...
linking...
警告1
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MENU__
CALLER: ?PR?_DISPLAY_WEEK?DS1302
警告2
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MENU__
CALLER: ?PR?FUNC_ROOT_D_1?MENU__
警告3
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MENU__
CALLER: ?PR?_DISPLAY_MENU?MENU__
警告4
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MENU__
CALLER: ?PR?FUNC_ROOT_D_2?MENU__
警告5
*** WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MENU__
CALLER: ?PR?FUNC_ROOT_D_3?MENU__
警告6
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?ENABLE_CHIP_DATA_PROTECTION?SOFTWARE_DRIVER_FOR_29LE101
警告7
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_FLASH_LOAD_DATA?SOFTWARE_DRIVER_FOR_29LE101
警告8
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?LCM_ROLLSCREEN?DRIVER_FOR_SSD1815BB
警告9
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DISPLAY_TIME?DS1302
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告10
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_READ_TIME_1302?DS1302
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告11
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DISPLAY_SUPER_BIG_CHAR?DRIVER_FOR_SSD1815BB
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告12
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_LCM_DISPLAY_STRING?DRIVER_FOR_SSD1815BB
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告13
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DISPLAY_ASCII_CHAR?DRIVER_FOR_SSD1815BB
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告14
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DISPLAY_WEEK?DS1302
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
警告15
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DISPLAY_YEAR_DATE?DS1302
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIMER2_INT1_SERV?MENU__
Program Size: data=112.1 xdata=29 code=6380
creating hex file from "encoder"...
"encoder" - 0 Error(s), 15 Warning(s).
答 1: 通常都是常数段调用问题。把你的那些常数指针之类的东西拿到另一份单独的文件中就没有了。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |