共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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |