- 主题:Re: 为何许多单片机的外设寄存器的读指令周期比写指令周期明显
可能中间有buffer
--
FROM 123.118.187.*
写出完成,不一定数据已经真的写到最终目的地。
读入完成,数据一定要读到处理器的寄存器里。
大体例如,ARMv7,寄存器操作,
写出,Strong Order,确保已经写到寄存器;Device,只要写到中间的写缓存就OK。
读入,Strong Order或Device都要从寄存器读,而且要确保未完成的写操作完成。
很多外设寄存器是配成Device的,手册会有说明。
细节参考对应处理器以及对应架构的手册吧。
【 在 feiy (万事皆相通) 的大作中提到: 】
: 为何许多单片机的外设寄存器的读指令周期比写指令周期明显要长?
: 这里所谓的读写指令周期,并不包括程序里的那些判断等待的循环时间,就是单纯的执
: 行一条指令去读或者写某个外设对应的寄存器,测试这个指令的执行周期。
: ...................
--
FROM 123.112.160.*
总线转换的原因。外设并不是直接挂在CPU的总线上的,程序中寄存器操作实际上是
访问总线。
【 在 feiy (万事皆相通) 的大作中提到: 】
: 为何许多单片机的外设寄存器的读指令周期比写指令周期明显要长?
: 这里所谓的读写指令周期,并不包括程序里的那些判断等待的循环时间,就是单纯的执
: 行一条指令去读或者写某个外设对应的寄存器,测试这个指令的执行周期。
: ...................
--
FROM 123.117.160.*