2023年7月28日金曜日

TOPPERS/ASP - ML62Q1000版 目次

知る人ぞ知る、地元民しか知らないお店の絶品ラーメンみたいなマイコンML62Q1000シリーズ。

そこで動作するTOPPERS/ASPに関する記事の目次です。


■TOPPERS/ASP - ML62Q1000版 その1

TOPPERS/ASP - ML62Q1000版 概要

必要なもの

ダウンロード/GitHub


■TOPPERS/ASP - ML62Q1000版 その2

開発環境の構築


■TOPPERS/ASP - ML62Q1000版 その3

サンプルドライバのソースコードのコピー

スタートアップファイル「start.asm」のコピーと修正

コマンドラインでのビルド


■TOPPERS/ASP - ML62Q1000版 その4

プロジェクトの作成

プロジェクトのクリーンとビルド


■TOPPERS/ASP - ML62Q1000版 その5

デバッガとターゲットの配線

プログラムの転送とデバッグ


■TOPPERS/ASP - ML62Q1000版 その6

サンプルプロジェクトの説明

ML62Q1000版カーネルについて

ライセンスについて


なお、Qiitaにも上記の記事を1ページにまとめたダイジェスト版を投稿しました。

こっちの方が読み易いです。

仕事でもネットで調べ物をしていると、このQiitaには有用な投稿が多いです。

いつも助けれられています。

投稿者の皆様に感謝です。

私の投稿も、よろしければ参考にしてください。

Qiita

TOPPERS/ASP - ML62Q1000版 - Qiita

2023年7月25日火曜日

TOPPERS/ASP - PIC32MX版 その3

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


開発環境の構築(XC32コンパイラ編)

お次はPIC32MX用のコンパイラのインストールを行いましょう。

XC32」っていうGCCベースのコンパイラです。

以下のページでダウンロードします。


https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers

このページのほんのちょっと下へ行ってもらって…。

XC32コンパイラ・ダウンロードページ - 1


3つ並んでいる内の一番右「Download an XC32 Compiler」というバナーをクリックして下さい。

XC32コンパイラ・ダウンロードページ - 2


以下のようなページに飛ばされますので、ここでは「MPLAB VC32 C-Compiler(Winodws)」をクリックです。

ダウンロードが始まります。

XC32コンパイラ・ダウンロードページ - 3


ダウンロードが完了すると「xc32-vx.xx-full-install-windows-x64-installer.exe」というファイルが生成されますので、これをダブルクリック!

以下のようにインストーラが起動します。

ここでは「Next>」ボタンをクリックです。

XC32コンパイラ・インストーラ - 1


お次はお約束のライセンス承諾。

I accept the agreement」のラジオボタン、「Next>」ボタンを順にクリックしましょう。

XC32コンパイラ・インストーラ - 2


しばらくは「Next>」ボタンを連打です。

XC32コンパイラ・インストーラ - 3


XC32コンパイラ・インストーラ - 4


XC32コンパイラ・インストーラ - 5


XC32コンパイラ・インストーラ - 6


ようやくインストール作業が開始されたようです。

これがまた終わるまでにどえりゃ~時間がかかります。

コーヒー片手に、しばらくネットサーフィンでもしていてください。

XC32コンパイラ・インストーラ - 7


インストールが終わると以下のような表示が…。

以下のように「Your Host ID is:」という記述の後にパスワードらしきものが表示されています。

「XC32」を最大限の最適化で使用する際にはアクティベーションが必要であり、その登録のために必要なIDなのだそうです。

趣味レベルではなく、仕事などで本格的にPIC32を使いたいよ~という方は、メモしておいた方が良いでしょう。

アクティベーションしなくても、普通の用途ならコンパイラは問題なく使えます。

一応メモしたら「Next>」ボタンをクリックして先に進みましょう。

XC32コンパイラ・インストーラ - 8


コンパイラのインストールはこれで完了です。

Finish」ボタンをクリックしてインストーラを終了させましょう。

XC32コンパイラ・インストーラ - 9


今回はここまでにしましょう。

次回はEclipseの導入を行いましょう。


<続く>

2023年7月21日金曜日

DIYレトロゲーム機「Nibble」がやってきた! その1

今年の初めくらいにクラウドファンディングサイト「Makuake」でオーダーした、DIYレトロゲーム機「Nibble(ニブル)」が届きました!

この「Nibble」とは?

詳細は公式サイトを参照ください。

Nibble


