RT1021 读取 ShadowRegister 获取芯片Unique ID等

芯片唯一ID:

Fuse Shadow Memory Footprint:

Read the fuse shadow register函数原型:

/* Read the fuse shadow register. */
uint32_t OCOTP_ReadFuseShadowRegister(OCOTP_Type *base, uint32_t address)
{
    assert(NULL != base);

    /* Make sure the OCOTP is ready, Overlapped accesses are not supported by the controller. */
    while (OCOTP_CheckBusyStatus(base))
    {
    }

    /* If ERROR bit was set, clear access error status bit. */
    if (OCOTP_CheckErrorStatus(base))
    {
        OCOTP_ClearErrorStatus(base);
    }

    /* Set the read timing. */
    OCOTP_SetReadTiming(base, s_timingConfig);

    /* Wait for busy bit is cleared. */
    while (OCOTP_CheckBusyStatus(base))
    {
    }

    /* Clear access error status bit. */
    if (OCOTP_CheckErrorStatus(base))
    {
        OCOTP_ClearErrorStatus(base);
    }

    /* Write requested address to register. */
    base->CTRL_CLR = OCOTP_CTRL_CLR_ADDR_MASK;
    base->CTRL_SET = OCOTP_CTRL_SET_ADDR(address);

    /* Set OCOTP auto read enable. */
    base->READ_CTRL = OCOTP_READ_CTRL_READ_FUSE_MASK;

    /* Wait for busy bit is cleared, and no error occurred on controller. */
    while (OCOTP_CheckBusyStatus(base))
    {
    }

    /* If ERROR bit was set, this may be mean that the accsee to the register was wrong. */
    if (OCOTP_CheckErrorStatus(base))
    {
        /* Clear access error status bit. */
        OCOTP_ClearErrorStatus(base);
    }

    /* Read the fuse data. */
    return (base->READ_FUSE_DATA);
}

读取唯一ID代码:

    uint32_t i;
    uint32_t fuse_shadow_memory[0x30];

    OCOTP_Init(OCOTP, 500000000U);
   
    for(i=0x00;i<0x30;i++)
    {
        fuse_shadow_memory[i]= OCOTP_ReadFuseShadowRegister(OCOTP, i );
        PRINTF("FuseShadowRegister[%X]:%X\r\n",i,fuse_shadow_memory[i]);
    }
    PRINTF("RT1021 Unique ID:%X%X",fuse_shadow_memory[2],fuse_shadow_memory[1]);

打印输出:

FuseShadowRegister[0]:40128003
FuseShadowRegister[1]:65F824A3
FuseShadowRegister[2]:141849D2
FuseShadowRegister[3]:50000085
FuseShadowRegister[4]:420002
FuseShadowRegister[5]:0
FuseShadowRegister[6]:0
FuseShadowRegister[7]:0
FuseShadowRegister[8]:0
FuseShadowRegister[9]:A400
FuseShadowRegister[A]:7
FuseShadowRegister[B]:0
FuseShadowRegister[C]:0
FuseShadowRegister[D]:0
FuseShadowRegister[E]:51A4AE5F
FuseShadowRegister[F]:0
FuseShadowRegister[10]:BADABADA
FuseShadowRegister[11]:BADABADA
FuseShadowRegister[12]:BADABADA
FuseShadowRegister[13]:BADABADA
FuseShadowRegister[14]:BADABADA
FuseShadowRegister[15]:BADABADA
FuseShadowRegister[16]:BADABADA
FuseShadowRegister[17]:BADABADA
FuseShadowRegister[18]:0
FuseShadowRegister[19]:0
FuseShadowRegister[1A]:0
FuseShadowRegister[1B]:0
FuseShadowRegister[1C]:0
FuseShadowRegister[1D]:0
FuseShadowRegister[1E]:0
FuseShadowRegister[1F]:0
FuseShadowRegister[20]:0
FuseShadowRegister[21]:0
FuseShadowRegister[22]:0
FuseShadowRegister[23]:0
FuseShadowRegister[24]:0
FuseShadowRegister[25]:BADABADA
FuseShadowRegister[26]:0
FuseShadowRegister[27]:0
FuseShadowRegister[28]:0
FuseShadowRegister[29]:0
FuseShadowRegister[2A]:0
FuseShadowRegister[2B]:0
FuseShadowRegister[2C]:0
FuseShadowRegister[2D]:40
FuseShadowRegister[2E]:0
FuseShadowRegister[2F]:0
RT1021 Unique ID:141849D265F824A3

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值