我有一个原子板,我正在尝试用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 .

关于什么可能出错的任何想法?我在哪里可以看到?

谢谢,