wp_espi のすべての投稿

MSPM0マイコン用のサンプルプログラムのビルド手順

超久しぶりにブログを書いてみる。

最初に断っておくと、私はまだ MSPM0マイコンのターゲットを何も持っていない。LaunchPadのひとつもあればいいけど持っていない。なので、以下は「開発環境でサンプルプログラムがビルドできました」という内容です。

TIが新しく発売を始めた、MSPM0マイコンは、今まで似た名前の、MSP430シリーズが独自の16bit CPUコアだったのに対して、ARM Cortex-M0+ CPUを内蔵したマイクロコントローラのシリーズだ。32bitになったのに、価格が安いのが特徴。 TIの人や代理店の話では、TIが自社工場で製造しているので価格のコントロールがしやすいのだそうだ。 (対するMSP430の方は、FRAMもあってプロセスの関係で自社工場に引き取るのはちょっとむずかしいのだとか。)

私はMSP430のプログラムをCCS (Code Composer Studio)を使ってコーディング、ビルド、ターゲットマイコンへの書き込みは経験しているので、MSPM0も同じようにできるだろうと思って試してみたらできなかった。
具体的には、CCSをインストールして (もちろんインストール時にMSPM0マイコンを使う選択をする)、FileメニューでNew→CCS Projectで新しいプロジェクトを作り、チップはMSPM0xxxxなど適当に選び、 Empty Project (with main.c) を選んで、空っぽに近い main.c のソースができたら、そのまま Build Project する。
これではエラーが出て、ビルドできなかった。

(ちなみに、MSP430だとこの手順でビルドの通るプロジェクトが作れる)

では、どうやればできるのか。
ここは素直に、まずは TIから用意されたサンプル・プログラムをそのままビルドしてみることにした。

まず CCSで、Getting Started の画面を出す。(起動直後には出ているが、表示されていなければ、メニューの View → Getting Statedで表示される)
Browse and Import Example を選ぶ。

すると、Create New Project の画面になるので、まずはターゲットボードか、デバイス (チップ)の型番を入れる。持ってないけれど LaunchPad の LP-MSPM0C1104を選んでみよう。途中までキー入力すると候補が出る。

ターゲットを選ぶと、その下に Choose a template that you would like… と出るので、下へスクロールしていって、
gpio_toggle_output というサンプルを選ぶ。名前からして、多分これがいわゆる 「Lチカ」だろう。



すると画面下に、Configure selected projectとでているが、ここで Compilerの欄はコンパイラを選択する必要がある。IARは、IAR Embedded workbenchを使う人用だと思うので、それ以外の、GCC か CCS-TI Arm Clangのどちらかにする。どちらを選んでもいい。
その後、右端の “CREATE”ボタンを押す。



デバイスは何か、とあらためて問われるので、MSPM0C1103を選ぶ。


この後であるが、

・MSPM0シリーズに必要な SDK などが、自動的にダウンロードされるなどの処理が始まる。
・そのあとで、サンプルプログラムの gpio_toggle_outputをダウンロードするかとダイアログが出るのでダウンロードを選ぶ。

ここまでやると、サンプルソースを含んだ、新しい Project ができあがる。gpio_toggle_output.c を見てみると、それらしい内容が書かれている。

メニューバーから Project → Build Project を選んでビルドしてみると、エラーも無く **** Build Finished **** がコンソールに出れば、無事、成功である。



さて、サンプルプログラムの場合はこれでよいとして、
自作プログラムをスクラッチで書きたい場合、空っぽのテンプレートをまず用意するには、どうすればいいのか? という疑問がわいてくる。

それについては、サンプルプログラムを選んだ画面で、上の方には
empty_mspm0xxxx という、空のプロジェクトのひな型が並んでいるリストがあるので、使用するターゲットデバイスのものを選んでプロジェクトを作れば、main() がほぼ空っぽのソースのプロジェクトが作れる。
この手順を踏んで、ソースの中身を書いていけばよさそうである。


観察していると気づくが、この empty project は “using DriverLib” と書かれている。
DriverLibは、MSP430のときにも提供されていた。ADCやタイマーやシリアルI/Oなど、色々な機能を利用するときに便利に使える関数群で、MSPM0でも同様の物であると推測される。

MSP430のときは、DriverLibを利用するとコンパイル後のコードサイズが大きくなってしまい、Flashメモリの少ないデバイスでは使いづらかった場合もあったが、MSPM0では利用するのが前提みたいな感じなのだろうか? (恐らくは利用しないやり方もあるのだと思うが、それは追々調べることにする)

という訳で、ここまでの解説が誰かのお役に立てば幸いです。

BOOTH 有料頒布に挑戦

https://espi-labo.booth.pm/

「TeraTermのマクロ 超入門」という技術解説文書を、BOOTHでの有償での頒布をしてみることにしました。

2004年に派遣就業先のC社で、組み込み機器のコントローラー基板が、UARTの口をもっており、ターミナルソフトでいろいろ設定できる、デバッグコンソールだったので、皆 TeraTermでデバッグや評価の操作をしており、このころから本格的に使うようになりました。

様々な自動化にトライするうち、だいぶ経験値も増えたので、解説文書にしてみようと書いたものです。 もしも15年前の自分なら、すごく読みたかった資料。多分ニッチなものとは思いますが。

よろしくお願いします。

ブログを引っ越し

引っ越しました。

今まで公開していた Wordpresのブログは、 ネットに常時接続していた自宅のマシンを ダイナミックDNSで espilab.ddo.jp で公開していた。ADSL接続サービスが9月末で終了になり、UQ Wimaxのホームルーターに変えたら、グローバルIP は割り当て不可能になってしまった。