どことなく往年のPSPに似ているゲーム機のキット(半完成品)です。

最初から三つくらいのゲームが入っているみたいですが、自分でプログラミングして開発することもできます。

この「Nibble」の私の購入動機は、当然、最初から入っているゲームではなくてプログラミングをして遊ぶことです。

その際の開発環境/言語は、

初心者向けの「CircuitBlocks」(ブロックを組み合わせるビジュアル言語)、

中級者向けの「Arduino」(実質C言語)、

上級者向けの「C++」

などが、それぞれ利用できるようです。

いきなり「C++」に挑戦しても大丈夫でしょうかね?

この「Nibble」執筆時点では、まだコチラで購入できるみたいですよ~。


メーカーのCircuitMess社は、クロアチア共和国の会社です。

なので、外箱はどことなく色使いがヨーロピアンテイスト。

外箱 - 1


外箱の裏には簡単な商品解説が。

外箱 - 2


何はともあれ御開帳!

開封 - 1


なにやら、紙が入っています。

ドキュメント類は、サイトからダウンロードしてください、という旨が書いてあります。

続きはWebでっ!」ってやつです。

内容物は、以下のような感じです。

開封 - 2


目を引くのがプラスチック(アクリルかも?)筐体。

白い色をしていますが、これは保護シートが貼られているみたいです。

それを剥がすと無色透明のようです。

ホント…小さいPSP。

プラスチック(アクリルかも?)筐体


部品類は、こんな感じ。

ドライバーや半田なども同梱されています。

(半田は「鉛フリー」のようです。これは使い難いので破棄するでしょう…。)

液晶は128x128ドットのフルカラーとのこと。

往年の名機MSXが256x192ですから、それより相当荒いのですが、発色数だけは圧倒的ですか。

ほか、プッシュスイッチやボタンなど、半田付けが必要な部品は最小限です。

私のようなブキッチョ(って、きょうび聞かねぇなぁ~)にとってはありがたいです。

部品類


肝心のメイン基板がこちら。

結構、シッカリした基板で好感が持てます。

コッチは裏側かな?

メイン基板(裏)


メイン基板をひっくり返してみましょう。

CPUのお出まし!

面実装の細かい部品は、すでに実装済みです。

メイン基板(表)


さて、ここで奇妙なことに気付きます。

このCPU、パターンアンテナが出てますね。

これは、何らかの無線通信機能を持っていることを意味します。

なんだろう?

そんな仕様、上記のサイトに書いていなかったのに?

では、このCPUの正体とは、一体!?

CPU


あ~、これは以前このブログでMSX関連の記事でも取り上げた、中国のEspressif Systems社の「ESP32」マイコンの廉価版「ESP-12F」ですね。

アメリカのTensilica社がライセンスする「Xtensa LX106」CPUコアを採用し(今どき珍しくARMじゃない!)、80MHzのクロックで動作します。

そしてこのマイコン、確かにWiFi機能を内蔵しています。

しかし、それならばこの「Nibble」の強力な売り文句として、もっとアピールすれば良いのに?

この「Nibble」に対して、メーカーのCircuitMess社がどのようなゲーム開発用ライブラリを提供しているのか?…まだ分かりませんが、そこは対応していないということでしょうか?

果たして、どのような開発環境を提供しているのか?

そして仮に、その開発環境が対応していないのであれば、閉ざされしWiFiの封印を解くことができるのか!?

気になるので、早速見てみたいです!!

とはいえ、まずは組み立てを成功させねばなりませんね…。


次回は、組み立ての過程とゲーム機の起動までレポートしたいと思います。

…無事に組み立てられたらねw!


<続く>

2023年7月18日火曜日

TOPPERS/ASP - PIC32MX版 その2

前回からの続きです。


開発環境の構築(MPLAB X IDE編)

MPLAB X IDE」とは、Microchip社の純正のIDEです。

PIC32MX版のTOPPERS/ASPを使って開発を行っていく上では、以下の方針を採ります。


1.コーディングとビルドは「Eclipse」を使う。

2.デバッガを使う場合のみ「MPLAB X IDE」を使う。


…面倒くさいですね。

何で2つのIDEを使い分けなきゃならんのか?


すいません、完全に個人的な趣味です!


コーディングは「Eclipse」の方が慣れているし、「MPLAB X IDE」はビルドやプロジェクト管理のやり方がイマイチ分かり難かったので、つい…。

