社区
Linux_Kernel
帖子详情
寄存器的疑问
aiwoziji13
2010-09-27 08:11:32
arm有37个寄存器(物理寄存器)
那比如 控制I/O口 的寄存器 又是什么呢?
有什么区别啊?
...全文
156
9
打赏
收藏
寄存器的疑问
arm有37个寄存器(物理寄存器) 那比如 控制I/O口 的寄存器 又是什么呢? 有什么区别啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wwwunix
2010-09-29
打赏
举报
回复
[Quote=引用 6 楼 aiwoziji13 的回复:]
哦,万分感谢您的解答,基本理解了 再麻烦问下 我是否可以这样理解:
除了cpu内部的寄存器,剩下的寄存器可能是在不同的设备(I\O寄存器)或者是位于不同的模块中,而一些
模块(如UART)和 arm core 共同构成的S3c2410芯片?
这些模块的寄存器的地址是在地址总线上分配好了的?
引用 5 楼 wwwunix 的回复:
首先……
[/Quote]
这样理解基本正确。
dfysy
2010-09-29
打赏
举报
回复
建议你随便买本ARM开发的书看看,市面上最烂的书都会讲到你上面的内容。
wwwunix
2010-09-28
打赏
举报
回复
首先,寄存器都是真实存在的物理既存器。
你说的那些寄存器,对于基于arm的S3c2410芯片来说,不在arm core中,位于UART模块中。具体的地址是:
Register Address R/W Description Reset Value
ULCON0 0x50000000 R/W UART channel 0 line control register 0x00
ULCON1 0x50004000 R/W UART channel 1 line control register 0x00
ULCON2 0x50008000 R/W UART channel 2 line control register 0x00
等等
aiwoziji13
2010-09-28
打赏
举报
回复
谢谢您,有点明白了, 不过 那您说有些I/O寄存器是位于外部设备上的,
那比如说 控制异步串行通信(USART)的 状态、控制、波特率 这些类型的寄存器是真实存在的物理寄存器吗
他们位于什么地方,还是就是一段物理地址?
[Quote=引用 3 楼 wwwunix 的回复:]
你前面说的37个寄存器指的是CPU中的寄存器,用于通用的各种运算。汇编指令可以直接用寄存器的名字的方式来访问这些寄存器
而I/O寄存器是控制外设的寄存器,不存在于CPU中,一般通过地址总线与CPU相连。汇编指令需要通过地址来访问这些寄存器。有些I/O寄存器位于外部设备上。
[/Quote]
wwwunix
2010-09-28
打赏
举报
回复
你前面说的37个寄存器指的是CPU中的寄存器,用于通用的各种运算。汇编指令可以直接用寄存器的名字的方式来访问这些寄存器
而I/O寄存器是控制外设的寄存器,不存在于CPU中,一般通过地址总线与CPU相连。汇编指令需要通过地址来访问这些寄存器。有些I/O寄存器位于外部设备上。
aiwoziji13
2010-09-28
打赏
举报
回复
楼上说spec 是什么啊? google下也没查到和我的问题有什么关系啊!
alex_gogo
2010-09-28
打赏
举报
回复
学习!
aiwoziji13
2010-09-28
打赏
举报
回复
哦,万分感谢您的解答,基本理解了 再麻烦问下 我是否可以这样理解:
除了cpu内部的寄存器,剩下的寄存器可能是在不同的设备(I\O寄存器)或者是位于不同的模块中,而一些
模块(如UART)和 arm core 共同构成的S3c2410芯片?
这些模块的寄存器的地址是在地址总线上分配好了的?
[Quote=引用 5 楼 wwwunix 的回复:]
首先,寄存器都是真实存在的物理既存器。
你说的那些寄存器,对于基于arm的S3c2410芯片来说,不在arm core中,位于UART模块中。具体的地址是:
Register Address R/W Description Reset Value
ULCON0 0x50000000 R/W UART channel 0 line control register 0x00
ULCON1 0……
[/Quote]
Wenxy1
2010-09-27
打赏
举报
回复
为何不看spec.
对modbus写
寄存器
功能的
疑问
本文探讨了Modbus协议中写
寄存器
功能的实现逻辑,针对
寄存器
个数与写入字节数的字段分配问题进行深入分析,提出在特殊情况下
寄存器
与字节对应关系的个人猜测。
汇编最容易混淆的「
寄存器
疑问
」
本文深入解析8086汇编中三类核心
寄存器
:通用
寄存器
(AX/BX/CX/DX)用于算术运算和数据暂存,支持高低8位拆分;指针变址
寄存器
(SP/BP/SI/DI)专用于寻址与栈操作,功能固化;段
寄存器
(CS/DS/ES/SS)管理内存分段,不可直接赋立即数,需经通用
寄存器
中转。强调硬件约束、使用边界及常见误用场景。
KST-STM32学习之数码管扫描中的一个
寄存器
操作
疑问
本文解析了STM32中的
寄存器
操作过程,包括清零低8位值和进行位选的过程,并对比了51单片机的相关操作。此外,还介绍了STM32固件库中一个有趣的函数,其核心仍是ODR
寄存器
的操作。
汇编学习之《标志
寄存器
》
本文围绕汇编中的标志
寄存器
展开,介绍了flag
寄存器
及EFL扩展标志
寄存器
。详细说明了EFL标志
寄存器
各标志位,如CF进位标志、PF奇偶标志、AF辅助进位标志等的含义,并通过代码示例进行验证,还提出了关于ZF标志的
疑问
,对汇编学习有一定指导意义。
Linux 用户层如何调用接口设置
寄存器
本文探讨了Linux内核2.6版本中
寄存器
写入操作的实现原理,从宏定义到具体函数调用逐步解析,并针对直接在用户空间设置
寄存器
的可行性提出
疑问
。
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章