先日購入したGalaxy S(SC-02B)ですが、
iPhoneのMywiで接続させて最低額で運用しようと考えています。
が、HT-03Aの前例からわかっていたことですがAndroid端末はAd-Hoc接続がなぜか潰されています。
なのでまずこのアドホック接続ができるようにします。
コムギさんのところの情報の方が詳しいです、また、よくわからない人は絶対に実行しないでください。
責任は一切取れません
まず、下記のURLからGalaxy SのUSBドライバなどをインストールします。
http://downloadcenter.samsung.com/content/SW/201102/20110201142208929/Kies_2.0.0.1
コマンドプロンプトからadb shellコマンドで端末に接続できるか確認してください。
※端末をデバッグモードで接続にしておく必要があります。
次に下記からwpa_supplicantをDLします。
http://www.abdulrehman.net/connect-samsung-galaxy-s-to-ad-hoc-wifi-network/
下記からRoot取得ソフトウェア(SuperOneClickv1.6.5-ShortFuse.zip)をDLします。
http://forum.xda-developers.com/showthread.php?t=803682
※相当下部にあります。(アカウントは作成してください。)
SC-02Bを接続し、SuperOneClick.exeを実行し、Rootボタンを押下します。
端末にRoot権限を許可するかの表示がでるので許可します。
※これで以後Root権限をとることができます。
次はSC-02Bでの作業となります、公式(Google)Marketから「mount system」などの語句で検索を掛け、
「Mount System dir for r/w access」(名称は若干違うかも?)というアプリがあるのでそれをインストールしておきます。
ここまで終わったらSDcardのルートにworkフォルダを作ってその中にwpa_supplicantを突っ込みます。
ついでにbakフォルダもルートに作っておきます。
次はコマンドプロンプトでの作業になります。
adb shell
su
# Galaxy SはSDCardの扱い方が少し特殊です。(External_SDというマウントのされ方をする)
# wpa_supplicantのバックアップを取ります。
cp system/bin/wpa_supplicant /mnt/sdcard/external_sd/bak/wpa_supplicant
端末作業でシステム領域への編集を行うためマウントを解除します。
SC-02Bでインストールした「Mount System dir for r/w access」を使用します。
続けてコマンドプロンプトの作業
# SDCardに挿入したwpa_supplicantをSystem領域のものと差し替えます
cp /mnt/sdcard/external_sd/bak/wpa_supplicant system/bin/wpa_supplicant
# Ownerを変更します
chown root.shell system/bin/wpa_supplicant
以上で作業完了です。
iPhoneのMywiに接続できることは確認しました。
PR
問1 温度モニタに関する次の記述を読んで,設問1~3に答えよ。
図1に温度モニタのシステム構成図の一部を示す。
温度の検出範囲は0~99℃とし,対応するA/D変換器の出力値は,
0~99の16ビット符号なし2進数とする。
このシステムは,タイマ割込み発生時に起動される割込みプログラムの中で
温度検出器の出力地をA/D変換器を介して取り込み,
2個の7セグメントLEDには10進数の数字1けたを表示する。
検出された温度0~99℃に対して,表示器では"00"~"99"として表示する。
LEDの各セグメントは,対応する出力ポートのビットの値が1のとき点灯し,0のとき消灯する。
7セグメントLEDに,"0"~"9"の数字を表示するために,
対応する8ビットのデータを数字の字形に合わせて設定する。
これらを形状データという。
割込みプログラムが起動するA/D変換の開始から,
表示処理の完了までの時間は,タイマ割込み間隔に比べて充分短い。
割込みプログラムの中で,各機器に対するデータの読込み及び書込みは
各機器に割り当てられたI/Oポート番号を指定して行う。
7セグメントLEDが接続されている出力ポートには
I/Oポート番号1が,A/D変換器にはI/Oポート番号2と3がそれぞれ割り当てられている。
表1に出力ポートとA/D変換器の動作概要を示す。
設問1
下位7けたの7セグメントLEDに図2のように"5"を表示したい。
出力ポートのビット7~0に設定すべき形状データとして正しい答えを,解答群の中から選べ。
ここで,形状データはビット7を最上位ビットとする16進数で表記する。
解答群
ア 66 イ B6 ウ BE エ DA オ F2
<解説?>
図1をよく見てください。
下位桁の0~7がそれぞれ対応する部位を黒く染めていると考えるとわかりやすいかと思います。
そして設問の1、"5"を表示するには、
下記解説図を参照してください。
上記のように5を表示するための対応部位がそれぞれ0~7の値となります。
この図の値をもう少しわかりやすくすると、
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
上位4桁
(8+2+1)=11
16進数なので値は"B"
下位4桁
(4+2)=6
値は"6"
値を並べて”B6”
答えは
イ
設問2
タイマ割込み発生時に起動される割込みプログラムについて,その処理の流れを図3に示す。
図3の処理中の【】に入れる正しい答えを,解答群の中から選べ。
なお,処理中で使用している擬似命令の意味は表2のとおりとする。
解答群
ア INPUT 1 イ INPUT 2 ウ OUTPUT 1 エ OUTPUT 2 オ OUTPUT 3
<解説?>
さて、この問題も特に難しいことはありません。
先ほど提示された資料、表の1をよく見てください。下記にて噛み砕いて説明します。
番号 |
概要 |
1 |
番号1に形状データを書き込むとLEDに値を出す(A) |
2 |
2番に1を書き込むとA/D変換開始(B) |
2番から読み込んだ値が0なら変換中(C) |
2番から読み込んだ値が0以外なら変換完了(D) |
3 |
変換完了後に番号3から読み込むとA/D変換後の値が出る(E) |
要約すると上記の表のような解釈ができると思います。
問題の【a】,【b】は変換中かどうかのループの前の処理なので変換完了していないことがわかります。
ので、3の値が含まれているオは選択肢から外れます。
【a】について考えてみます。
A/D変換開始なので上記表で当てはまるものは(B)と言えそうです。
(B)は要約するとI/Oポートの2番に1を書き込むということなので,
【a】の答えは
エのOUTPUT1(1を書き込む)になります。
次は【b】について考えてみます。
先ほどと比べると処理概要が記載されていない分情報は少ないですが,前処理,後続処理で考えてみます。
前処理は[A/D変換開始]後続処理は[GRの中が0なら処理中]となります。
この時最初に設定したGR=1の値が変化している事に着目します。
つまり、GRの中身に影響を与える処理を【b】はしている事になります。
表の2を読むとGRに影響する操作はINPUT処理だけなのでこの時点で選択肢はア・イのどちらかになります。
上記表より読み込むポート先は2しかありえないので
【b】の答えは
イのINPUT2(2のポートの情報をGRに書き込む)になります。
設問3
割込みプログラムの中で呼び出す手続DISPLAYの仕様と実行例は次のとおりである。
実行例に関する記述中の【】に入る正しい答えを,解答群の中から選べ。
[手続DISPLAYの仕様]
DISPLAYはGRに設定されたデータが示す値を表示器に表示する。
7セグメントLEDに"0"~"9"の数字を表示するために,
それぞれ8ビットからなる10個の形状データを表としてプログラム中に保持している。
GRに設定されたデータは,検出した温度に対応する0~99の16ビット符号なし2進数であり,
このまま出力ポートに設定しても意図した表示にはならない。
GRの内容を図4のとおり2桁のBCD(2進化10進数)に変換し,表を引き,
各けたに対応した形状データを図5のとおりにGRに設定して出力ポートに書き込む。
[手続DISPLAYの実行例]
図5のGRの内容が16進数表記でFEFCであったとき,
BCD値を格納していた図4のGRの内容は16進数表記で【c】であり,
割込みプログラムから手続DISPLAYに渡されたGRの内容は16進数表記で【d】である。
<解説?>
後ほど解説を入れます
cに関する解答群
ア 0008 イ 0309 ウ 0800 エ 0903 オ 0907
dに関する解答群
ア 0008 イ 0027 ウ 0050 エ 005D オ 0061