问题是这样的:我在使用KL25的时候定义了几个已初始化的全局变量,但在程序运行时这几个全局变量并不是我初始化的值,也就是RAM中的一个随机值,后来看了官方例程中KL的启动过程,调用了common_startup(void)函数,复制ROM的.data和.bss段和一些数据到RAM中,而我一直没有调用这个函数,如果调用了的话会之前初始化的全局变量的值就正常了,.bss区的都是自动清0但就.data区的是随机值,定义的变量不是自己初始化吗,在这里还要复制一下才能初始化?为什么要复制中断向量表和之后的一些数据到RAM中?复制之后又什么作用?
还有就是__iar_program_start()这个函数在那里,我想看看这段代码,就是找不到。 |