Mbed 2のターゲットをMDK-ARMでビルドする


この記事は、Mbed 2の古いターゲットをMDK-ARM(uVision IDE)でビルドする方法説明します。この手順は、2020年3月24日に確認したものです。

事前準備

以下のソフトウェアをインストールします。

  • MDK-ARM 5.29.0.0
  • Mbed-CLI 1.10.1
  • python 2.7.15

オンラインコンパイラからプロジェクトをエクスポートする

オンラインコンパイラのプロジェクトを選択し、右クリックして [Export Program...] を選択します。

Export Toolchain は、[ZIP Archive] を選択し、[EXPORT] ボタンを押します。

uvisionプロジェクトを生成する

ダウンローされたZIPアーカイブを展開します。コマンドプロンプトやPowerShellを開き、アーカイブを展開したディレクトリに移動します。

以下のコマンドで、必要なファイルをダウンロードします。

mbed deploy

なぜか途中で固まるので(原因は不明)、途中で処理を中止して再度実行します。

PS X:\LPC1114_blinky> mbed deploy                                                                                       [mbed] Working path "X:\LPC1114_blinky" (program)
[mbed] WARNING: Program "LPC1114_blinky" in "X:\LPC1114_blinky" does not use source control management.
       To fix this you should use "mbed new ." in the root of your program.
---
[mbed] Updating library "mbed" to rev #65be27845400
[mbed] Downloading library build "65be27845400" (might take a while)
[mbed] User aborted!
バッチ ジョブを終了しますか (Y/N)? n
PS X:\LPC1114_blinky> mbed deploy                                                                                       [mbed] Working path "X:\LPC1114_blinky" (program)
[mbed] WARNING: Program "LPC1114_blinky" in "X:\LPC1114_blinky" does not use source control management.
       To fix this you should use "mbed new ." in the root of your program.
---
[mbed] Updating library "mbed" to rev #65be27845400
[mbed] Couldn't find build tools in your program. Downloading the mbed 2.0 SDK tools...
[mbed] Updating the mbed 2.0 SDK tools...
PS X:\LPC1114_blinky>

mbed export コマンドで、uVision(Arm compiler v5)用のプロジェクトファイルを生成します。-i uvision5は、Arm compiler v5用のプロジェクトを生成するオプションです。以下のエラーが表示されます。

PS X:\LPC1114_blinky> mbed export -m lpc1114 -i uvision5                                                                [mbed] Working path "X:\LPC1114_blinky" (program)
Traceback (most recent call last):
  File "X:\LPC1114_blinky\.temp\tools\project.py", line 423, in <module>
    main()
  File "X:\LPC1114_blinky\.temp\tools\project.py", line 415, in main
    ignore=options.ignore
  File "X:\LPC1114_blinky\.temp\tools\project.py", line 145, in export
    notify.info("Using targets from %s" % targets_json)
AttributeError: 'NoneType' object has no attribute 'info'
[mbed] ERROR: "c:\users\toyom\.pyenv\pyenv-win\versions\2.7.15\python.exe" returned error.
       Code: 1
       Path: "X:\LPC1114_blinky"
       Command: "c:\users\toyom\.pyenv\pyenv-win\versions\2.7.15\python.exe -u X:\LPC1114_blinky\.temp\tools\project.py -i uvision5 -m lpc1114 --profile debug --source ."
       Tip: You could retry the last command with "-v" flag for verbose output
---

メッセージ表示に関連する部分のエラーなので、とりあえず無視することにします。エラーが出ているproject.pyの145行目をコメントアウトします。

再度mbed exportコマンドを実行します。

PS X:\LPC1114_blinky> mbed export -m lpc1114 -i uvision5
[mbed] Working path "X:\LPC1114_blinky" (program)
Scan: LPC1114_blinky
PS X:\LPC1114_blinky>

今度はエラーなく実行されました。LPC1114_blinky.uvprojx ファイルが生成されているのを確認します。

PS X:\LPC1114_blinky> dir *.uv*

    ディレクトリ: X:\LPC1114_blinky


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2020/03/24     11:52            823 LPC1114_blinky.uvoptx
-a----       2020/03/24     11:52          63275 LPC1114_blinky.uvprojx

ビルドする

LPC1114_blinky.uvprojx をダブルクリックで開き、ビルドします。

以上です。