Efuse使用示例

yangzh · 268次点击 · 2个月前

一、6621E、6626系列都带有efuse功能,可以做为主控保存特殊信息(应用中使用的加密信息),因efuse是一次使用,每次可以修改bit的方式使用,现在以6626(3526)为示例,介绍efuse的使用方法

二、上位机修改efuse使用方法

image.png

image.png

通过PC工具读出来的文件

image.png


三、固件修改efuse使用方法

void main(void)

{

    ……


    uint32_t address, length;

    uint16_t crc16;
    mbr_read_part(PART_TYPE_APP, &address, &length, &crc16);
    OM_LOG_DEBUG("running(%d): 0x%08X, len: %d, crc: 0x%04X\n", drv_pmu_reboot_reason(), address, length, crc16);
    OM_LOG_DEBUG("temperature=%dC\n", (int)drv_adc_control(ADC_CONTROL_READ_TEMPERATURE, NULL));

    //efuse
    uint32_t addr1 = 0x0;
    uint8_t data[32];
    memset(data,0x00,32);
    drv_efuse_init();
    drv_efuse_read(addr1,data,32);
    OM_LOG_DEBUG_ARRAY_EX("data :", data,32);
           
    data[0] = 0x07;
    drv_efuse_write(addr1,data,16);
    OM_LOG_DEBUG_ARRAY_EX("data :", data,32);      
           
    drv_efuse_read(addr1,data,32);
    OM_LOG_DEBUG_ARRAY_EX("data :", data,32);
           
    // simple event timer

    evt_timer_set(&evt_timer_0, 2000, EVT_TIMER_REPEAT, evt_timer_0_handler, NULL);


……

}


打印结果

OMBLE2

addr:: 32 CF 0A AB 38 E4 [6bytes]
running(0): 0x00004000, len: 139224, crc: 0xB28B
temperature=25C
data :: 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 4F E6 DD 82 83 [32bytes]
data :: 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 4F E6 DD 82 83 [32bytes]
data :: 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 4F E6 DD 82 83 [32bytes]
gpio: 0x00020000
OB_GAP_EVT_ADV_STATE_CHANGED(0), reason:0

对第一个字节测试写0x07,读出来也是0x07


PC工具读出来的文件

image.png


被收藏 0  ∙  0 赞  
加入收藏
点赞
1 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站