⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 基于51的智能卡操作系统
💻 TXT
字号:
本 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),接着发送64字节读的结果。
;接着再发送90h, 00h。

;erase sector(10)
f019800000
;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),接着发送64字节读的结果。
接着再发送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。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -