新手入门
- 积分
- 18
- 金钱
- 18
- 注册时间
- 2016-9-13
- 在线时间
- 6 小时
|

楼主 |
发表于 2016-9-15 23:01:37
|
显示全部楼层
多谢原子哥指教,还有2个函数代码,中间的几个语句,看的头大,原子哥能不能简单解释下?
void nap_rd_dna(u8 dna[])
{
u32 reg = 0;
u32 ctrl = (NAP->CONTROL & ~((u32)NAP_CONTROL_VERSION_ADDR_Msk));
for (u8 i = 0; i < NAP_DNA_LENGTH; i += sizeof(reg)) {
NAP->CONTROL = ctrl | ((i + NAP_DNA_OFFSET) / sizeof(reg) <<
NAP_CONTROL_VERSION_ADDR_Pos);
reg = NAP->VERSION;
memcpy(&dna[i], ®, sizeof(reg));
}
}
void nap_ulk(const u8 key[])
{
u32 ctrl = (NAP->CONTROL & ~((u32)NAP_CONTROL_KEY_ADDR_Msk |
NAP_CONTROL_KEY_BYTE_Msk));
for (u8 i = 0; i < NAP_KEY_LENGTH; ++i) {
NAP->CONTROL = ctrl | ((u32)key[i] << NAP_CONTROL_KEY_BYTE_Pos) |
(i << NAP_CONTROL_KEY_ADDR_Pos);
}
}
|
|