8S007在实际工程应用中,当我们的全局变量赋值太多时,会出现启动延时的问题。因为我们的程序在运行程序前,需要先初始化全局变量,初始化完之后才运行程序,全局变量赋值太多,就会出现初始化慢的问题,导致启动时间变慢。例如工程中全局变量“unsigned char data1[500]=0,当有多个这种全局变量是,时间就会增长。这对于一些需要频繁开机关机的工程,影响就会很大下图是我们8S007的SDK的截图,
我们的SDK的启动过程是这样的:在进入main函数前,会在启动文件里进行初始化,而在初始化的这段时间里跑的是64k的低速RC,只有当进入main函数时执行了system_init()这个函数时,才会讲时钟从64k的低速转换为高速。这就解释了为什么全局变量赋值多会造成启动时间慢的问题了。
解决步骤如下:
在初始化的时候就将时钟从64k低速切换为48M高速
在上图中的STARUP.A51启动文件中加入system_init函数
最后将main函数的system_init注释掉就可以了。通过上面的步骤就是实现了在初始化时就跑48M而不是到main函数后才跑48M
|