WinCE的编译系统 - 开发板教程专区 - 天嵌科技 ARM开发社区 TQ2440,SK...
WinCE的编译系统 当发生硬件中断的时候,WinCE内核调用OEMInterruptHandler函数, 但是在TQ2440开发包下有两个文件,分别为:\TQ2440\Src\Common\Intr_dvs\intr.c,和 \TQ2440\Src\Common\Intr\intr.c。这两个文件都包含OEMInterruptHandler函数, 那么WinCE内核会调用哪个文件里的OEMInterruptHandler函数呢? PB在编译操作系统镜像的时候是怎么判断调用的函数所在的文件的,请高手指点,越详细越好。 | |
| |
| |
| 系统调用的是TQ2440\Src\Common\Intr\intr.c文件中的,判断的依据是:TQ2440\Src\Common\dirs文件中并没有添加对Intr_dvs的编译,并且可以查看Intr\sources和Intr_dvs\sources文件中生成的目标文件,两者的目标文件是不同的,而因为这个不同,整个BSP包调用的对应的库文件名称也不同,你可以搜索整个BSP,你可以知道系统没有对Intr_dvs下得到的目标文件的进行调用。所以。。。。。 | |
| |
| |
| 谢谢你,我明白了。 还有个不明白的地方:BSP包里并没有实现OEMInterruptEnable函数,那么系统调用哪个文件的OEMInterruptEnable函数呢,系统是怎么调用这个函数的呢? | |
| |
| |
| 在二楼给你说了,分析sources文件可以知道怎么调用各个函数的,这里还是分析sources,然后得出如何调用你说的那个函数的。你说的那个函数在PB的“PLATFORM\COMMON\SRC\COMMON\INTR\COMMON\oem.c”文件中,那么打开同目录下的sources文件,主要内容如下: TARGETNAME=oal_intr_common TARGETTYPE=LIBRARY 这两行,第一行是说生成的文件名称,第二行是说生产的文件类型。 而oal_intr_common.lib又是在“PLATFORM\COMMON\SRC\COMMON\INTR\BASE\sources”文件中被调用,并且得到一个新的库文件:oal_intr.lib。 oal_intr.lib文件是在“PLATFORM\TQ2440\Src\Common\Intr\sources”文件中被调用的,至此,关于你说的函数的调用就算是分析完成了。系统会根据sources文件去寻找对应lib文件,当不存在改lib文件系统会自动查找源码并编译得到对应的lib,如果系统查找不到源码,系统就会报错。 对于为什么系统会自动分析sources文件并且自动查找或编译,那就需要问微软为什么要设置为查找sources文件而不是别的文件了。 | |
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。