仕方なく、ではあるが、 さくらのレンタルサーバー(スタンダード)で 昨年より借りて利用していたので、こちらにWordpressをインストールし、インポートで過去記事も持ってきて、再開とした。

過去の記事の中で、リンクがおかしいところがある。 ( 「前回の記事で…」 とか書いた、その前回がサイト内のリンクで espilab.ddo.jpのまままだったり) 直し方が分からない。 ご不便ですがご了承願います。

Github トレーニング中・・・

ここ自サイトでファイルを公開するのも別に構わないのだが、やはり Githubくらい、エンジニアのスキルとして利用できる方が良かろうと、学び中。
Windows7 環境で、Git GUIをインストールした。

参考にさせて頂いているページ:

リンク1つ目の説明で公開鍵を作ると ~に作成される、と触れている点があるが (※1)、自分でやってみると C:\SPB_Dataというフォルダが掘られてその下にできた。なんでこんな所に…??  解説しているページがあまり無い。
cygwinが既に入っており、エクスプローラーで右クリック、”Git Bash Here”で起動すると、Cygwinのbashが起動してしまうようで、気持ち悪くて、いったんgitをアンインストールし、C:\SPB_Dataも削除し、インストールし直した。すると今度は SSH Key作成時に C:\SPB_Dataが作れないとエラーを出してくる。仕方なく C:\SPB_Dataフォルダをゴミ箱から復活させた。
う~ん…よく分からないが、とりあえずこの状態で使う。

また、ローカルリポジトリは何処に作るのが適切なのかよくわからないが、試しにMy Document 以下に作ると深くて面倒だったので、再インストール後はとりあえず空きの多いドライブ D: で、D:\git_repository などと作っておくことにした。(※2)

READMEはWikiみたいなマークアップ言語を使うなど、色々しきたりが多い。慣れるしかないね。

 

関係有りそうな無さそうな情報:

 

(追記)

(※1)→ Windows 7環境では C:\SPB_Data ができたが、別の Windows 10 マシンにインストールしたら、解説記事通り C:\users\<ユーザー名>\.ssh が作成された。

(※2)→一カ所に作っておくのではなく、「作業ディレクトリの中に作られる」.gitがその正体のようである…最初からそう言ってよ…

https://www.hivelocity.co.jp/blog/34777/

CCS v7の不具合 : No compilers are currently installed for this device-family.

Code Composer Studio v7.4 を起動して、Project -> New CCS project で新しいプロジェクトを作ろうとすると、

“No compilers are currently installed for this device-family. Click ‘View > CCS App Center’ to install a compiler before creating a project for this device.”

と表示され、テンプレートも何も選べない状態になることがある。
ついでに、既存のプロジェクトを開く事もできない。

どうやら Windows7起動直後、最初の1回はこうなってしまうようだ。

仕方なくCCSを一旦終了し、もう一度起動すると、正常に新規プロジェクトが作れるようになる。
なので、今はだましだまし使っている。

(追記)
あ、もしかして・・・と思って、試しにウイルスチェックソフトの「保護を一時的に無効にする」を設定して起動したら、1回目の起動でも正常に新規プロジェクトが作れる画面になった。

Graceで生成したソースコードをCCSで使うには (3)

前回 Graceで自動生成したソースを、CCSに取り込んでビルド、LaunchPadに書き込んで実行までをやってみる。
なお、ここで使っている CCS は現時点で最新の v7.4.0である。

まずCCSを起動する。Project → New CCS Project で新しいプロジェクトを作る。

New CCS Projectのダイアログで、使用するデバイス、プロジェクト名、プロジェクトのテンプレートを選択する。
プロジェクト名は G2452-GraceSA-Blink-Timer01 とした。テンプレートは Empty Project (with main.c) にしておく。

続きを読む Graceで生成したソースコードをCCSで使うには (3)

Graceで生成したソースコードをCCSで使うには (2)

前回 書いた手順で、Graceでコード生成 → CCSでビルド → LauncPadでLED点滅 (Lチカ)まで、以下、実際にやってみる。

仕様:

  • LaunchPad Value Line (MSP-EXP430G2)を利用
  • マイコンはMSP430G2452IN20を選択
  • CPUクロックは16MHzに設定
  • ポート P1.0 のLED を、正確に500msでON/OFFさせる
  • 500msを作るために32.768KHzの水晶振動子を外付けし、LED点滅タイミングのクロック源とする
  • タイマー割込みを使用する

まず Graceスタンドアロン版 を起動する。

続きを読む Graceで生成したソースコードをCCSで使うには (2)

Graceで生成したソースコードをCCSで使うには (1)

(前回の続き)

Graceスタンドアロン版で生成したソースコードを、CCSで使うには、若干の編集作業が必要になる。以下のサイトの記事が参考になる:
CCSv7 Grace Migration

このページの解説は、GraceがCCSのプラグイン方式だった頃に作成したプロジェクトを、最新の CCS v7.x などに持ち込む際の移植の手順を説明しているのだが、この手順が、スタンドアロン版のGraceの出力をCCSに持ってくる際にもヒントになる。

手順としては、だいたい以下のようになる:

  • (step-1) Grace側で使うマイコン・使う内蔵周辺を設定し、コード生成させる。
  • (step-2) CCS側で、新しい空のプロジェクトを作る。 C言語で main()があるだけのプロジェクトでいい。
  • (step-3) (step-1)で生成したコード一式を、CCSのプロジェクトの中へコピーする。
    ただし、CSL_init.c は不要なので持ってこない。
  • (step-4) Grace.h をCCSのプロジェクトにコピーする。
    main.cソースの中で Grace.hをインクルードしている行を、参照できるように「#include “grace.h”」のように修正する。
    main()の中の先頭で、一回 「Grace_init()」を呼ぶようにする。
  • (step-5) CCSでビルドする。

(続く)