1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Longan NanoがPlatformIOで使えなくなっているので、なんとかする話

Posted at

はじめに

秋月で購入したSipeed Longan Nanoを試してみようと意気込んでいたところ、Sipeedのイトで紹介されているPlatformを利用した開発環境の構築がうまくいかなくなっていました…。

調べてみると、どうやら2023年7月頃からPlatformIO向けのダウンロード先が落ちてしまっているようです。日本語で開発環境の構築方法を紹介している記事もいくつか見つかりましたが、いずれも情報が古く、現在の状況には対応できていませんでした。

幸いにも、海外の方が解決策を見つけてくださっていたので、本記事ではその情報を基に、環境構築からLチカまでの方法を日本語で紹介したいと思います。

必要なもの

  • Longan Nano本体
  • USB Type-Cケーブル
  • Windows PC (windows10/11)

VSCodeとPlatformIOのインストール

※既に、VSCodeとPlatformIOを導入済みの方は飛ばしてください。

まずは、Visual Studio Codeをダウンロード&インストールします。
インストールが終わったら、VSCodeを起動し、左の「拡張機能」タブを開きます。
図1.png

検索窓に「PlatformIO」と入力し、表示された「PlatformIO IDE」をインストールします。インストールには少し時間がかかるので、辛抱強く待ちましょう。
図2.png

左側に虫さんのアイコンが増えているたら、インストール成功です。
図3.png

プロジェクトの作成

次に、PlatformIOのホーム画面から「+New Project」をクリックします。
図4.png

「Name」の欄にプロジェクト名を入力します。好きな名前で大丈夫です。

「Board」と「Framework」は後で変更するので適当に選んでください。とりあえず、「Arduino Uno」と「Arduino」にしておきます。

最後に、「Finish」ボタンを押して、プロジェクトを作成します。
図5.png

Longan Nano関係のファイルのダウンロード

PlatformIO向けのダウンロード先が利用できなくなっているため、必要なファイルを手動でダウンロードします。
以下のリンクからファイルを取得してください。
https://sourceforge.net/projects/platformio-storage/files/packages/
スクリーンショット 2024-09-10 140623.png

ダウンロードするファイルは以下の4つです。

  • framework-gd32vf103-sdk-1.0.0.tar.gz
  • toolchain-gd32v-windows_x86-9.2.0.tar.gz
  • tool-openocd-gd32v-windows_x86-0.1.1.tar.gz
  • tool-gd32vflash-windows-0.1.0.tar.gz

ファイルを探すのが大変な場合は、ページ内検索「Ctrl+F」を使って見つけてください。
スクリーンショット 2024-09-10 141641.png

ダウンロードが完了したら、それぞれのファイルを解凍してください。
スクリーンショット 2024-09-10 141845.png

解凍した4つのフォルダを、さきほど作成したプロジェクトのフォルダ内に移動させます。

プロジェクトフォルダはデフォルトであれば、次のパスにあるはずです。
C:\Users\ユーザー名\Documents\PlatformIO\Projects\プロジェクト名

プロジェクトフォルダ内に「packages」という名前のフォルダを新しく作成し、解凍した4つのフォルダを中に移動します。

スクリーンショット 2024-09-10 142428.png

現時点でフォルダ構成は以下のようになっているはずです。

├─.pio
│  └─build
├─.vscode
├─include
├─lib
├─packages
│  ├─framework-gd32vf103-sdk-1.0.0
│  ├─tool-gd32vflash-windows-0.1.0
│  ├─tool-openocd-gd32v-windows_x86-0.1.1
│  └─toolchain-gd32v-windows_x86-9.2.0
├─src
└─test

platformio.iniの編集

VSCodeでplatformio.iniを開き、以下のように書き換えます。
platform_packages = の部分で、手動でダウンロードしたフォルダの相対パスを指定しています。

[env:sipeed-longan-nano]
platform = https://github.com/sipeed/platform-gd32v.git
board = sipeed-longan-nano
framework = gd32vf103-sdk
platform_packages = framework-gd32vf103-sdk @ file://packages\framework-gd32vf103-sdk-1.0.0
                    toolchain-gd32v @ file://packages\toolchain-gd32v-windows_x86-9.2.0
                    tool-openocd-gd32v @ file://packages\tool-openocd-gd32v-windows_x86-0.1.1
                    tool-gd32vflash @ file://packages\tool-gd32vflash-windows-0.1.0
upload_protocol = dfu

Lチカプログラムの作成

次に、src/main.cを開き、以下のLチカ用プログラムに書き換えます。ファイル名がmain.cppの場合は、main.cに変更してください。

#include "gd32vf103.h"
#include <stdio.h>

/* BUILTIN LED OF LONGAN BOARDS IS PIN PC13 */
#define LED_PIN GPIO_PIN_13
#define LED_GPIO_PORT GPIOC
#define LED_GPIO_CLK RCU_GPIOC

void delay_1ms(uint32_t count)
{
  uint64_t start_mtime, delta_mtime;

  // Don't start measuruing until we see an mtime tick
  uint64_t tmp = get_timer_value();
  do
  {
    start_mtime = get_timer_value();
  } while (start_mtime == tmp);

  do
  {
    delta_mtime = get_timer_value() - start_mtime;
  } while (delta_mtime < (SystemCoreClock / 4000.0 * count));
}

void longan_led_init()
{
  /* enable the led clock */
  rcu_periph_clock_enable(LED_GPIO_CLK);
  /* configure led GPIO port */
  gpio_init(LED_GPIO_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, LED_PIN);

  GPIO_BC(LED_GPIO_PORT) = LED_PIN;
}

void longan_led_on()
{
  /*
   * LED is hardwired with 3.3V on the anode, we control the cathode
   * (negative side) so we need to use reversed logic: bit clear is on.
   */
  GPIO_BC(LED_GPIO_PORT) = LED_PIN;
}

void longan_led_off()
{
  GPIO_BOP(LED_GPIO_PORT) = LED_PIN;
}
/*!
    \brief      main function
    \param[in]  none
    \param[out] none
    \retval     none
*/
int main(void)
{
  longan_led_init();

  while (1)
  {
    /* turn on builtin led */
    longan_led_on();
    delay_1ms(1000);
    /* turn off uiltin led */
    longan_led_off();
    delay_1ms(1000);
  }
}

この時点でコンパイルが通るか、一度確認をしておきます。左下のチェックマークを押してコンパイルをしてみましょう。エラーが出る場合は、フォルダ構成やplatform.iniを再度確認してください。
図6.png

ドライバの設定

ここからは、Longan Nanoにプログラムを書き込むための準備をしていきます。

以下のリンクから「UsbDriverTool」をダウンロードし、解凍します。
https://visualgdb.com/UsbDriverTool/

解凍すると、「UsbDriverTool」というフォルダが生成されるので、中にある「UsbDriverTool.exe」を実行します。
図9.png

次に、Longan NanoをUSB Type-CケーブルでPCに接続し、DFUモードにします。
DFUモードに入るには、以下の操作を行います。
1.BOOTボタンを押す
2.RESETボタンを押す
3.RESETボタンを離す
4.BOOTボタンを離す
図10.png

Longan NanoがDFUモードになると、UsbDriverToolの画面に名前が空白のデバイスが表示されます。
このデバイスをダブルクリックし、「WinUSB」を選択して「Install」を押します。
図11.png

プログラムの書き込み

最後にVSCodeの画面左下にある「→」マークを押して、プログラムを書き込みます。
図12.png

Longan NanoのLEDがチカチカと点滅すれば成功です!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?