初级会员

- 积分
- 95
- 金钱
- 95
- 注册时间
- 2016-1-25
- 在线时间
- 16 小时
|
发表于 2019-4-19 10:20:01
|
显示全部楼层
GD32版本:
[mw_shl_code=c,false]/* 写data区,addr_data0_or_data1=0或1
* 设置完毕后,重启才能获取。
* 成功返回0,否则返回-1
*/
int ob_datax_write(int addr_data0_or_data1,uint8_t data)
{
uint8_t u8;
uint16_t u16;
int ret = -1;
fmc_unlock();
ob_unlock();
/* 备份 */
u8 = ob_user_get();
u16 = ob_data_get();
ob_erase();
if(ob_data_program(0x1FFFF804,(addr_data0_or_data1 == 0)?data: (u16&0xFF)) != FMC_READY)
goto fail;
if(ob_data_program(0x1FFFF806,(addr_data0_or_data1 == 1)?data: ((u16>>8)&0xFF) ) != FMC_READY)
goto fail;
if(ob_user_write(u8&OB_FWDGT_SW,u8&OB_DEEPSLEEP_NRST,u8&OB_STDBY_NRST,u8&OB_BOOT_B0) != FMC_READY)
goto fail;
ret = 0;
fail:
ob_lock();
fmc_lock();
return ret;
}[/mw_shl_code] |
|