Ti没有双核A9,Imx6能做到一个核跑Linux,一个核裸奔么?

2020-02-11 10:04发布

实时性要求和网络要求很高,又不想上VxWorks,毕竟比较贵。
所以打算上一个双核的A9,一个核跑Linux,负责网络、文件这些,一个核裸奔,处理实时数据。
裸奔核对外设要求很低,就串口和GPMC。
但是,需要裸奔的核能够访问外部的DDR3,以便和Linux核交换数据。不知道飞思卡尔官方这方面的技术支持么?
就我粗读手册来看,DDR控制器和两个A9都挂在AHB上,
那么一个A9初始化完成控制器,在MMU中把部分DDR设置成不映射,那么另外一个A9应该可以通过读写这块内存来实现双核之间的数据交换?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
100条回答
dr2001
2020-02-12 21:47
fengxin32 发表于 2015-1-7 21:40
就是啊,所以很疑惑。
理论上可行,但是官方没有资料,我们都是用Ti得,所以得问问IMX6得细节。
其实这个问 ...

1、可以。Kernel BootArg加maxcpus=1即可。
但是,似乎,理论上,Linux Kernel只能跑在CPU0上,就是系统Boot引导的那个Primary CPU。

2、DDR初始化Kernel不管,这是UBoot或者上一级BootLoader干的。
Kernel只是获得可用内存空间并且用,内存控制器初始化不管。
当然,低功耗、休眠的时候可能会去操作内存控制器,但正常情况下不介入。

3、裸奔工程框架和你单核裸奔(或者从主处理器Boot,裸奔)是一样的。
MMU,L1是每个核独享的,自己想怎么初始化都行。
L2,GIC是双核共享的,这个由Linux Kernel初始化,裸奔工程要小心处理,不能影响Kernel方可。
其它独享外设随便用。

问题在于Kernel加载和裸奔代码的加载流程控制上,此外是共享资源和Kernel的互动上。这两个要需要比较好的技术支持才容易搞。

一周热门 更多>