|
劳动节闲在家,翻腾出不久前买的新唐M058SSAN评估板,用固件库写了个demon,居然百试不得运行,进仿真,发现卡在 SYS_UnlockReg(); 这个函数里,函数内容如下:- while(SYS->REGWRPROT != SYS_REGWRPROT_REGPROTDIS_Msk)
- {
- SYS->REGWRPROT = 0x59;
- SYS->REGWRPROT = 0x16;
- SYS->REGWRPROT = 0x88;
- }
复制代码
之后进一步发现,官方居然把SYS->REGWRPROT这个寄存器偏移地址弄错了,难怪不行。
找到原因之后修改这个函数的内容如下:- register uint32_t reg_addr, nmb1, nmb2, nmb3;
-
- reg_addr = 0x50000100;
- nmb1 = 0x59;
- nmb2 = 0x16;
- nmb3 = 0x88;
-
- __ASM("STR nmb1, [reg_addr]");
- __ASM("STR nmb2, [reg_addr]");
- __ASM("STR nmb3, [reg_addr]");
复制代码
流水灯欢快的跑了起来,哈哈,哈哈哈~
PS:鄙视下新唐。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。
如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》
|