为什么是EEFOCUS小白 发表于 2015-8-19 11:16:42

MDK开One ELF Section Function,DAC就不工作

MDK开One ELF Section Function,DAC就不工作,优化等级0

党国特派员 发表于 2015-8-19 14:47:01

编译器在处理一个 c 文件的时候呢,如果这个选项不选,那么这个C文件中的所有函数在编译后只会产生一个叫 .text 的输出节
AREA ||.text||, CODE, READONLY, ALIGN=2

如果选了呢,那么每个函数将会产生一个输出节,如果你用C写了一个叫PRTL_HeadGet()的函数,那么编译器将会产生一个叫 i.PRTL_HeadGet 的输出节,具体如下。
                        AREA ||i.PRTL_HeadGet||, CODE, READONLY, ALIGN=2

                  PRTL_HeadGet PROC
;这样的话,编译器产生的输出节,粒度小多了,便于找到没有使用的函数,将它从最后输出文件中删除。这样,你最后产生的可执行文件大小将会变小。
你能你的重要代码代码编译器认为没有使用,删除了。

wuwovicky 发表于 2015-8-19 15:28:31

就单单DAC功能不能用?最近我也发现这个功能,代码缩减10k左右,RTC 、ADC、SD功能一直正常。

Johnson Cao 发表于 2015-8-19 16:07:24

是不是有什么中断函数,没有调用的地方,被优化掉了.

moyanming2013 发表于 2015-8-19 17:21:28

学习了。。。

stary666 发表于 2015-8-19 21:25:27

看看,,,,,,,,,,

为什么是EEFOCUS小白 发表于 2015-8-20 09:48:22

党国特派员 发表于 2015-8-19 14:47
编译器在处理一个 c 文件的时候呢,如果这个选项不选,那么这个C文件中的所有函数在编译后只会产生一个叫 . ...

但是这个函数是调用了的,为什么会被优化掉呢

为什么是EEFOCUS小白 发表于 2015-8-20 09:49:42

wuwovicky 发表于 2015-8-19 15:28
就单单DAC功能不能用?最近我也发现这个功能,代码缩减10k左右,RTC 、ADC、SD功能一直正常。 ...

方便试下DAC么

为什么是EEFOCUS小白 发表于 2015-8-20 09:49:59

Johnson Cao 发表于 2015-8-19 16:07
是不是有什么中断函数,没有调用的地方,被优化掉了.

没有使用中断函数

JackieLaura 发表于 2015-8-20 10:20:49

没有遇到过这种问题,看大拿给解决办法。。。
页: [1] 2
查看完整版本: MDK开One ELF Section Function,DAC就不工作