VLensって何ですか。ご存じの方教えてください。

Debug ModeにVLens Control Testというメニューがあります。

 

表示は以下のようになっています。

MPIN 10000100

 

も意味が分かりません。

 



AFボタンを押すと次の画面になります。

 



SDMってレンズ内臓の超音波モーターのことですよね。

 

うーん、謎。















 

Pentax K-3 Mark III Monochromeをお借りする機会がありましたのでdebug modeを試してみました。

 

Pentax K-3 Mark III ノーマル

ProjectNumber = 582

ProductID = 00078420

 

Pentax K-3 Mark III Monochrome

ProjectNumber = 622

ProductID = 00078550

 

です。

さてMonochrome機ではどちらのコードでdebug modeは起動するでしょうか。

予想ではMonochromeのコードで起動と思いましたが、結果はノーマルのコードでした。つまりこの辺(どの辺?)はノーマル仕様だということですね。

 

Ghidra に解凍したFirmwareを読み込ませます。

Language =ProcessorはARM Cortex A7 Little endianです。

最初の自動解析では結構めちゃめちゃな解析をしますので

少しづつ整えていきます。

 

まずはBOOTブロックとRTOSブロックの実行アドレスの設定です。ここはほとんど試行錯誤です。アセンブルリストの固定アドレスなどを頼りに先頭アドレスを探していきます。

 

結果としてBOOTは

0x50b00000

RTOSは

0x52500000

から始まっていることが判明しました。GhidraのMemory Map機能で設定します。

 

以下はBOOTの先頭部分です。ARMのRESET他、割り込みベクターが入っています。

 

 

RTOSのほうの先頭も見ていきましょう。

こちらも先頭は割り込みベクターになっています。

ブランチ先はもちろんBOOTとは違います。

 

 

BOOT中はBOOTの先頭の割り込みベクターが有効でBOOTが終了するとそれぞれのOSの割り込みベクターが使用されるようになるようです。

 

次回からは中身の解析に移ります。

 

メインのSoCはSocionextのSC2000です。

 

基本スペックは

CPU ARM Cortex A7 Quad 660MHz

クアッドコア Cortex A7、NEON、シングル Cortex M0 電源搭載
デュアル OS システム: Linus3.x とRTOS 

センサーインターフェース MPI Rx(4 レーン)、S-LVDS (16 レーン/4cl)、SLVS-EC(Blane) 2.5Gbps x4ch

インターフェース PCIe Gen2 (2 レーン)、USB2.0 Host/Device、USB3.0 Device、 SD、UHS-I/UHS-II、ギガビット・イーサネット用 RGMII LCD インターフェース - MIPI-DSI/16 ビットパラレル

画像処理性能 HEVC コーデック・H.264 コーデック 同時処理可能

• CV アルゴリズム用の専用 OpenCV ベース DSP エンジン
• 専用オブジェクト検出/追跡/認識エンジン

 

サイトはここ

 

これから行う解析は主にRTOSです。

RTOSはTRONのSMP T-Kernelが使われています。

SMP(Symmetric Multi-Processing:対称型マルチプロセッシング)

タイプのRTOSが使われています。3つのプロセッサが対等に扱われますが機能ごとの割り当てがあるかは現時点で不明です。

 

次回からGhidraを使ってリバースしていきます。

各ブロックの解説です。

④M0

 メインのSocに含まれるARM Cortex M0 MCUです。

 電源管理を担っています。省電力に貢献しています。

⑤BOOT 

 システム起動の役割をしています。

⑥RTOS

 カメラのほとんどの機能を担っています。

 ここをメインに解析していきます。

⑦DSP

 Socに含まれるDSP(Digital Signal Processor)です。

 CAVE社のCAVE-CVを実行します。Open-CVベースです。

⑧LINUX

 Linuxカーネルです。

⑨INITFS

 Linux本体です。

⑩SRIC

 手振れ防止SRの動作用のMCUです。MCUが何か、今のと ころ不明です。

⑪CPU

 バッテリー管理等を行っています。詳細は分かっていま

 せん。MCUはRenesasのRX113です。RAM32KB、

 ROM128KBのモデルです。

⑫SHELLCMD

 RTOSに含まれるコマンド群の名前とアドレスがテキストで入っています。

⑬ICONBIN

 カメラのメニューで使われるほとんどのアイコンデータです。データのみで管理情報はRTOSの中にあります。

 ⑮RES

 リソースデータです。表示用のjpeg、フォントデータ、サウンドなどが含まれます。

 

次回はSocの解説を行います。