小编rai*_*0ne的帖子

如何在 Raspberry Pico 上的第二个核心上运行代码

我正在尝试让多核在我的 pico 上工作,

#include <stdio.h>
#include "pico/stdlib.h"
#include "pico/multicore.h"

void core1_main()
{

    stdio_init_all();

    while (1)
    {
        uint32_t t = multicore_fifo_pop_blocking();
        printf("hellow world %d \n", t);
    }
}

int main()
{
    multicore_launch_core1(&core1_main);
    uint32_t i = 0;

    while (1)
    {
        sleep_ms(250);
        multicore_fifo_push_blocking(i++);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我正在努力完成的一项非常基本的任务。我正在尝试更多地了解这个多核魔法。基本上我开始等待 core1 来获取一些数据。然后我简单地打印出来并等待下一条数据。在核心 0 上,我每 250 毫秒将一个数字推送到 FIFO 一次。
我在编译时没有收到任何错误,但运行代码不会产生任何输出。
我在这里做错了什么?有什么我应该注意的吗?

我已经尝试了很多方法来获得多核,但没有用。

更新 这给了我一些输出。我添加了等待 USB 连接和初始化的时间。现在我从 core 2 收到一些消息。

#include <stdio.h>
#include "pico/stdlib.h"
#include "pico/multicore.h"

// const uint led = PICO_DEFAULT_LED_PIN;

void core1_main()
{
    printf("hellow world from second …
Run Code Online (Sandbox Code Playgroud)

c microcontroller cortex-m raspberry-pi-pico

6
推荐指数
1
解决办法
4218
查看次数

标签 统计

c ×1

cortex-m ×1

microcontroller ×1

raspberry-pi-pico ×1