我有一个原子板,我正在尝试用VxWorks 5.5.1构建一个BSP。 我有bootrom工作,它从硬盘加载vxworks.st映像(在IDE模式下配置mSATA)。
我使用pcPentium4 BSP作为构建BSP的基线。虽然原子核有多个线程,但所有其他AP都处于INIT SIPI模式(BIOS是基于EFI的,但它有CSM支持)
BSP是在基本PIC支持的情况下编译的(因此没有启用VIRTUAL_WIRE或SYMMETRIC_IO_MODE)。
bootrom中的bootElfModule()将控制权传递给vxworks映像。调用usrConfig.c中的usrInit()函数。
控件一直在usrConfig.c中的usrInit()中调用kernelInit()函数,但是kernelInit()会挂起。我在调用kernelInit()之前验证了x86 EFLAGS:IF标志为0。我还通过在调用kernelInit()之前显式调用sysIntDisablePIC()来显式禁用所有15个IRQ。
有趣的是,相同的内核在bootrom中工作,其中相同的代码用于创建tBoot任务(然后加载vxworks图像)。
我在bootrom上读取了WindRiver的appnote,并说当调用kernelInit()时可以启用中断,所以我明确地禁用了所有IRQ。
关于可能出现什么问题的任何想法?我在哪里可以看?
谢谢,