もちろんコーディングを含めて「MPLAB X IDE」だけで全てを賄う方法もあるに違いありません。

(私は上手くいかなかったのですが。)

しかしながら、ここでは上記の方針に則り説明していきます。


では、まずは以下のページで「MPLAB X IDE」のダウンロードをしましょう。


https://www.microchip.com/en-us/products/microcontrollers-and-microprocessors/32-bit-mcus

「MPLAB X IDE」ダウンロード・ページ - 1


上記のページのちょっと下の方に行ってもらって、「MPLAB X IDE」のロゴと「Learn More」というバナーが配置されている箇所がありますよね。

ここで「Learn More」バナーをクリックします。

「MPLAB X IDE」ダウンロード・ページ - 2


新しいページに誘導されます。

ここで「Download MPLAB X IDE」のバナーをクリックです。

「MPLAB X IDE」ダウンロード・ページ - 3


すると、以下のような場所に誘導されます。

ここで最新版の「MPLAB X IDE」をダウンロードしたくなりますが、それはダメです。

なぜならば、今回のターゲット「PIC32MX1/2/5 Starter Kit」は、新しめのバージョンではサポートが打ち切られ、最新版では「PIC32MX1/2/5 Starter Kit」用のプロジェクトの出力ができないからです。

それほど古い評価ボードではないと思うのですが、なんででしょうか?

大人の事情!?

ウ~ン、ちょっと気持ち悪いですが、とりあえず今はガマンして古いバージョンを探してみましょう。

なので、以下の通り「Go to Downloads Archive」バナーをクリックしましょう。

「MPLAB X IDE」ダウンロード・ページ - 4


以下のような場所に誘導されます。

ちょっと下の方に行ってもらって、良さそうなバージョンを探しましょう。

「MPLAB X IDE」ダウンロード・ページ - 5


以下のようなリストに辿り着いたら「Next >」というバナーをクリックしていきましょう。

ここでは動作確認ができている「MPLAB X v5.40」を探します。

(v6.0まで行かなければ、v5.45やv5.50でも大丈夫とは思います。)

「MPLAB X IDE」ダウンロード・ページ - 6


あった!これだね。

MPLAB X v5.40」という表記の部分をクリックして、ダウンロードを開始します。

「MPLAB X IDE」ダウンロード・ページ - 7


ダウンロードが完了すると「MPLABX-v5.40-windows-installer.exe」というファイルが落とせます。

これをダブルクリックしてみましょう。

以下のようにインストーラーが起動します。

Next >」ボタンをクリックして先に進みましょう。

「MPLAB X IDE」インストーラー - 1


ほいほい、ライセンスね。

分かりましたよ~ってことで、同意のラジオボタンをクリックし、「Next >」ボタンをクリックです。

「MPLAB X IDE」インストーラー - 2


その後は、しばらく「Next >」ボタン連打!

「MPLAB X IDE」インストーラー - 3

「MPLAB X IDE」インストーラー - 4

「MPLAB X IDE」インストーラー - 5


ようやくインストールが開始されました。

「MPLAB X IDE」インストーラー - 6


かなり壮大な時間がかかりますが、インストール終了です。

Finish」ボタンをクリックです。

「MPLAB X IDE」インストーラー - 7


勝手にブラウザが開いて、他のソフトウェアをダウンロードするように促されますが、何もしない閉じちゃって大丈夫です。


今日はここまで。

次回はコンパイラのダウンロード、インストールを行いましょう。


<続く>

2023年7月14日金曜日

TOPPERS/ASP - PIC32MX版 その1

TOPPERS/ASP - PIC32MX版 概要

このブログ、気が付けば三ヶ月も更新を止めてしまいました。

本業が多忙過ぎたのもありますが、決してネタ切れというわけではありません。

まだまだ、公開したいネタはあります。

万が一、更新を待っていてくれた方がいましたら大変申し訳ありませんでした。


さてさて、今回取り上げるのは、Microchip社のマイコン「PIC32MX」です。

PIC32MX1/2/5 Starter Kit


PIC」といえば、電子工作を趣味としている方々の強い味方。

5V動作のDIPパッケージ(ゲジゲジの脚が太い形状)で手軽に扱えるマイコンとして、AVRマイコンと並び、あまりにも有名な存在ですね。

通常「PIC」といえば、このようなローエンドの8ビットマイコンを指すことが多いのですが、実は、16ビットや32ビットなどのバリエーションもあります。

一般的に、

