TestCos

所属分类:操作系统开发
开发工具:C/C++
文件大小:300KB
下载次数:73
上传日期:2009-05-01 01:18:10
上 传 者luckoo
说明:  基于51的智能卡操作系统,并包含测试数据
(smart cos)

文件列表:
testcos\bank1.lst (44974, 2006-03-31)
testcos\bank2.lst (76237, 2006-05-18)
testcos\bank_0.lst (44090, 2006-03-31)
testcos\Clean.bat (191, 2002-10-30)
testcos\COS (590295, 2003-11-24)
testcos\cos.Bin (98304, 2006-03-31)
testcos\COS.m51 (107479, 2007-02-09)
testcos\COS_H00.BIN (65536, 2006-03-31)
testcos\COS_H01.BIN (65536, 2006-03-31)
testcos\COS_H02.BIN (65536, 2006-03-31)
testcos\Debug.bat (52, 2003-06-12)
testcos\Debug.ini (571, 2003-01-05)
testcos\des_flash.lst (53188, 2006-03-31)
testcos\Genbin.bat (191, 2005-12-08)
testcos\Genbin.bat.bak (147, 2005-12-08)
testcos\ins_table.lst (45739, 2006-03-31)
testcos\L51_BANK.lst (22797, 2006-03-31)
testcos\test_cos.lst (73618, 2006-03-31)
testcos\COS_Uv2.Bak (6247, 2007-02-09)
testcos\COS.Uv2 (6265, 2007-02-09)
testcos\COS_Opt.Bak (4840, 2007-02-09)
testcos\COS.Opt (4899, 2007-02-09)
testcos\09ctest\bank1.asm (995, 2005-11-28)
testcos\09ctest\bank2.asm (9327, 2005-12-15)
testcos\09ctest\bank_0.asm (887, 2005-12-08)
testcos\09ctest\des_flash.asm (4054, 2005-11-28)
testcos\09ctest\ins_table.asm (1367, 2005-12-13)
testcos\09ctest\L51_BANK.A51 (41114, 2005-12-09)
testcos\09ctest\Main.inc (15200, 2005-11-25)
testcos\09ctest\test_cos.asm (12306, 2005-12-13)
testcos\09ctest\test_script.csv (1276, 2005-12-16)
testcos\09ctest\test_script1.csv (1276, 2005-12-16)
testcos\09ctest\复件 L51_BANK.A51 (42671, 2005-12-08)
testcos\Debug\bank1.obj (5221, 2005-12-13)
testcos\Debug\bank2.obj (9073, 2006-05-18)
testcos\Debug\bank2.__i (111, 2006-05-18)
testcos\Debug\bank_0.obj (5035, 2005-12-13)
testcos\Debug\COS.lnp (335, 2007-02-09)
... ...

本 cos为测试09C的简单COS,cos.uv2文件为工程文件,该工程包括release和debug两工程。其中,release用来生成执行代码,debug用来仿真代码。调试时,应注意有SIMUlator编译开关的地方。 1.文件说明 bank_0.asm 所生成的代码放第0页 bank_1.asm 所生成的代码放第1页 bank_2.asm 所生成的代码放第2页 des_flash.asm所生成的代码放b000H以后的动态划分区 test_cos.asm、ins_table.asm、L51_bank.a51所生成的代码过放在COMMON区。 test_script.csv:为cOS指令的测试脚本。 2.指令说明 read flash指令用来检测flash的读,P1P2:flash地址(P1为低地址,P2为高地址),LC:数据长度 例如:f011004040 :cos 先发送一个INS(011H)字节,然后发送读取0040以后的flash 40H字节数据。 erase sector指令用来检测flash的擦写。P1P2:flash地址(P1为低地址,P2为高地址)。LC=0 例如:f013004000:cos 处理成功后,返回090h,00h连字节,并擦除smart flash 第二页。 write flash指令用来检测写FLASH功能。 P1P2:flash地址(P1为低地址,P2为高地址),lc数据长度。 f012004040 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 cos 先返回ins(012h),接着将0040以后40H字节写为22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 注意:执行该指令之前,先用erase sector擦除此页。 test_des:测试des协处理器:p2=0;加密;p2=1;解密;前8字节数据,后8字节KEY 例如: ;encrypt f016000010 1122334455667788 99aabbccddeeff00 ;cos 接到此指令后,将发送INS(016h),接着返回9f 08 ;get_response f0c0000008 ;cos 接到此指令后,将发送INS(0c0h),接着发送8字节加密的结果。 ;接着再发送90h, 00h。 ;dencrypt f016000110 99aabbccddeeff00 1122334455667788 ;cos 接到此指令后,将发送INS(016h),接着返回9f 08 ;get_response f0c0000008 ;cos 接到此指令后,将发送INS(0c0h),接着发送8字节解密的结果。 ;接着再发送90h, 00h。 testP2:测试P2的设置、读取。 例如: f015000001 89 ;cos 接到此指令后,将发送INS(015h),接着将P2置为089H,并接着发送9f 01 ;get_response f0c0000001 ;cos 接到此指令后,将发送INS(0c0h),接着发送1字节读p2值的结果。 ;接着再发送90h, 00h。 ;以下测试1页数据的读、擦、写 ;read flash(10) f017800040 ;cos 接到此指令后,将发送INS(17h),接着发送***字节读的结果。 ;接着再发送90h, 00h。 ;erase sector(10) f01***00000 ;cos 处理成功后,返回090h,00h连字节,并擦除flash 。 ;write flash(10) f018800040 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 ;cos 先返回ins(012h),接着将0040以后40H字节写为22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 ;接着再发送90h, 00h。 ;注意:执行该指令之前,先用erase sector擦除此页。 ;以下测试2页数据的读、擦、写 ;read flash(20) f01A600040 ;cos 接到此指令后,将发送INS(17h),接着发送***字节读的结果。 接着再发送90h, 00h。 ;erase sector(20) f01c600000 ;cos 处理成功后,返回090h,00h连字节,并擦除flash 。 ;write flash(20) f01b600040 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 ;cos 先返回ins(012h),接着将0040以后40H字节写为22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 ;接着再发送90h, 00h。 ;注意:执行该指令之前,先用erase sector擦除此页。 ;测试随机数 ;get rgn f017000008 ;cos 接到此指令后,将发送INS(17h),接着发送8字节读的结果,接着再发送90h, 00h。 ;以下测试2页数据的非法的地址读、擦、写 ;read flash(20) f01A900040 ;此错误,我也不知硬件是否如何反映 ;erase sector(20) f01c900000 ;此错误,软件希望返回9240 ;write flash(20) f01b900040 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 22 34 56 78 73 78 34 23 ;此错误,软件先返回01bh,接着希望返回9240 3.在代码中,添加指令的方法。 1、在文件ins_table.asm的Command_INS中添加一宏指令,例如: Define_INS 012h, Write_Flash, Have_Lc+Have_Write_Eeprom 012H:ins代码,write_flash:执行该指令的子程序;Have_Lc:表示有数据,Have_Write_Eeprom:表示有写EEPROM操作。然后,在定义Write_Flash子程序的文件,将此子程序PUBLIC就可 4、在release 工程中,执行编译后,在test cos目录下生成的cos.bin文件为cos。

近期下载者

相关文件


收藏者