如果pstate.el == el0,则如果EL2ENABLED()&& hcr_el2.tge == 1,则Aarch64.SystemagccessTrap(EL2,0x18);否则AARCH64.SYSTEMACCESSTRAP(EL1,0x18); elsif pstate.el == el1,然后如果EL2ENABLED()&& hcr_el2.tid3 == 1,则AARCH64.SYSTEMACCESSTRAP(EL2,0x18);否则返回ID_AA64ISAR0_EL1; elsif pstate.el == el2,然后返回id_aa64isar0_el1; elsif pstate.el == el3,然后返回id_aa64isar0_el1;
Command1~Command n: 发送显示地址命令,地址1~n(最多可设置6个地址) Data1~Data n:发送显示数据(最多6 bytes) Time:数据线置高时间(最小时间为3ms) CommandX:发送显示控制命令(0x18) CommandY:发送显示控制调节命令(包括位占空比、段驱动电流以及显示模式设置) 芯片不需要命令来设置芯片是工作在地址自动加1模式还是固定地址模式,严格来说它只有一种地 址自动加1模式,此处划分是为了更好地说明芯片也可以单独给某个显示寄存器地址写显示数据,如 果单独给某个显示地址写显示数据,写完显示地址后,紧跟着只能写一个显示数据,就把信号线置高 至少3ms,如果紧跟着写几个显示数据,那么芯片在接收到第一个数据后,显示地址就会在规定的地 址上自动加1,再接收第二个显示数据,直到接收到最后一个显示地址的显示数据。
名称 地址 位宽 R/W 功能 INFO 0x0D/0x0E 16 R 信息(0x0101) WIA 0x0F 8 R 我是谁(0x41) DATAX 0x10/0x11 16 R X 输出值 DATAY 0x12/0x13 16 R Y 输出值 DATAZ 0x14/0x15 16 R Z 输出值 STA1 0x18 8 R 状态1(DRDY) CNTL1 0x1B 8 R/W 控制设置1 CNTL2 0x1C 8 R/W 控制设置2 CNTL3 0x1D 8 R/W 控制设置3 PRET 0x30 8 R/W 预设时间 AVE_A 0x40 8 R/W 平均时间设置 CNTL4 0x5C/0x5D 16 R/W 控制设置4(LV复位释放) TEMP 0x60/0x61 16 R 温度值 OFF_X 0x6C/0x6D 16 R/W 偏移 X 值 OFF_Y 0x72/0x73 16 R/W 偏移 Y 值 OFF_Z 0x78/0x79 16 R/W 偏移 Z 值 FINEOUTPUTX 0x90/0x91 16 R 根据 OFFX 的 DATAX 值 FINEOUTPUTY 0x92/0x93 16 R 根据 OFFY 的 DATAY 值 FINEOUTPUTZ 0x94/0x95 16 R 根据 OFFZ 的 DATAZ 值 SENSX 0x96/0x97 16 R 灵敏度调整 X 值 SENSY 0x98/0x99 16 R 灵敏度调整 Y 值 SENSZ 0x9A/0x9B 16 R 灵敏度调整 Z 值GAIN_PARA_X 0x9C/0x9D 16 R 轴干扰 X 值 GAIN_PARA_Y 0x9E/0x9F 16 R 轴干扰 Y 值 GAIN_PARA_Z 0xA0/0xA1 16 R 轴干扰 Z 值 OFFZEROX 0xF8/0xF9 16 R 无磁场时偏移调整 X 值 OFFZEROY 0xFA/0xFB 16 R 无磁场时偏移调整 Y 值 OFFZEROZ 0xFC/0xFD 16 R 无磁场时偏移调整 Z 值
