SH2でPCシュミレータを使ってみる

SH2でもPCシュミレーターを試してみます。IDEは、HEWです。

伝統のSHもものは洗練されているかと思いましたが、マイコン機能のすべてがシュミレートされないようです。

タイマCMT0 の割り込みはシュミレートされました。

AD変換完了割り込みは、シュミレートされないようです。Brekeも効かず、カウンタもUPしません。

画面上のボタンを押して、割込みを呼出す機能を使ってもダメ。

変数と関数の呼出し回数を表示しても、AD変換割込みは発生してないです。

RL78のようになマイコン全体のシュミレーション機能ではないようです。関数の単体テスト用でしょうか? もしくはもっと深い使い方があるのでしょうか?

RL78のPCシュミレータを使ってみる

メーカ在籍時は、テスト基板に困ることはありませんでしたが、ベンダーの立場になるとテスト基板が無い状況も多々です。RL78のPCシュミレータを試してみます。IDEは、e2Studioの方です。

詳細な操作方法は、ルネサスのマニュアルをみていただくとし、概要は以下のようにります。

まずデバックの設定で、「RL78 Simulator」を選択します。

シュミレータGUIより、動作条件を設定していきます。

GUIパネルを作って、パネルエディタからドラックで各GUIを配置。.

信号入力にはボタンを割り当て。

AD入力にはダイヤル割り当て。

信号出力はLEDを割り当て。

これでポート入出力、割込み、デバックができます。

タイマーもシュミレートされます。

UARTは、シリアルウインドウを表示して、送信値は手打ちします。簡単な繰返し送信モードがあります。

しかしシュミレーションの実行時間は、現実の4倍くらいありました。

タイミングチャートもあるので、それで実時間との差を確認する必要があります。

Visual Studioのクラス図はどんな感じ

市販のUMLツールでは、クラス図がコードから生成できるもの、できないもの様々なようです。Javaでないとダメなものもあります。Visual Studioでもクラス図が生成できるようです。利用方法は他WEBページでも多数紹介されています。

生成したい状況は、以下の2とおりでしょう。

  • 自分が作ったものを他者に説明したいとき
  • 他人が作ったものを解析したいとき

具体的に使い物になるのか、開発中のコードをあてがって見てみました。

  1. クラスの継承

白い線が継承です。MFCの階層含めて追えていますね。構造体やenumも出してくれます。

2. クラスの関連

クラス間の呼出しや参照、関連は黒い線です。これも追えてはいますね。

3. クラスの関連

メンバリストを必要に応じて閉じることができ、全体の見渡しもしやすいようです。

なるほど。ままず使えそうですね。

iOSシュミレータリストが表示されないとき

引き続きMAC Book Pro 2015でiOSシュミレータも再確認します。しかし、iOSシュミレータリストにデバイス名が出てきません。2012ではバリバリ表示されていたのですが、、、

Xcode SDKと、xamarin.iOSのバージョンが合っていないとダメなようです。合わせるとデバイスリストがでてきました。

iOSアプリの開発環境を安価に作る6

前回、Xcode 12.4では、最新のiOSとは実機デバッグできないことが分かりました。海外のサイトでは、ある程度ならiOSバージョンを戻せるとの情報がありましたが、iOS Ver.16にしてしまうとにっちもさちも行かないようです。

しかたなく最新のmacOS/Xcodeをインストール可能な「MAC Book Pro 2015 early」を導入しました。小キズがある程度で2.8万円でした。これで一気にすべての問題が解決しました。

まずxcodeで試します。実機が選択可能となり、iPhone側で画面がでました。

しかし最新と思っていた「macOS Monterey」ですが近々で「Ventura」というバージョンがリリースされてしまいました。この「Ventura」の対象から、MAC Book Pro 2015は外れてしまいました。iOS17がリリースされたら、2015では対応できないでしょう。

iOSアプリでは、常に開発環境を最新を保っていく必要があるようですね。

Windows側からのiOSシュミレータおよび実機からのデバッグも再トライしてみました。結果は、

  1. 実施できたが遅くで使い物にならない。ほとんどMAC側で動いているんでしょうね。
  2. Visual Studioは2022の最新でないと、iOS16はサポートしていない。xamarin.iOSのバージョンは以下の通りでした。

総費用としましては、MAC Book Pro 2015=2.8万円、iPhone X=2万円、iPhoneケーブル=千円、計4.9万円でした。これにApple開発者の年会費がかかるのでありましょう。

iOSアプリの開発環境を安価に作る5

