はじめまして。
見当違いなことを書いているかもしれませんがご容赦ください。
以前SH4+HEW(superH RISC engine Standard Toolcahin)を使用して開発していたものを今回RZ/A2+e2studio(GNU ARM Toolchain)
を使用したものに置き換える作業を実施しています。
求められている機能の一つに
「指定セクションに配置されたコードを暗号化、プログラム実行時に復号用エリアへ復号して展開し、その復号用エリアでコードを実行する」
というものがあります。
指定セクションに配置されたコードを暗号化する手順は、HEWにてビルド後にツールを使用して、規定セクションのコードを暗号化してオブジェクト(.abs)
を再生成しています。
復号についてはプログラム実行後、既定の手順にて鍵を取得後、復号用エリアにコードを復号しています。
SH4+HEWの場合はROM化支援機能によって実現させていたのですが、RZ/A2+e2studioの場合ではどのように実現させればいいのかに手間取っています。
やりたいことは
・暗号化したい関数群を指定セクションに配置し、オブジェクト(.abs)を生成
・プログラム実行中、暗号化した関数群は復号用エリアで実行させる
参考になるかはわかりませんが、SH4+HEWで生成されたMAPファイル(抜粋)を添付しておきます。
回答をいただけたら幸いです。
何卒宜しくお願い致します。
展開後の実行するアドレスのためのセクション設定はリンカスクリプトを作成すれば解決すると思います。細かいコマンドの使い方はわからないですが、e2studioのC /C++ビルド設定項目に「ビルド・ステップ」という項目があります。ここでビルド後に任意のコマンドを実行できるのでROM化作業をするBATファイル作成して登録してやればやりたいことができるかと思います。つまりここで生成されたファイルを暗号化して出力すれば良いと思います。