双核心之间怎么相互和谐-电子发烧友网

|

跟着轿车智能化的不断发展,轿车电子职业有着越来越大的商场。作为NXP在轿车电子上主推的操控器材,MPC系列高功用和高安全性MCU正在逐步提高本身的位置,发挥着更为明显的效果。本文以MPC5746R的实践运用为例,解说双中心之间怎么相互和谐,一起发挥更大的功用。

MPC5746R选用双CPU中心机制,两个独立可编程的依据e200z425的内核0和内核1,每个内核主频最高可达200M。别的还有一个依据e200z424的安全内核用于和内核0同步运转,以确保程序运转时的可靠性。

MPC5746R的两个中心同享片内外设及内存单元。一起中止操控器可认为两个中心供给各自独立的操控单元,使中止请求可以依据用户设置而交给不同的中心处理。

用户可认为两个内核编写各自独立的程序,看上去就像一个体系运转了两个线程。现实也的确如此,两个内核并行以200M的速度履行用户为其各自编写的程序,处理着各种杂乱的使命。可是有时分也会呈现一些问题导致不愉快的工作发作。

可以举几个比如:

1) 某一时刻,内核1要往某个寄存器写数据来履行功用1,但不巧此刻内核0也需求往这个寄存器写数据来履行功用0。一起写入抵触可能导致功用0和功用1都不能正常履行,这时应该何如防止。

2) 因为外设资源只需1份,假定用户设定让内核1初始化体系和资源,内核0需求在初始化完结后履行相关功用操作,那么内核0怎么在榜首时刻内知道初始化现已完结。

3) 内核1和内核0协作处理杂乱的算法,当内核0处理完了一部分算法之后想把处理结果交给内核1,这时分互相独立的双核之间怎么通讯。通讯时刻怎么节约。

其实芯片在规划的时分,早已考虑好了这些问题,并做出了相应的功用来确保双核之间的和谐运作。依据以上的示例,我们需求了解一个重要的知识点叫做信号量,信号量是一种在进程之间效果资源维护和同步的机制。

MPC5746R供给了16路的硬件信号量供用户运用,用户可以写入处理器对应的号码以确定某一路信号量而且只需确定该信号的处理器能解锁该信号。这样就为处理器之间的资源拜访维护及同步供给了硬件根底。

我们以详细的办法来处理上诉三个比如所面对的问题:

1) 内核在写入某个寄存器之前,先检测信号量是否确定,如果确定,等候信号解锁再进行操作,如果没有确定,则先确定一个信号量,比及操作完结后,再开释信号量,这样就不会呈现同享资源的拜访抵触。

2) 内核0需求等候内核1初始化完结之后才干进行功用操作,即与内核1之间进行同步。可以在内核1程序开端的时分,上锁信号量,等各项初始化完结之后,解锁信号量。而内核0则在程序开端的时分就等候该信号量的解锁,一旦解锁,就说明初始化完结,即完结同步操作,也就处理了上诉第二个问题。

3) 两个内核在通讯的时分,最重要的一个问题是接纳方怎么随时准备好接纳数据而不过多耗费CPU资源。在MPC5746R中,可以经过软中止处理。内核1 需求发送数据给内核0的时分,先装备好软件中止的优先级,然后将中止请求设置成内核0。在数据写入之后,触发中止,中止请求发送至内核0。而内核0只需写好相应的中止效劳函数,就能在不过多耗费CPU资源的情况下,经过中止接纳数据,完结内核间的通讯。

需求留意的是,关于独立的双核之间通讯数据的存取,MPC5746R并没有为此独自拓荒一个空间。可是在实践运用中,一种可行的办法是灵敏的运用各通讯模块中,未运用的缓冲单元。例如CAN模块中,最多有96个数据缓冲结构,CAN通讯的进程中并不一定都会运用,我们可以依据实践需求运用几个数据缓冲单元作为内核间数据传输的通道。需求发送数据的内核将数据写入指定的数据缓冲结构体,然后触发软件中止。接纳一方在中止效劳函数中将数据从数据缓冲结构体中读取出来。可以在缓冲结构体中设置一些标志位来判别读写是否成功。

以上就是双核之间资源维护,同步和通讯的一些详细示例办法,当然办法并不是仅有的,期望读者在运用进程中可以触类旁通,灵敏运用,终究到达 双核交火,协同作战 的意图。

周建功单片机技能专区 处理首波丢失时对体系的影响成为超声波体系运用要害LPC1754内部PLL0原理及运用规划详解State状况形式推导进程以及完好完成计算机的简略理论模型到有限状况机搞轿车电子,怎么挑选一款高功用处理器
请尊重我们的辛苦付出,未经允许,请不要转载ca88亚洲城【官】_电子爱好者网的文章!
上一篇:传感器到底在哪些应用上最炽热?-电子发烧友网
下一篇:东芝成功研制全新一代SCiB车用锂离子电池-电子发烧友网