我用的AM437x的开发板从TI官网下载的SDK包am437x-evm-linux-rt-sdk-src-04.03.00.05,将里面的内核移植到我的开发板上,编译好后将zImage文件放入我的板子上,u-boot引导启动,出现以下信息:
Booting from mmc0 ...
bootargs=console=ttyO0,115200n8 root=/dev/ram0 rw rootfstype=ext2
Kernel image @ 0x82000000 [ 0x000000 - 0x3582c8 ]
## Loading init Ramdisk from Legacy Image at 88080000 ...
Image Name: ramdisk
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 53857443 Bytes = 51.4 MiB
Load Address: 88080000
Entry Point: 88080000
Verifying Checksum ... OK
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Loading Ramdisk to 8cca3000, end 8ffffca3 ... OK
Loading Device Tree to 8cc93000, end 8cca22b2 ... OK
Starting kernel ...
然后控制台没有信息输出了。 。 。但是我将 Preemption Model 选择为No Forced Preemption (Server)后,再次编译,再次从板子启动,则可以正常挂载内核镜像文件,完成起动过程。这是不是说明我的u-boot 和设备树是没问题的??问题出现内核上?
在我的config里面我配置了:
CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
CONFIG_PREEMPT_RT_FULL=y
CONFIG_CPU_IDLE=n
CONFIG_CPU_FREQ=n
CONFIG_SUSPEND=n
CONFIG_HOTPLUG_CPU=y
CONFIG_RCU_BOOST=n
CONFIG_RCU_NOCB_CPU=y
CONFIG_RCU_NOCB_CPU_ALL=y
目的是为了使用内核的RT功能。
各位有遇到过这种情况吗?该怎么解决呢?搞了两天了,还是没进展。。。