MDK 平台下弱声明函数实现后不能执行原因排查
使用单片机是HC32F460,库版本为V2.10,使用官方的库,是可以执行的,但是网上的一个程序增加官网例程后,一直不能执行。
使用的例子是
hc32f460_ddl_Rev2.1.0\example\ev_hc32f460_lqfp100_v1\adc\adc_03_sa_interrupt
程序中有 非显式调用 ADC2A_IrqHandler 中断。
集成AD程序后,无法设置断点
如果增加显示调用,就可以
说明了,主要是还是编译器判断ADC2A_IrqHandler 没有被显示调用,认为是没有用,就把这个函数删除了。主要是解决如何在非显示调用下,让编译器把文件保留下来。
按网上的资料更改优化级别和设定编译器版本5,或6都没有效果
后面对方官方的例程的配置和目前程序的配置,发现在官方的例程在 linker 下有多了--keep=*Handler ,这样编译时就不会自动删除掉非显式中断的调用了,测试一下,通过,搞了一天才找到原因。