TI DSP 新旧版本寄存器调用方法的对比分析
分析方法:分别对两种形式的代码的汇编代码进行比较,查看差异
- 驱动库模式:
1757 HWREGH(WD_BASE + SYSCTL_O_WDCR) |= SYSCTL_WD_CHKBITS | SYSCTL_WDCR_WDDIS;
00b405: F5A97029 MOV @AL, *(0:0x7029)
00b407: 5068 ORB AL, #0x68
00b408: F4A97029 MOV *(0:0x7029), @AL
驱动库模式,采用整体赋值的方式,
① 需要先将寄存器WDCR(地址:0x7029)的数据取出,放到AL
② 将所要赋值的数据与元数据进行按位或(ORB),放入AL
③ 将新数据从AL写到原来的寄存器WDCR(地址:0x7029)
- 寄存器模式:
对寄存器进行某位赋值,实际上只需要1条指令,采用的时OR指令,
67 CpuSysRegs.PCLKCR13.bit.ADC_C = 1;
00800c: 1A3C0004 OR @0x3c, #0x0004
总结,通常采用HWREGH 都使用了两条以上指令,先将绝对地址放入寄存器,再操作
而按位操作通常只需要1条指令