由于新唐系台湾厂商,NUC972 ARM MPU资料不是足够完善,笔者认为,一般ARM处理器的TRM手册至少要3000页以上才能够足以详细描述各种寄存器在不同情况下的功能描述。新唐的TRM只有区区1200多页,很多地方一笔带过,更是没有交叉引用自家相关的其他文档,而且TRM(Technical Reference Manual)手册多处描述有歧义,导致无法理解软件寄存器的意图。比如看门狗watchdog这一块的描述。
根据5.13章节Watchdog Timer(WDT)的相关描述,Setting WDTEN (WDTCR[7]) to 1 will enable the WDT function and the WDT counter to start counting up.就是说设置WDTCR寄存器的第7位为1,就会使能watchdog功能,那一般人就会认为是这个寄存器位是控制看门狗的开关的,显然这一块的描述是这个意思。
经过对nuc970_wdt.c源码的分析得知,这个寄存器位只是看门狗定时器的开关,并不是看门狗功能的开关。
经过对新唐其他未公开资料分析,得知,硬件引脚PA [9:0]的状态会映射到对应的寄存器SYS_PWRON [9:0],所以即使power on的时候这些PA状态固定了,后续还是可以修改的,这里的PA[3]就是控制看门狗功能在上电的时候是否打开。那么对应的寄存器位SYS_PWRON[3]就是控制看门狗功能的使能。所以最终控制看门狗功能的寄存器位是SYS_PWRON[3],并不是上面提到的WDTCR[7]寄存器位。
和TI这样的详细文档根本没办法比,TI单个TRM手册里面,会详细交叉引用其他相关的分支文档,而且一一都提供了直达链接,都是非常详细,现在很少有厂商能做到这一点,所以很多时候,笔者能选择TI的芯片,不会考虑用别家的原因就在这。
来两张NUC970系列的对比
新唐MPU roadmap