看MTK的代码中有很多的宏,对于这些宏是否已经打开,程序下一步往哪里走是很头疼的。开始的时候,可以通过随便输入一些字符,然后mk r看是否有错误来确定,或者直接去查找看是否有定义(打开)这个宏,很明显这样的效率比较低啊,后来在网上看到一篇文章,可以通过查看build/CUSTOMER目录下的lis文件来跟踪程序走向,开机初始化为例。
#if defined(KAL_ON_NUCLEUS)
void Application_Initialize (void *first_available_memory)
#elif defined(KAL_ON_THREADX)
void tx_application_define(void *first_unused_memory)
#endif
{
/* setlocale(LC_CTYPE,"C"); */
__rt_lib_init(0, 0); /* passing 0 since we don't use the heap */
/* Multi-Boot */
#ifdef __MULTI_BOOT__
_boot_mode = *(volatile kal_uint16 *)BOOT_CONFIG_ADDR;
#ifndef L1_NOT_PRESENT
L1D_SetInitMode(_boot_mode);
#endif /* L1_NOT_PRESENT */
#endif /* __MULTI_BOOT__ */
systemIntialization();
#ifdef MTK_PCM
nvrm_init();
#endif
……
}
查看lis文件有如下对应项
init.obj(i.Application_Initialize) refers to lib_init.o(.text) for __rt_lib_init
init.obj(i.Application_Initialize) refers to m12100.obj(i.L1D_SetInitMode)for L1D_SetInitMode
……
可以知道L1D_SetInitMode这个函数执行了,这样就很方便了,不必为老是要去确定程序走向而烦恼。
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_wayoqi_18761.html
文章评论(0条评论)
登录后参与讨论