. Pi Pico でマルチコアを使ってみる(base) – FRONT
Pi Pico でマルチコアを使ってみる(base) – FRONT
Pi Pico でマルチコアを使ってみる(base) – FRONT

Pi Pico でマルチコアを使ってみる(base)

コア 1 に別の 8K スタックを割り当てて、両方のコアで 8K スタックを利用できるようにするには、スケッチで次の変数を定義して true に設定するだけです。 bool core1_separate_stack = true; 他のボードの環境下(例:ArducamPico4ML)だと以下の様にmulticoreライブラリをincludeして使います。この場合はCore0からCore1を起動しています(pico-SDK のC/C++ のコードと同じ)。

#include "pico/stdlib.h" #include "pico/multicore.h" void core1_entry ( ) < Serial . begin ( 115200 ) ; Serial . println ( "core 1" ) ; sleep_ms ( 1000 ) ; void setup ( ) <

multicore_launch_core1 ( core1_entry ) ; // Start core 1 - Do this before any interrupt configuration

Serial . println ( "core 0" ) ; sleep_ms ( 100 ) ;

C/C ++ SDK

pico-sdkのインストール

sudo apt update sudo apt install - y build - essential cmake gcc - arm - none - eabi git curl mkdir ~ / pico git clone https : //github.com/raspberrypi/pico-sdk cd pico - sdk git submodule update -- init echo "export PICO_SDK_PATH=$HOME/pico/pico-sdk" >> ~ / . bashrc

pico-examplesをクローン してcmakeまでやっておき、makeは各サンプルで個別に実行することにします。

git clone https : //github.com/raspberrypi/pico-examples.git --branch master cd pico - examples mkdir build

マルチコア でHello Core 1 とCore 2 をやってみます。

Hello World サンプルではUSBのシリアルからそのままメッセージを取れるので便利で確認しやすいです。

#include "pico/multicore.h" void core1_entry ( ) < // Core1で動作させる処理 // main関数はCore0で動作する // Core1でcore1_entry関数を動作させる multicore_launch_core1 ( core1_entry ) ; // 以下Core0で動作させる処理

まず、Hello World のソースを改変します。

~/pico/pico-examples/hello_world/usb/hello_usb.c

* Copyright (c) 2020 Raspberry Pi (Trading) Ltd. * SPDX-License-Identifier: BSD-3-Clause #include "pico/stdlib.h" #include "pico/multicore.h" void core1_entry ( ) < while ( true ) < printf ( "Hello, core1!\n" ) ; sleep_ms ( 2000 ) ; //init USB port stdio_init_all ( ) ; multicore_launch_core1 ( core1_entry ) ; while ( true ) < printf ( "Hello, core0!\n" ) ; sleep_ms ( 1000 ) ;

~/pico/pico-examples/hello_world/usb/CMakeLists.txt

target_link_libraries(hello_usb pico_stdlib pico_multicore)

cd ~ / pico / pico - examples / build / hello_world / usb

~/pico/pico-examples/build/hello_world/usb/hello_usb.uf2

Arduino IDE インストール済ならシリアルモニターも簡単に使えます。

Arduino IDE がインストールされていない場合は、minicomを使ってみます。シリアルポートをモニターできます。

sudo apt install minicom - y minicom - b 115200 - o - D / dev / ttyACM0

MicroPython

ラズパイ4ではプレインストールされているThonny をMicroPython のコーディング環境に使います。

MicroPython の界隈ではマルチスレッドと呼んでいるようですが、Pico に限ってはThread = Core と考えていいようです。

import _thread Basic multi thread example from time import sleep import _thread def core0_thread ( ) : counter = 0 while True : print ( "core0:" + str ( counter ) + "\n" ) counter += 2 def core1_thread ( ) : counter = 1 while True : print ( "core1:" + str ( counter ) + "\n" ) counter += 2 second_thread = _thread . start_new_thread ( core1_thread , ( ) ) core0_thread ( )

Next

Reference

Be the first to comment Leave a Reply コメントをキャンセル 新着・更新
  • ラズパイ5+Ollama + ローカルLLM + Difyでチャットボット+RAGを実行 2026年3月25日
  • ラズパイ5にOllama + ローカルLLM + Dify を導入 2026年3月22日
  • ラズパイ5にGPUを外付けしてローカルでLLMを動かしてみる(LLM編) 2026年3月19日
  • ラズパイ5にGPUを外付けしてローカルでLLMを動かしてみる(GPU編) 2026年3月19日
  • RP2040-Zero をUART経由でラズパイZeroから制御してみる(PWM制御ーメモ) 2026年1月21日
最近のコメント
  • USB赤外線リモコン ADVANCE を使ってみます に なかの人 より
  • ExcelとGoogle Mapsで巡回セールスマン問題をやってみる(TSPソルバー) に WisteriaHill より
  • ExcelとGoogle Mapsで巡回セールスマン問題をやってみる(TSPソルバー) に odagiri より
  • docomo dtab Compact d-01 J を強制初期化 に WisteriaHill より
  • docomo dtab Compact d-01 J を強制初期化 に えみり より
カテゴリー メタ情報 リンク集 GIS
  • ●OSMタイルサーバーにしたラズパイをWi-Fiのアクセスポイントにしてみる(改)
  • ●Quantum GIS(QGIS)を使ってみよう
  • ●シングルボードコンピューターにOpenStreetMapのタイルサーバーを立ててみる
  • ●ラズパイ 4 Model B (Ubuntu 20.04 LTS Server)にQGIS3をインストール
  • ●ラズパイで経路探索ーpgRoutingの構成ファイル(XML)について
  • ●ラズパイにOpenStreetMapの最小構成タイル配信サーバをセットアップ
  • ●ラズパイ(Ubuntu 20.04 LTS Server)で空間データベース(大阪編)
  • ●ラズパイ(Ubuntu 20.04 LTS Server)にOpenStreetMapのタイルサーバーを構築
  • ●ラズパイ(Ubuntu 20.04 LTS Server)にpgAdmin4をインストール
  • ●ラズパイ(Ubuntu 20.04.1 LTS Server)- PHPでPostgreSQLに接続してクエリー発行
  • ●ラズパイ(Ubuntu 20.04.1 LTS Server)でpgRoutingを使って経路探索
インタレスト
  • ●AI用語 メモ
  • ●Google VR Viewでホットスポットを使ってみる(on the web)
  • ●勾配とテンソル(メモ)

Copyright © 2026 | WordPress Theme by MH Themes

📎📎📎📎📎📎📎📎📎📎