首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全时接收TPM_RC_BAD_TAG

全时接收TPM_RC_BAD_TAG
EN

Stack Overflow用户
提问于 2019-09-21 17:11:23
回答 1查看 108关注 0票数 0

试图使用婴儿slb9670与狼to。当将lib移植到自定义spi函数和os时,接收0x01e(12月30日),这意味着TPM_RC_BAD_TAG。如果我已经收到了上限,我的Spi连接是否正确?(同样的代码在带有STM32f7实现的STM32f7板上运行良好)谢谢

代码语言:javascript
复制
rc = TPM2_Init(&tpm2Ctx, TPM2_IoCb, userCtx);
if (rc != 0) 
{
    tst_printf("\r\nTPM init failed! rc = %i;", rc);
    break;
}
else
{
    tst_printf("\r\nTPM init success!");
    tst_printf("\r\nTPM2: Caps 0x%08x, Did 0x%04x, Vid 0x%04x, Rid 0x%2x \n",
    tpm2Ctx.caps,
    tpm2Ctx.did_vid >> 16,
    tpm2Ctx.did_vid & 0xFFFF,
    tpm2Ctx.rid);
}
/* define the default session auth */

XMEMSET(tpm_session, 0, sizeof(tpm_session));
tpm_session[0].sessionHandle = TPM_RS_PW;
TPM2_SetSessionAuth(tpm_session);
if (rc != TPM_RC_SUCCESS &&
    rc != TPM_RC_INITIALIZE /* TPM_RC_INITIALIZE = Already started */ ) {
    tst_printf("TPM2_SetSessionAuth failed 0x%x: %s\n", rc, TPM2_GetRCString(rc));
    break;
}

Startup_In startup;
XMEMSET(&startup, 0, sizeof(Startup_In));
startup.startupType = TPM_SU_STATE;
rc = TPM2_Startup(&startup);
if (rc != TPM_RC_SUCCESS &&
    rc != TPM_RC_INITIALIZE /* TPM_RC_INITIALIZE = Already started */ ) {
    tst_printf("TPM2_Startup failed %i: %s\n", rc, TPM2_GetRCString(rc));
    //break;
}

tst_printf("\r\nTPM2_Startup pass!\f");

输出:

代码语言:javascript
复制
TPM init success!
TPM2: Caps 0x30000697, Did 0x001b, Vid 0x15d1, Rid 0x10
TPM2_Startup failed 30: Unknown

编辑的

cmd在TPM2_TIS_SendCommand中的值:

代码语言:javascript
复制
80 01 00 00 00 0c 00 00 01 44 00 00             (working example)
00 00 00 00 00 0c 00 00 01 44 00 00             (my case)

必须由TPM_ST_NO_SESSIONS添加的80 01 -

EN

回答 1

Stack Overflow用户

发布于 2019-09-22 06:13:31

错误是在准备包裹的功能上。我的IAR编译器版本不能处理16位值的__REV()。我用小宏来处理,现在一切都很好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58042438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档