ctr_eFuse/trunk/readme.txt
n2460 245d933cd7 sample:パッケージに含まれる readme の改訂。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_eFuse@214 ff987cc8-cf2f-4642-8568-d52cce064691
2013-06-06 06:29:26 +00:00

108 lines
2.5 KiB
Plaintext

CTR - ID生成関数について : 2013/06/05
-----------------------------
ファイル構成
readme.txt
このファイルです。
readme_openssl.txt
LICENSE_en.txt
LICENSE_jp.txt
ID 生成関数ライブラリは OpenSSL の機能を一部利用しているため、これらのライセンスファイルを含んでいます。
libgenid.a
ID 生成関数のライブラリファイルです。
cr_generate_id.h
上記ライブラリのヘッダファイルです。
function_spec.pdf
ID 生成関数の仕様について記述しています。
sample.c
util.c
util.h
Makefile
ID 生成関数を使った動作サンプルです。
----------------------------
関数仕様
function_spec.pdf をご参照下さい。
cr_generate_id 関数の実行速度は
Intel Pentium4 3.2GHz CPU にて 約 85 msec です。
----------------------------
サンプル
展開したディレクトリの中で make を実行すると gen_id プログラムが作成されます。
このプログラムは eFuseID を生成するサンプルプログラムです。
起動時にはボンディングオプションの指定が必要です。
$ ./gen_id 00
プログラム中でキーボードからの入力受付を行います。
以下のキーに対応しています。
p : デバイス ID とそれから生成される eFuseID データ、そして生成に掛かった平均時間を表示します。
s : デバイス ID[0] をファイル名として実行ディレクトリにバイナリとして保存します。
q : プログラムを終了します。
以下、sample.c の一部を抜粋します。
util.c はユーティリティ関数を集めたもので ID 生成関数ライブラリで必要なものではありません。
int main(int argc, char* argv[])
{
--- 省略 ---
// cr_generate_id を使用する前に呼び出す
ret_code = cr_generate_id_initialize( id_buf );
if ( ret_code != CR_GENID_SUCCESS )
{
printf( "error : cr_generate_id_initialize\n" );
return -1;
}
printf("done.\n");
--- 省略 ---
for ( i = 1; i < 0xffffffff; i++ )
{
--- 省略 ---
// ID 生成
time_start = gettimeofday_sec();
ret_code = cr_generate_id( device_id, id_buf, bonding_option );
if( ret_code != CR_GENID_SUCCESS )
{
fprintf(stderr, "cr_generate_id failed c=0x%08x\n", counter0);
}
else
{
time_end = gettimeofday_sec();
time_total += (long double)(time_end - time_start);
time_count++;
}
--- 省略 ---
}
end:
--- 省略 ---
// cr_generate_id を使用した後に呼び出す
if ( cr_generate_id_finalize( id_buf ) != CR_GENID_SUCCESS )
{
printf( "error : cr_generate_id_finalize\n" );
return 0; // error
}
printf( "end of main.\n" );
return 0;
}