查看: 2954|回复: 1

[原创] 【LPC54114双核任务二】双核使用体验

[复制链接]

该用户从未签到

4

主题

6

帖子

0

注册会员

Rank: 2

积分
86
最后登录
2020-9-9
发表于 2017-7-15 13:46:11 | 显示全部楼层 |阅读模式
因为双核的工程建立比较麻烦,所以直接套用SDK带的multicore demo工程
双核工程编译也很麻烦,虽然SDK的demo已经配置好,但是还是要说一下,
首先要打开多工程环境,以uvprojw结尾文件就是,然后再导入另外一个核心的工程,
设置m0为当前有效工程,编译,然后再设置M4为有效工程,编译,最后下载。
因为SDK的demo跟LPC板子有点不同,所以需要进行一下更改,详细如下:
  1. /*
  2. * !brief LED0~LED7
  3. */
  4. #define BOARD_LED_GPIO      GPIO
  5. #define BOARD_LED0_RED_GPIO_PORT 0U
  6. #define BOARD_LED0_RED_GPIO_PIN 15U
  7. #define BOARD_LED1_RED_GPIO_PORT 0U
  8. #define BOARD_LED1_RED_GPIO_PIN 19U
  9. #define BOARD_LED2_RED_GPIO_PORT 0U
  10. #define BOARD_LED2_RED_GPIO_PIN 21U
  11. #define BOARD_LED3_RED_GPIO_PORT 0U
  12. #define BOARD_LED3_RED_GPIO_PIN 22U

  13. #define BOARD_LED4_BLUE_GPIO_PORT 0U
  14. #define BOARD_LED4_BLUE_GPIO_PIN  25U
  15. #define BOARD_LED5_BLUE_GPIO_PORT 0U
  16. #define BOARD_LED5_BLUE_GPIO_PIN  26U
  17. #define BOARD_LED6_BLUE_GPIO_PORT 0U
  18. #define BOARD_LED6_BLUE_GPIO_PIN  29U
  19. #define BOARD_LED7_BLUE_GPIO_PORT 0U
  20. #define BOARD_LED7_BLUE_GPIO_PIN  30U
复制代码

编写led初始化函数(在M0工程编写即可)
  1. void led_init(void)
  2. {
  3.     #define LED_NUM 8
  4.     /* Define the init structure for the output LED pin*/
  5.     int i;
  6.     gpio_pin_config_t led_red_config = {
  7.         .pinDirection = kGPIO_DigitalOutput,
  8.         .outputLogic = 0,
  9.     };
  10.     gpio_pin_config_t led_blue_config = {
  11.         .pinDirection = kGPIO_DigitalOutput,
  12.         .outputLogic = 1,
  13.     };
  14.    
  15.     uint32_t group_port[] = {BOARD_LED0_RED_GPIO_PORT,\
  16.                              BOARD_LED1_RED_GPIO_PORT,\
  17.                              BOARD_LED2_RED_GPIO_PORT,\
  18.                              BOARD_LED3_RED_GPIO_PORT,\
  19.                              BOARD_LED4_BLUE_GPIO_PORT,\
  20.                              BOARD_LED5_BLUE_GPIO_PORT,\
  21.                              BOARD_LED6_BLUE_GPIO_PORT,\
  22.                              BOARD_LED7_BLUE_GPIO_PORT};
  23.     uint32_t group_pin[] = { BOARD_LED0_RED_GPIO_PIN,\
  24.                              BOARD_LED1_RED_GPIO_PIN,\
  25.                              BOARD_LED2_RED_GPIO_PIN,\
  26.                              BOARD_LED3_RED_GPIO_PIN,\
  27.                              BOARD_LED4_BLUE_GPIO_PIN,\
  28.                              BOARD_LED5_BLUE_GPIO_PIN,\
  29.                              BOARD_LED6_BLUE_GPIO_PIN,\
  30.                              BOARD_LED7_BLUE_GPIO_PIN};
  31.    
  32.      for (i = 0; i < LED_NUM/2; i++) {
  33.          GPIO_PinInit(GPIO, group_port[i], group_pin[i], &led_red_config);
  34.      }
  35.      for (;i < LED_NUM; i++) {
  36.          GPIO_PinInit(GPIO, group_port[i], group_pin[i], &led_blue_config);
  37.      }
  38. }
复制代码
然后编写LED翻转函数
  1. void led_toggle(uint32_t port, uint32_t pin)
  2. {
  3.     GPIO_TogglePinsOutput(GPIO, port, 1u << pin);
  4. }
复制代码
工程需求已经完成,现在编写main函数
在main函数中添加led_init,while循环中添加
  1. led_toggle(BOARD_LED7_BLUE_GPIO_PORT, BOARD_LED7_BLUE_GPIO_PIN);
复制代码
m0工程编写完毕后,先编译,然后设置m4工程为有效工程
mian函数中更改为如下:
  1. /* Initialize MCMGR before calling its API */
  2.     MCMGR_Init();

  3.     /* Boot Secondary core application */
  4.     PRINTF("Starting Secondary core.\n");
  5.     MCMGR_StartCore(kMCMGR_Core1, CORE1_BOOT_ADDRESS, 1, kMCMGR_Start_Synchronous);

  6.     /* Print the initial banner from Primary core */
  7.     PRINTF("\r\nHello World from the Primary Core!\r\n\n");
复制代码
然后while1循环为空
编译,运行,可以看到如下现象,并且LED0和LED7一直翻转,实验成功:
TIM截图20170715134503.png
回复

使用道具 举报

  • TA的每日心情

    2018-2-28 16:09
  • 签到天数: 65 天

    连续签到: 1 天

    [LV.6]常住居民II

    8

    主题

    238

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    488
    最后登录
    2019-9-18
    发表于 2017-7-19 12:54:08 | 显示全部楼层
    good!很有价值!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-25 20:48 , Processed in 0.077659 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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