前回、MAC Book 側でシュミレータ環境を整えました。次は実機接続です。近々のiPhone 13/14 proには投資できません。13/14 Proの解像度2532×1170に、近い2436×1125のiPhone Xとしました。デモ機でもありますので、画面背面が砕けてないものフリマで探し2万円。

一応WindowsのVS2019から接続してみましたが、やっぱり無理です。

まずはMAC側でXcodeから試しますがエラーです。iPhoneは古いですが、OS最近のver.15.7になってました。XcodeのmacOS10.15での上限ver.12.4に対して新しすぎるようです。

「iPhoneを出荷時のiOS Ver.に戻せばいい」と、初期化を試みましたが、ユーザ設定だけ消えて、最新16.1になってしまいました。

どうもiPhone古いバージョンには戻させないポリシーのようですね。ネットで探した回避策を試します。「XcodeのiOS Ver.毎パッケージをGithubからD/Lしてコピーインストールする」(下図)→ 解消せず。

「証明書を.SLSL.ファイルをソフト”blobsaver”で作成し、証明書を”FutureRestore”で差し替えて、古いOSイメージをD/Lして、iPhoneに書込む。(下図)→ 証明書NGで書き込めず。

AndroidはカスタムROMなどわりと自由ですが、iPhoneはこんなに厳格だとは想像しておりませんでした。

iOSアプリの開発環境を安価に作る4

前回、WindowsとMACで、Xamarin_iOS SDKのバージョンを合せたましたが、どうも不安定です。

MAC上で、iOSでのデバックを行うのがスマートなのかもしれません。Visual Studio 2019のProjectを、MACに丸コピーして、Visual Studio 2019 for MAC で開いてみます。そのまま開けて、設定fileの互換性も高そうです。UIは、Windowsと異なり、ちょっと見やすいかんじです。

しかし、

  • ビルド、エディタ操作、全てにおいてWindows上の5倍以上遅い。
  • iOSシュミレータは、起動に5分くらいかかる。(Androidシュミレータも遅いがiOSほどでない)
  • iOSシュミレータ起動中に、MACがよくリセットする。

まるでWin95の時代に戻ったかのよう。iCore5 2.5GHz、メモリ4GBなら、そこまで厳しくないとはおもえるまですが、、、

topコマンドをターミナルで走らせながら、iOSシュミレータ起動すると時折止まりますので、かなり負荷がたかそうです。


しかたなくメモリを8GBにアップします。経費節約のため、ヤフオクで業販されたる方から、以下のものを2,100円で購入。MAC用と謡われていなくても、DDR3-12800 1600MHz 204ピンなら大丈夫のようです。まだまだ遅いですが応答性は1/2に改善した感じです。

メーカ:RAMAXEL 品番:RMT3160ED58E9W-1600 数量:2枚

VS2019、iOSシュミレータ、safariを起動した状態で、アクティビティモニタの状態は以下の通りでした。6GBも食うんですね。4GBではメモリスワップしまくりだったかもしれません。

iOSアプリの開発環境を安価に作る3

前回は、MAC Book の初期セットアップまででした。次にWindowsのVisual Stdioからのデバックを試みます。

まず、iOSのプロジェクトからデバックを開始すると、MAC側にXcodeをインストールしているにも関わらず、「Xcodeが無い」とエラーが出ます。

どうも「Xcode コマンドラインツール」が関係しているようで、MAC側で以下の設定をしました。

「IDBと接続できない」と以下のエラーも出ました。MAC側に、IDB(unixのsdb:シンボリッグデバッガのmac版?)必要かと試行錯誤しましたが、Windows側のIDBのことのようです。知らないうちに解消しました。

「Monoがない」というエラーもでました。何者かよくわかりませんが、MAC側に「Mono Framework」をインストールしました。

次に以下のエラーがでました。Windows側Visual Studio 2019 Ver.16.11では、Xcode 13.1 を求めるようです。Xcode 13.1は、iOS10.15以上が必要で、iOS 15はMAC Book 2015以上が必要とのこと。これは警告だけなので、とりあえず続行します。iOSシュミレータが起動しますが、エラーがでます。

仕方なく別のPCに、Visual Studio 2019 ver. 16.9を入れますが、改善せず。

次にVisual Studio 2017 ver15.9 を入れるとビルド時に、エラーがでます。これはVisual Studio 2019が、MCA側の「Xamarion_iOS SDK」のバージョンを強制変更してたためのようです。

MAC側で、iOS10.14の最新Xcode12.4に対応した「Xamarion_iOS SDK」14.14.2.5をダウンロードして戻します。Gitbubに各バージョンがおいてあまります。

