刚刚接触STM32的开发,发现用RVMDK编译生成的hex文件比用EWARM生成的大很多,同一个工程,前者生成的文件有31K,后者只有6K。原因在哪里?
IAR编译时,没有调用的函数是不会编译到hex文件中的,Keil是不是把没有调用的函数编译到hex文件中去了呢?真实情况就是这样。
作为这么一款优秀的开发工具,Keil不会这么白痴吧。
实际上是,Keil提供一个选项,由用户决定是否把没有调用的函数编译到目标文件中去。
设置方法如下:
Options -> C/C++ -> Language/Code Generation 勾选 “One ELF Section per Function”
试试看吧。
感谢同事,呵呵。