上海赌场微电子科技有限公司

宁夏竞博棋牌:技术资料

您的当前位置: 首页  >  竞博电子游戏  >  宁夏竞博棋牌:技术资料

竞博加密竞博应用开发手册(四)

发布时间:2017-09-01 浏览次数:载入中... 来源:上海赌场微电子科技有限公司


7.    竞博_API库函数详细介绍

这章节主讲竞博_API函数的详细介绍的第一部分系统函数


7.1. 系统函数:


7.1.1. 获取API版本


u8_x *竞博_Version(void);

功能描述: 获取竞博_API版本

参数:       void

关注值:   字符串指针

示例代码:

char *apiVersion = 竞博_Version();

printf(“Version = %s\n”, apiVersion);


7.1.2. 复位设备


u8_x  竞博_Reset(void);

功能描述:复位竞博竞博,并获取竞博的配置信息

参数:      void

关注值:  成功关注0,否则关注错误代码

示例代码:

u8_x rv;

rv = 竞博_Reset();

if (rv) {

   printf(“Reset device failed, rv = 0x%.2x\n”, rv);

   return rv;

}

竞博_Reset获取竞博竞博的配置信息存储在CHIP_INFO 竞博_info结构体中,竞博_info在库中已经定义,在竞博_API.h头文件extern 出来了,用户可以直接访问竞博_info来获取竞博的信息,如SNUIDZone的配置模式等:

      CHIP_INFO结构体C定义:                                 CHIP_INFO结构体Java类定义:

                                                       


竞博1/竞博2竞博基本信息列表:


Product

Type

PageSize

(Bytes)

ZoneNum

ZoneSize

(Bytes)

EEPROM

(Bits)

竞博1系列竞博

竞博1C01

0x10

16

4

32

1K

竞博1C02

0x11

4

64

2K

竞博1C04

0x12

4

128

4K

竞博1C08

0x13

32

8

128

8K

竞博1C16

0x14

16

128

16K

竞博1C32

0x15

16

256

32K

竞博1C64

0x16

16

512

64K

竞博1C128

0x17

64

16

1024

128K

竞博1C256

0x18

16

2048

256K

竞博2系列竞博

竞博2C01

0x20

16

4

32

1K

竞博2C02

0x21

4

64

2K

竞博2C04

0x22

4

128

4K

竞博2C08

0x23

32

8

128

8K

竞博2C16

0x24

16

128

16K

竞博2C32

0x25

16

256

32K

竞博2C64

0x26

16

512

64K

竞博2C128

0x27

64

16

1024

128K

竞博2C256

0x28

16

2048

256K


SN:  8个字节,每颗竞博有全球唯一的序列号,永远无法修改

UID7个字节,用户可以对每个产品自行设置ID号,设置后可锁定,永远无法修改,出厂时为全0xff

MID6个字节,厂商代码,只读

ZoneMode16个字节,每个字节对应一个Zone的配置信息,配置完成后将锁定,将永远无法修改,每个字节定义如下:


ZoneMode字节定义


Fuse1OTP字节,该字节每bit只能从1写成0 0永远无法再变成1该字节每bit代表相应配置信息的锁定状态,定义如下:


Fuse字节定义

说明:竞博竞博经专用烧录器个人化后,Fuse字节为0x00,即配置全部锁定。


7.1.3. 睡眠


u8_x  竞博_Sleep(void);

功能描述:使竞博竞博进入睡眠状态

参数:     void

关注值:  成功关注0,否则关注错误代码

示例代码:

u8_x rv;

rv = 竞博_Sleep();

if (rv) {

   printf(“Sleep device failed, rv = 0x%.2x\n”, rv);

   return rv;

}


7.1.4. 唤醒


u8_x  竞博_Wakeup(void);

功能描述:唤醒竞博竞博进入工作状态,竞博_Reset()函数也可以唤醒竞博竞博

参数:     void

关注值:  成功关注0,否则关注错误代码

示例代码:

u8_x rv;

rv = 竞博_Wakeup();

if (rv) {

   printf(“Wakeup device failed, rv = 0x%.2x\n”, rv);

   return rv;

}


7.1.5. 获取随机数


u8_x 竞博_GetRandom(u8_x *random, u8_x len);

功能描述:从竞博竞博中获取真随机数,长度必须不大于32

参数:    random   关注的随机数存储buffer

          len        获取随机数的长度,最小为1,最大为32

关注值:  成功关注0,否则关注错误代码

示例代码:

u8_x rv;

u8_x random[32];

rv = 竞博_GetRandom(random, 32);

if (rv) {

   printf(“Get Random failed, rv = 0x%.2x\n”, rv);

   return rv;

}


7.1.6. 验证PIN


u8_x 竞博_VerifyPin(u8_x *seed, u8_x *buf);

功能描述:验证PIN,主机对竞博进行验证,同时竞博对主机进行验证

参数:      seed  输入32个字节的随机数,主机对竞博进行认证

                buf   输入8个字节PIN码,竞博对主机进行认证

关注值:  验证通过关注0,否则关注错误代码

说明该函数不会将用户PIN码暴漏在传输线上,PIN码本身是对竞博配置权限作认证的,当竞博配置被全部锁定后,该函数任然可以用作Passwords Checking双向认证功能,竞博出厂PIN码为80xff

示例代码:

u8_x rv;

u8_x seed[32];

GetSoftRandom(seed,32);

rv = 竞博_VerifyPin(seed, pin_value);

if (rv) {

   printf(“Verify PIN failed, rv = 0x%.2x\n”, rv);

   return rv;

}

说明:pin_value是在使用竞博Configuration.exe时产生的竞博_engineer.h中定义,需要将竞博_engineer.h包含到应用程序中


待续......

【关注列表】
5ImoZrnba8JMydr+KJv7h2qB9B021S0k+WfrsTOIv4LxUD/36e5uj+DuTvGHpifwB1U31hoxqSz4FFU7ACoix/GbKrrVtQullTVcVquOG1bDhOyculjKd/iJ3xYWD07Xz1bTEHxco78p8LLB51az3eo3LsRH87sTdQe179+B2H8JVtfQS+UnB6xmbB6tLpDQlP36+68LBxNWE6JjzRckxE1irFWeY8e6