我非常熟悉OMAP4的Ducati框架。我想知道OMAP5
的Ducati框架是否有什么不同。因为,在OMAP4中,我查看了跟踪日志—trace0 and trace1
。但是,在OMAP5中,只有trace0
可用。
这并不是OMAP4与OMAP5的真正区别。杜卡迪子系统由2个ARM Cortex M内核组成(OMAP4上的2xM3, OMAP5上的2xM4)。RTOS的最初实现(在OMAP4上)不支持SMP,因此每个M内核运行自己的RTOS实例和自己的映像。每个内核都运行一个不同的映像,这个映像由remoteproc加载。
trace0和trace1是指正在运行的Cortex M内核ID,每个映像使用不同的ID。MPU端可以显式地向其中一个核或另一个核发送消息。
在Ducati内核上运行的RTOS(又名TI SYS/BIOS)后来得到了改进,并添加了对SMP的支持。对于Android OMAP"发布"来说,这种转变发生在OMAP5时间框架内。因此,OMAP5 Android版本上的RTOS运行的是一个映像,它知道2个Cortex M内核,并且能够在一个内核或另一个内核上调度任务。因此,只有一个'trace'实例(trace0)。然后MPU将"看到"杜卡迪作为一个单独的子系统,并将所有消息发送到这个实例(而不是发送到core0或core1)。杜卡迪子系统上的消息将被分配到在一个核心或另一个核心上运行的正确任务/线程。
我说这不是OMAP4和OMAP5的区别,因为SMP感知的SYSBIOS在某些时候也可以在OMAP4上使用(以及在非Android linux版本中)。