1
我被检查ATMEGA16数据表,并在PG17我发现有这种情况发生有“IO地址和SRAM地址”的IO寄存器,AVR [为什么IO寄存器具有IO地址和SRAM不会忽略]
我不我不知道我们使用哪一个,为什么有两种寻址IO?
我需要知道,如果它的SRAM的一部分,或者不是,请微启我^^
我被检查ATMEGA16数据表,并在PG17我发现有这种情况发生有“IO地址和SRAM地址”的IO寄存器,AVR [为什么IO寄存器具有IO地址和SRAM不会忽略]
我不我不知道我们使用哪一个,为什么有两种寻址IO?
我需要知道,如果它的SRAM的一部分,或者不是,请微启我^^
可以使用普通/通用内存操作码ADRESS寄存器(通过使用它SRAM地址)或者您可以使用更快的io操作码访问某些寄存器,这些操作码也允许您更快地进行位级访问。在后一种情况下,您必须使用IO地址。
通常你想使用IO地址和操作码。但SRAM-Adresses使您能够将寄存器目标作为数据指针传递给函数。
通常你的C编译器为你管理这个,你永远不必考虑它。
Better asked @ http://electronics.stackexchange.com/ –
寄存器不在SRAM中。这个问题更多的是关于MCU架构而不是编程。研究数据总线如何工作。这将解释为什么寄存器和RAM使用重叠的地址空间。 – UncleO
@UncleO我想你误解了这个问题。在AVR架构上,寄存器文件的某些部分在IO **和** Memory-Addressspace中均可见。 –