これでVisual Studio 2017で、表面上のエラーは無くなりましたが、デバッグを開始するとiOSシュミレーターで、Appleロゴでダンマリです。

この状態でVisual Studio 2019に戻すと、以下のメッセージが出ます。つまり下位互換も上位互換もなく、一点の互換バージョンに合わせる必要があるのかもしれません。

しかし、Visual Studio 側のXamarin_iOSのバージョンは、任意に変更できず、Visual Studio各リリース時期で決まってしまうようです。これがおおきなネックですね。

試した各バージョンを整理してみました。

CASEVisual StudioWindows側
Xamarin_iOS
MAC側
Xamarin_iOS
Xcode結果
12019 16.1115.2.0.1714.14.2.512.4NG
22019 16.914.16.0.514.14.2.512.4NG
32017 15.912.4.0.6414.14.2.512.4NG

CASE2は惜しいです。VS2019のもう一つ古いバージョンなら、合わせられそうです。試します。iOSシュミレータの起動は、Appleロゴで5分、ぐるぐるからすすみませんね。しつこく凝り返していると表示できるときもありました。

CASEVisual StudioWindows側
Xamarin_iOS
MAC側
Xamarin_iOS
Xcode結果
42019 16.714.2.0.1214.2.0.1212.4

Microsoft Storeに有償でアプリを公開する6

前回パッケージが準備できたところまででした。パッケージをStoreに公開していきます。

その前に、Azureへのテナント作成が必要だったかも知れません。その上で、Azureとパートナーセンタを関連付けます。詳細手順は割愛しますが以下のような感じてした。Azureの費用は徴収されませんでした。

アプリの申請は、パートナーセンタで画面の「パッケージ」メニューを選び、.appx をドラックドロップします。複数のファイル拡張子が色々表示されていて悩みますが、「.appx」で良いようです。対応OSの表が表示されます。

申請の「概要」メニューから、「Microsoftに提出」を押すと申請が受け付けられます。押せない場合は、何か足りないか誤りがあります。受付けられると認定中の画面になります。

しかし、WEB上では全てのチェックが行われるわけではないようです。2日後くらいに、却下のe-mailが送られてきました。その内容は以下のとおりでした。

「Mixed Reality」は最初からチェックが入っているし、「Windows 10 S」.は対象OSを選択できるようになっていません。ひどいですね。

上記を修正し再登録、2、3日待つと以下の表示となりました。ようやく登録が完了しました。

このあとしばらくして「購入できない」とのクレームがありました。Storeで購入後して、正しくインストールできるか確認する必要があるようです。以下の留意点がありました。

  1. Storeパッケージを生成したPCとは、別のPCで行う必要がある。
  2. 出品した当方でもアプリ代が徴収されてしまう。これはなんとかしてほしいですね。
  3. ダウンロードが完了し、インストール中に以下のエラー0x80224407が発生しました。原因は不明です。3回繰り返すとインストールに成功したので、ストアのアプリ説明にその旨を追加しておきました。

iOSアプリの開発環境を安価に作る2

前回は、MAC Book Pro 2012 MIDを導入したところまででした。これからMAC側をセットアップしてみます。Microsoftの公式Xamarinサイトによると「Visual Stdio for MAC」と「Xcode」が必要とのこと。

まず「Visual Stdio for MAC」を入れます。弊方は、MSDNに加入しているので、MACのsafariからMSDNにログインしてダウンロードしインストールしました。フリーなのか有償なのかイマイチ分かりません。普通に操作すると2022が入ってしまい、互換のあるXcodeバージョンが入れられないため、2019を明示的に指定する必要があります。

次は「Xcode」です。「iOS Catalina 10.15.7」にインストール可能な最も新しいバージョンは「12.4」でした。公式サイトには、最新しか置いていないので、旧バージョンの置き場を探してインストールします。

ライセンス認証のためApple IDを登録します。メアドとSMS認証のためのTELが必要です。

WindowsのVisual Stdioからアクセスを受けるため、「システム設定」メニューの「共有」から「リモートログイン」を有効にします。しかし、当方のMACでは、「リモートログインを開始しています」のまま進みません。

「システム設定」を一旦閉じて、「共有」を開くと「リモートログイン」のチェックは外れています。MACを再起動してもダメ。ファイヤオールを無効にしてもダメ。これがApple品質なのでしょうか!?

いろいろ調べると、「sshd 」が起動していればVisual Stdioからアクセスできるようです。今のMACは、FreeBSDがベースとのことで、シェルプロを作り、コンソールにドラックして実行します。(この前にsshd用のキー生成が必要だったと思います)

Visual Stdioからログイン受付まで、行き着きました。