2989|4

3416

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

【LPC54100】LPCXpresso自建工程,双核正式工作 [复制链接]

本帖最后由 ljj3166 于 2015-3-19 23:24 编辑

LPCOpen库里面带有一对双核的example

试过用M0核去操作外设,一直编译不过

后来看了看readme

  1. What this example does: m0slave_blinky
  2. - Uses a special version of the startup code that bypasses SystemInit().
  3. - Does not link agains tthe board library (M4 does board init)
复制代码


原来m0采用了特殊的启动文件,没有进行初始化

没有链接到板级库,自然也就不能操作外设了

看样子,两个核都需要配置外设,才能使用起来

索性自己再建一个双核工程吧



如何建立工程:http://www.lpcware.com/content/faq/lpcxpresso/lpc541xx-multicore-apps

非常清晰的过程,这里就不再累述了

这个官方指导链接也遗漏了一些细节,不过不影响

一直想在线debug双核,发现怎么也配置不对,那位大神科普一下



直接看看代码吧

M4侧:

  1. #include "board.h"
  2. #include <cr_section_macros.h>
  3. #include "boot_multicore_slave.h"
  4. unsigned char cnt_m4;

  5. int main(void) {
  6.     SystemCoreClockUpdate();
  7.     Board_Init();
  8.     Board_UARTPutSTR("Core M4 boot......\r\n");
  9.     SysTick_Config(SystemCoreClock/10);   //M4的systick
  10.     Board_LED_Set(0, false);
  11.     boot_multicore_slave();    <font color="#ff0000">//boot slave核,这里没有配置入口地址,全默认</font>
  12.     volatile static int i = 0 ;
  13.     while(1) {
  14.         i++ ;
  15.     }
  16.     return 0 ;
  17. }

  18. void SysTick_Handler(void)
  19. {
  20.         cnt_m4++;
  21.         if(cnt_m4>=20)  
  22.         {
  23.                 cnt_m4 = 0;
  24.                 Board_UARTPutSTR("Core M4 SysTick on......\r\n");
  25.         }
  26. }
复制代码


M0侧:

  1. #include "board.h"
  2. #include <cr_section_macros.h>
  3. #include "boot_multicore_slave.h"
  4. unsigned char cnt_m0;
  5. int main(void) {
  6.     SystemCoreClockUpdate();
  7.     Board_Init();
  8.     Board_LED_Set(0, true);
  9.     SysTick_Config(SystemCoreClock/10);
  10.     Board_UARTPutSTR("Core M0+ boot......\r\n");
  11.     volatile static int i = 0 ;
  12.     while(1) {
  13.         i++ ;
  14.     }
  15.     return 0 ;
  16. }

  17. void SysTick_Handler(void)
  18. {        cnt_m0++;
  19.         if(cnt_m0>=5)
  20.         {
  21.                 cnt_m0 = 0;
  22.                 Board_UARTPutSTR("Core M0+ Toggle LED0......\r\n");
  23.                 Board_LED_Toggle(0);
  24.         }
  25. }
复制代码



上面的代码很简单

大概就是

由M0来点亮LED0(红色LED)每5个systick翻转一次并串口打印

M4纯粹打酱油,只在每20个systick在串口刷一下存在感

暂时还没有加入mailbox的动作,下次再整吧



前段时间粗略扫了一下user manual

记得mo和m4的systick可以共用的

不知为毛,在这对工程代码里面,m0也得初始化systick才能正常使用

记错了?



上个GIF







此帖出自NXP MCU论坛

最新回复

#include #include "boot_multicore_slave.h" 这两个头文件哪里来的/   详情 回复 发表于 2015-3-22 21:56
点赞 关注
个人签名

So TM what......?

 

回复
举报

3416

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
我沙发一下吧
此帖出自NXP MCU论坛
 
个人签名

So TM what......?

 

 

回复

1403

帖子

1

TA的资源

纯净的硅(中级)

板凳
 
Very Good,赞一个~~
此帖出自NXP MCU论坛
 
个人签名HELLO_WATER
 
 

回复

2057

帖子

0

TA的资源

五彩晶圆(初级)

4
 
#include
#include "boot_multicore_slave.h"
这两个头文件哪里来的/
此帖出自NXP MCU论坛

点评

新建双核工程,自动就include了  详情 回复 发表于 2015-3-22 23:45
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

5
 
新建双核工程,自动就include了
此帖出自NXP MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表