問合せがあったので調査した結果です。
情報がないようです。日本国内のみで、海外で販売されない端末は、カスタムROMが作成されにくい傾向があります。SH-05G (Android 5)もカスタムROM を探してもありませんでした。
Yahoo掲示板での一般的な見解がここにもありました。
シャープさんはGPLライセンスに基づきソースコードは公開されています。
腕に覚えがあり、時間の余裕のある方なら理論上は実現可能です。カン的には5~10人月かかるでしょう。
HowTo 備忘 アイデア 活動などを書いてます
問合せがあったので、その調べた結果です。
こちらもハードウェアキーボード付きの端末ですね。2011年発売と古すぎて、ぱっと調べると、古すぎで ROM 置き場のURLが切れています。Android4.4が限界のようです。
ヤフオクで、Android4.4 版がたまに出品されているみたいですね。
先刻問合せがあったので、その覚え書きです。
arrows Tab F-02K 、10インチ、高耐久 たしかによさげな端末ですね。しかし国内販売のみの製品はカスタムROMはほぼないです。Android File Host では検索ヒットせず。純正でAndroid9までバージョンアップが可能なら当面はそれでいいんでは?
自社WEBサイトにGoogle広告を掲載させるための仕組み:Googleアドセンスの税務情報には「居住者証明書」が必要です。これはe-Tax等での電子申請はなく、紙による申請が必要です。他WEB記事でも多数説明がありますが実際に実施してみたところをレポートいたします。
1.基本事項
2.居住期間について
取り急ぎ郵送で申請書を税務署に送ったのですが、以下の指摘がありました。
「居住期間は申請日に対して月末日まで満了している必要がある」
つまり以下のケースはNGです。
以下、訂正です。
3.所要時間について
初回は郵送しましたが、訂正は手持ちしました。16時くらいに。訂正を確認していただき、後送付と思いきや、「今から処置するのでしばらくお待ちください」とのこと。15分程度で証明書を発行いただけました。
手持ちして証明書が出来て取りに行くかと思い郵送にしましたが、窓口が閉まる寸前でもなければその場で処置してくれるようです。一回の訪問ですむなら郵送は不要そうです。指摘があればその場で直せるでしょうし。込みそうな都内や横浜はわかりませんが、、、
4.その他
Google お支払いセンターに、当初、登記簿を申請して「書類が違うか期限が切れています」とNGをくらいました。「期限が切れています」に着目して最新登記簿を入手して申請してもNG。「登記簿をだせばOK」というWEB記事もありましたが時期の違いかそれだけではNGでした。
Google お支払いセンターに、「税務情報の書類は何を出せばよいですか」と質問をしてもレス無しでした。国ごとに事情がちがうので聞いてもムダなようです。ちなみに2年前にMicrosoft Storeの申請をしたときは「居住者証明書」は不要でした。
マイコン命令とコンパイラが特殊そうなSHマイコンにて、各種マニュアルを読んで、ロジック変更なしで性能改善できそうな方法memoです。まだ試していません。
対象 | 内容 |
コード | なんでもいいauto変数は4byteで確保する。 CPU汎用レジスタが全て4byteのため、1/2byteを使うと、 4byteからの変換コードが挿入されるため。とくにforのループ回数は効きそう。 |
コード | なんでもいいauto変数はsignedで確保する。 cpuのデフォルトがsignedのため、unsignedを使うと変換コードが挿入されるため。 |
コード | 構造体メンバは、使用頻度の高い順で並べる。 |
コード | なるべく「if 0 比較演算子 変数」で判定する。 0と判定だと、CPU汎用レジスタを使わないため。 |
コード | 除数は、なるべく1、2byteを用いる。 |
コード | caseが5個まではif文にする。 |
コード | 引数の参照渡し。C++ のみ。値渡しだと引数値がスタックに退避されるため。 これは一般的なハナシ。実際に試すと、実行コードが1ステート減る。() |
コード | 関数の引数は4つまでとする。これは4つまでならスタックを使わず、CPU汎用レジスタに引数を載せれるため。 |
リンケージ | optimize=register レジスタ退避・回復の最適を用いる。 これは不要なレジスタ退避・回復を削除する。 |
リンケージ | optimize=branch 分岐命令の最適化を用いる。 call先が近い場合、call命令でなくgoto命令で飛ぶ。 |
効果があったら本記事を改定していきます。
法人設立時、登記上はTEL番号は必要ありません。しかし税や社会保険など様々な書類にTEL番号欄もあり、銀行口座開設には必要だと言われています。 当方も口座開設前にTEL番号を取得しました。IP電話で構いません。昔あった「TEL加入権」なるものは不要です。このとき一つ落とし穴がありましたので、ご紹介いたします。
当初、登記した事務所のマンションで回線が設置済みの、とあるケーブルTVのインターネットを契約し、一緒にTELも申し込みました。TEL番号の地域番号は合わせてくれます。事務所は不在が多いので、個人携帯TELに転送するようにしました。
使い始めてすぐ全く知らないところからTELがどんどんかかってきます。何故か流山市の役所が多い。どうも前に同じTEL番号を使っていた方へのTELでした。どうも福祉関係の業者さんのようです。その方々がTELの変更を周知していないのか、突然廃業したのか定かではありません。業務はeメール連絡なので、業務TELがかかってくることはなく、個人携帯に転送はやめました。
結局、諸事情により事務所は移転しました。その時、ケーブルTVのインターネットは法人だと割り増し料金を取られていたため、それの無いNTTひかりのIP電話しました。TEL番号は変わってしまいますが、区も変わってしまうため仕方ないです。その時、NTTさんに質問しました。
「以前の回線では、前にTEL番号使っていた方への電話がひどかった。なんとかなりませんか?」
NTTさんは、
「未使用になった回線は、2年間空けてから割り当てるようにしています。」
流石、元役所です。
起業時のTEL番号は、未使用期間を確認しましょう。
しかし最近NNTひかりは、2025年にむけて、ファミリータイプ:3,080円 → 5,720円 と大幅値上げにするとお知らせがありました。また回線検討が必要そうです。
RL78にてCコード中に、アセンブラ関数を作り、日本語コメントを UFT8 から SJIS に変更すると特定の漢字でビルトエラーが発生するようになりました。コンパイラは CCRL、GCC のほうではないです。
コードは、
/// アセンブラ部の宣言 ///
#pragma inline_asm IntRxTx
static void IntRxTx(void)
{
;EIとSTACK操作はcall元で実施
MOV A,SCI_DT ; 送受信値取出し
MOV !_SCI_DT,A ; 受信として退避
CMP0 !_sci_mode
メッセージは、
:E0520067:"}" がありません。
どうも「実施」の文字が引っかかっているようです。昔昔、SJISの特定コードがエスケープシーケンスと被るみことがUNIX上で起こっていましたが、イマドキまさか。ルネサスに問合せしました。コンパイラ購入者でなくとも、ルネサス評価ポードは購入していれば問合せOKでした。購入先の代理店さんをお知らせする必要があります。
ルネサス殿と問答が続きましたが、以下のコードを以下のようにしてくれとのことでした。
/// アセンブラ部の宣言 ///
#pragma inline_asm IntRxTx
static void IntRxTx(void)
{
// EIとSTACK操作はcall元で実施
MOV A,SCI_DT // 送受信値取出し
MOV !_SCI_DT,A // 受信として退避
CMP0 !_sci_mode
違いはわかりますでしょうか? アセンブラ関数でもコメントは C/C++ 形式にするということでした。確かにCCRL取説のはアセンブラ関数のコメント形式は明記されていませんが、サンプルコードは「//」になっていました。。。まさかの結果でした。
SHマイコンの SFR:システムレジスタ も時間がかかるのでしょうか? 前回記事では、割込禁止フラグをアクセスするにはC/C++言語上では一行であっても、アセンブラ(実行コード)では専用のSTR命令を経由し、直接変更できないためステート数を食うことが分かりました。
デバッグ時に、E1エミューレータ等で確認できないタイミングを検証したい時 (もしくはエミューレータ等が使えず表示部がない機器 ) では、余っているマイコンポートに出力し、オシロで計測します。とっても気軽に。SHの場合、どのように実行コードが展開されるのでしょうか?
コンパイラはC/C++ compiler package for SuperH RISC engine family V.9.04 Release 03 (無償版)です。
よくやるデバッグポートやLED反転の場合、 C/C++ だと、
// ポートA.0bitを反転 Addr 0xFF464000
GPIO.PAR.BIT.PA00 = ~GPIO.PAR.BIT.PA00;
最適化ありでのアセンブラ展開は、
※ SR:ステータスレジスタ R番号;汎用レジスタ
ADDR 命令 オベランド [実行clock数,待ちclock数]
----------------------------------
MOVI20S #H'F464000,R11 ; R11 = ポートAレジスタ:PRAアドレス [1,1]
MOV #H'FE,R13 ; R13 ビット0を0にするマスク値 [1,1]
MOV.W @R11,R0 ; R0 = *R11 (PRAの状態読出し) [1,2]
AND #H'01,R0 ; R0 &= 0x01 (ビット0を立てる) [1,1]
NOT R0,R0 ; R0 = ~R0 (ビット0を0にするマスク値0xFEを求める) [1,1]
TST #H'01,R0 ; if ( R0 & 0x01 == 0 ) SR.Tビット=1 [1,1]
BF/S @H'140A:8 ; if (SR.Tビット== 0 ) goto 140A + 8 [2,2]
; (PRA00==1なら140Aの次の行に飛ぶ)
MOV.W @R11,R2 ; R2 = *R11 (PRAの状態読出し) [1,2]
BRA @H'140C:12 ; goto 140C + 12 (次行を実行し140Cの次行に飛ぶ) [2,2]
AND R13,R2 ; R2 &= R13 (ビット0を下す) [1,1]
140A BSET #0,R2 ; R2 &= 0x01 (ビット0を立てる) [3,2]
140C MOV.W R2,@R11 ; *R11 = R2 (PRAの状態設定) [1,2]
実行コードの展開量が多いですね。SFRをダイレクトに読書きしないのは変わらず。ビット反転なのになぜ分岐が必要なのか? PARを何故2回読むのか? 不思議です。R13 にマスク値を入れるのは、オベランドに固定値を直接指定できないのでしょうかね。
12ステートで総17clock、分岐があるとパイプラインの先読みがムダになるのでざっくり+10=27clock。大体 0.3us という計算です。 RL78や78Kシリーズなら以下のように一行で済むはず。
NOT1 p0.0 ' しかしbit操作系はclockやや数多め
SHでアセンブラで書くなら以下でいいような気がしますが、、、
MOVI20S #H'FF464000,R14 ; R14 = ポートAレジスタ:PRAアドレス
MOV #H'FE,R13 ' R13 ビット0を0にするマスク値
MOV.W @R11,R12 ; R12 = *R11 (PRAの状態読出し)
BLDNOT #0, R12 ; R12のBit0 を反転 → Tビット
BST #0, R12 ; Tビット → R12のBit0
AND R13, R12 ; 0xFEでマスク
MOV.W R12,@R14 ; *R11 = R12 (PRAの状態設定)
BIT操作命令はやや特殊、Bit指定は0~7まで。8以上は第2オペランドをアドレス指定でoffsetを要すようで汎用レジスタだけでは組めないようです。SHコンパイラ、SH CPUはなんか特殊そうですね。旧三菱系のM16C、R8Cもちょっと変でしたけど、、、 やっぱり最後にのこったNEC系に部があるのでしょうか…
TestFlight で IPAファイル を、App Store にUPLOADする前に、IPAの動作確認したい。Ad Hoc 用 IPAファイル を作成して、iPhone に書込みたいと思います。前回ではMACの無い方にリリースするためWindows PCで行いましたがとても面倒です。自己開発用なら MAC Book から書きこめます。アプリのエンドユーザさんでも、Ad Hoc の IPAファイルを提供してもらい書込めば、TestFlight の使用期限を気にすることなく、アプリ屋さんにあまり手をかけずアプリ評価が可能です。
1.実施条件
MAC Book | Pro 2015 early / mini 2018 |
Xcode | 14.2 / 15.1 |
iPhone | X |
iOS | 16.2 デベロッパーモード有効 |
対象IPA | AdHoc用、TestFlight用 |
ちなみに、VS2022 Windowsにて、TestFlight用にBuildしたipaもそのまま書けました。TestFlightでの運用のみの場合、upload前の動作確認用に、AdHocで一度buildして実機に書く必要はないようです。
2. 手順
(1) MAC Book に iPhone をUSBケーブルで接続します。
(2) Xcode をProjectを選択しないで起動し、メインメニューから、Wondow -> Deivce And Simulattors を選択します。
(3) IPhoneの画面が開いたら、画面左側下中断あたりの「+」をクリック。
(4) IPAファイルを選択します。選択が完了すると直ぐ書込みが開始します。
(5) 書込みは長くで一分くらい。完了するとアプリとバージョン名が現れます。
iPhoneがデベロッパーモードになっていない場合は以下のメッセージがでます。
手順は以上です。
他のサイトでも説明はありますが図が少ないので、弊方用の手順書として書きました。