查看: 4614|回复: 1

[原创] 【LPC54114Bonus任务二】简单数据回显

[复制链接]
  • TA的每日心情
    开心
    2018-6-6 08:45
  • 签到天数: 328 天

    连续签到: 1 天

    [LV.8]以坛为家I

    10

    主题

    1047

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    2006
    最后登录
    2019-5-1
    发表于 2017-8-5 15:49:59 | 显示全部楼层 |阅读模式
    周六了终于有时间研究一下LPC54114双核功能了,开始之前推荐大家阅读一下社区分享的双核文档dual_core_lpc5411x.pdf或是170711_1910_dual_core_lpc5411x_cn.pptx,阅读完之后就会对双核的开发有了清晰的了解。由于之前已经有很多人发布了有关双核的任务二例程了,所以这里就先上一个简单的例程,后续有了新的想法再来更新。
    一、准备工作
    安装虚拟串口驱动,论坛里有资源,链接如下:https://www.nxpic.org.cn/module/forum/thread-609848-1-1.html,如有需要也更新一下调试器固件。
    二、双核通信原理
    LPC54114搭载了一颗Cortex-M4内核和一颗Cortex-M+内核,两者共用外设,一般而言M4内核作为主核,而M0+内核作为从核,二者在复位后同时启动,在启动文件中可以看到,M4内核是正常启动,而M0+内核在启动之后就进入休眠模式直到M4内核唤醒它,通常是M4主核启动后加载M0+内核的代码到RAM中,然后唤醒M0+内核,使得M0+内核正常运行。LPC54114提供了MAILBOX机制来使得M4内核和M0+内核可以进行简单通信。
    三、示例
    M4内核启动完成之后,加载M0+内核的代码到RAM中,并通过MAILBOX发送消息到M0+内核,之后进入休眠模式,等待中断唤醒,收到MAILBOX中断后通过串口打印收到的消息;M0+内核正常运行后进行串口查询操作把收到的字符通过MAILBOX发送到M4内核,并监测M4内核发来的消息。例程是在driver/mailbox/interrupt基础上糅合了driver_examples\usart\polling例程而来。完全贴近任务二的要求,
    M4内核代码几乎无改动,收到消息后的处理如下:
    捕获.PNG
    M0+内核启动后初始化串口资源,在主循环中查询是否有收到串口字符信息,如下:
    捕获.PNG
    其MAILBOX中断很简单,直接输出收到的消息:
    捕获.PNG
    下载代码到板子上运行,结果如下:
    捕获.PNG
    可以看到,跟我们设计的结果是相同的,
    M4内核启动完成之后发送消息到M0+内核:write to CM0+ mailbox register: 1
    M0+内核收到信息后通过串口打印出来:Receive value from CM4 Core: 1
    在串口中输入字符后M0+内核会把收到的字符发送到M4内核中,并通过串口输出:Read value from CM4 mailbox register: 5
    四 总结
    虽然LPC54114提供了MAILBOX机制进行双核通信,但是我们仍可以看到MAILBOX机制的不足,MAILBOX只适合小数据量的通信,尤其适合消息通知,因为其只能传递32bit数据,当进行大数据通信时就得使用其他通信方式了,如共享内存等,LPC54114的SDK中也提供了双核通信的库multicore_2.2.0,接下来就是研究一下该库的使用了。

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-2-5 17:05
  • 签到天数: 206 天

    连续签到: 1 天

    [LV.7]常住居民III

    28

    主题

    1814

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    5875
    最后登录
    2025-6-26
    发表于 2017-8-6 12:47:38 | 显示全部楼层
    给力给力
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-24 08:12 , Processed in 0.082674 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表