3327|4

527

帖子

1

TA的资源

一粒金砂(高级)

楼主
 

LPC54100-week2_about_Dual processor core_ supermiao [复制链接]

这次学习文档主要是琢磨一下双核是怎么协同工作的,了解的比较浅,望大家指正!详细请下载附件

week2_about_Dual processor core_ supermiao.docx

680.84 KB, 下载次数: 54

此帖出自NXP MCU论坛

最新回复

楼主的分享给力   详情 回复 发表于 2015-2-27 23:36

赞赏

1

查看全部赞赏

点赞 关注(1)
 

回复
举报

527

帖子

1

TA的资源

一粒金砂(高级)

推荐
 
本帖最后由 supermiao123 于 2015-2-27 13:31 编辑

Week 2
About Dual processor core
2015.2.25
首先,根据用户手册看到双核一个M4,一个M0,他们的功能参数具体可以看手册,本节着重了解关于双核之间相对关系及如何去使用。
首先可以看下框图:

由上图,可以看出M4M0是并列的,它们都可以使用AHBAPB总线。它们的调试接口都可以用SWD

The ARM Cortex-M4 includes threeAHB-Lite buses, one system bus and the I-code and
D-code buses. One bus is dedicatedfor instruction fetch (I-code), and one bus is
dedicated for data access (D-code).The use of two core buses allows for simultaneous
operations if concurrent operations target differentdevices.
这端的意思是说有三个总线system bus andthe I-code and
D-code buses。其中,I-CODE D-CODE一个是用于取指令,一个是用于取数据,可以并行使用。也就是所谓的哈弗结构。而system BUS由图可知,主要是与APB通信,就有与外设通信。
APB(AdvancedPeripheral Bus),片上外设总线。主要用于慢速片上外设与ARM核的通讯
AHB(Advanced High performance Bus)
,高性能总线。主要用于系统高性能、高时钟速率模块间通信
下面是对M4的一个简介

其中 THUMB-2是一种新的指令为ARM架构,可提供增强的性能,能效和代码密度水平。可以看下图(稍微有点跑题,科普一下)

其他的都是介绍,先不管,就记住最后一句,关于M4的问题去32章去找。
下面这个是关于M0的介绍

The Cortex-M0+ has a 2-stage pipeline
M0有两级流水线。

还是最后一句,M0也在32章等我。

盛情难却,32章我来了。



首先是M4的,大致的介绍了下M4都有哪些功能,我觉得对于现在我想了解的,还是最后一句有用。

想了解调试功能,请去29章等我。
我猜M0的也是一样的。

果不其然,29章,I’M COMING!


29章是SWDSWDJTAG引脚我就不说了,直接跳到双核部分。


M48个断点,4个数据观察点。
M04个断点,2个数据观察点。

由于没有玩过双核的ARM,所以,到此为止心中疑惑还是没有解开。双核是如何分配工作的?如何烧写程序,分别烧写还是可以统一烧写?等等,话说菜鸟问题多,我承认,



还好,还是有例程去帮我理解的。



打开双核的范例,可以看到有四个库文件工程,两个可执行的工程。一个是M4,一个是M0。看到这里,我是不是该知道点什么了,应该是两个处理器分别编程,分别写程序,分别下载,那他们不会冲突么?

带着这个疑问,打开一个工程,看看例子里怎么说的:



myCoreBox = MAILBOX_CM4;
         otherCoreBox= MAILBOX_CM0PLUS;

         /*Initialize mailbox with initial mutex free (master core only) */
         Chip_MBOX_Init(LPC_MBOX);
         mutexGive();

         /*Setup shared memory location for LED states, bit 0 = LED 0 state,
            bit 1 = LED state 1. Master core controlsbit 0, while slave core
            controls bit 1. Only master can set the LEDstates. */
         sharedLEDStates= 0x01;

         /*Enable mailbox interrupt */
         NVIC_EnableIRQ(MAILBOX_IRQn);

         /*Enable SysTick Timer only on the master */
         SysTick_Config(SystemCoreClock/ TICKRATE_HZ);

         /*Boot M0 core, using reset vector and stack pointer from the CM0+
            image in FLASH. */
         stackAddr= (uint32_t *) (*(uint32_t *) M0_BOOT_STACKADDR);

         jumpAddr= (uint32_t *) (*(uint32_t *) M0_BOOT_ENTRYADDR);
Chip_CPU_CM0Boot(jumpAddr, stackAddr);

通过上面那几句代码,大概能理解一些,是通过一个mailbox的机制来进行处理器之间的沟通,一个是主处理器,一个是从处理器。然后处理器之间会触发中断来提醒对方。后面还有一些堆栈的操作我就不太清楚了。去看看手册吧。


27章便是mailbox的介绍。
Provides a means Inter-Processor Communication, allowing multiple CPUs toshare
resources and communicate with eachother in a simple manner.
Each CPU can cause up to 32 user defined interrupts to its partner.
EachCPU can claim a shared resource if it is available.
•提供了一种处理器间通信,使多CPU共享资源并彼此以简单的方式进行通信。
•每个CPU可导致多达32个用户定义的中断,给其合作伙伴。
•每个CPU可以要求共享资源(如果可用)。
(感谢谷歌翻译)

通过上面的文字,我们大概的了解了一下mailbox是干什么的。



相关的寄存器共有以上几个,主要是两个部分,一个是IRQ,一个是MUTEX
IRQx是中断寄存器,它上的每一位代表一种情况,可以根据这个寄存器来判断另一个CPU要如何操作。
IRQxSET是置位,IRQxCLR是清位。

MUTEX是一个是否可以控制共享资源的标识寄存器,当读取为1是便取得了控制权,读取为0时需等待另外一个CPU操作完成。操作完成后写任何值后释放控制,该寄存器为1

由此,两个CPU的协作原理算是清楚了一些了。具体的详细操作,请看例程。



此帖出自NXP MCU论坛
 
 
 

回复

5263

帖子

239

TA的资源

管理员

沙发
 
建议楼主最好直接将内容展现在帖子里,易于查看交流
此帖出自NXP MCU论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

好的  详情 回复 发表于 2015-2-27 13:09
 
 
 

回复

527

帖子

1

TA的资源

一粒金砂(高级)

板凳
 
nmg 发表于 2015-2-27 11:14
建议楼主最好直接将内容展现在帖子里,易于查看交流



好的
此帖出自NXP MCU论坛
 
 
 

回复

1291

帖子

0

TA的资源

纯净的硅(中级)

5
 
楼主的分享给力
此帖出自NXP MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表