PIC10,12,16,18系が8ビット、

PIC24,dsPIC系が16ビット、

PIC32系が32ビット

かなりの大所帯なシリーズ展開となっております。

しかしながら、ここで厄介な問題が…。

それは、各ビットのシリーズ間で丸っきりCPUのアーキテクチャが異なることです。

つまり、8ビットのPICのアーキテクチャと32ビットのPICのそれとは全く違うということです。

8および16ビットのPICのアーキテクチャは、それぞれ異なるMicrochip社独自のものです。

32ビットのPICのアーキテクチャは「MIPS」と呼ばれるものを採用しています。

この「MIPS」なるものを説明すると多くのページが必要となってしまいますので、興味のある方はWikiをご参照ください。

簡単に言えば、RISCという設計思想の正しさを証明するという学術的な理由から開発された、大学の研究室由来のアカデミックなアーキテクチャです。

こんな大学の教科書みたいな表紙のイメージ通り、アカデミックです!

MIPSアーキテクチャに関する書籍


この評価の結果、旧来のCISCに対するRISCの優位性が証明され、後のARMやPowerPCの設計に大きな影響を与えたわけですが、これについての蘊蓄はこの辺にして。

この「MIPS」、昔は結構流行っていました。

私が今でも愛用する、このモバイルギアIIにもNEC製のMIPSアーキテクチャのマイコンが積まれています。

しかし、今となってはやや古いアーキテクチャであることは否めず、RTOSなどの移植の例も少ない寂しい現状…。

そこで、現在市場に流通している唯一のMIPSアーキテクチャのマイコンである「PIC32MX」に「μITRON4.0」準拠のRTOS(リアルタイムOS)であるTOPPERS/ASPを移植してみました。

直接の移植の動機は、なんと言っても秋月電子通商さんで販売されている以下の製品の存在ですね。


●PICマイコン PIC32MX270F256B-50I/SP

●PICマイコン PIC32MX250F128B-I/SP


MIPSアーキテクチャで動作周波数50MHz級の本格的なマイコンがDIPパッケージで売られているという事実。

DIPパッケージというところが肝心です。

私のようなボンクラソフトウェア技術者だと、ハンダ付けが下手ですので、QFPパッケージ(脚が四方に出ていて、めっちゃ細い形状)での実装は難しいのです。

なので、気軽に治具や簡単な計測器を作成する際に、これほど助かることはありません。

PIC32は8ビット系のシリーズとは異なり、5Vではなく3.3V駆動となってしまいますが、それでも十分にありがたい存在です。


必要なもの

今回のターゲットとなる「PIC32MX1/2/5 Starter Kit」です。

秋月電子通商さんで売ってます。

この記事の執筆時点の価格で、8,600円です。

デバッガー機能を内蔵していますので、これポッキリで開発が進められます。

これが高いか安いかの議論はさておき…。

PIC32MX1/2/5 Starter Kit


他の型番への移植も可能ですが、TOPPERS/ASPを搭載して動作させるならROM:128KB/RAM:8KB以上の容量を持つ型番を選びましょう。

このブログでは「PIC32MX1/2/5 Starter Kit」を使用した場合の例を説明していきたいと思います。


ダウンロード/GitHub

ソースコードの入手は、こちらからどうぞ。

とは言っても、このソースコードをダウンロード、もしくは「git clone」しても、絶対にビルドが通りません。

このソースコードは未完成です。

なぜなら、Microchip社のドライバを後から付け加える必要があるんです。

そのMicrochip社のドライバのライセンスの条項が理解に難しく、公開、および再配布しない方が無難と判断したためです。

ですので、今後この記事では、それらのソースコードの入手方法やコピーする場所などを事細かに書いていくつもりです。

ちょっとだけ面倒ですが、お付き合いしていただけると嬉しいです。

ビルドは、まだやっちゃダメですよ~。

(あと、動かしながら記事書いてる過程でバグなんかが見つかるかもしれないので、ダウンロードは後の方が良いかも…。)


さて、次回から開発環境の構築をやっていきましょう。

そんなに間を空けずに更新…したいです。


<続く>

MLAA License

 名称:「MLAAライセンス」(MLAA) タイプ: ・コピーレフト…× ・ライセンス文の掲示…〇(ソースコード頒布のみ) ・コピーライト(著作権)…〇(ソースコード頒布のみ) ・その他…〇(バイナリ頒布のみ) 原文: Copyright: 2010 Jorge Jimenez ...