首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何读写APIC寄存器"APIC_ICR"?

如何读写APIC寄存器"APIC_ICR"?
EN

Stack Overflow用户
提问于 2012-07-06 16:56:25
回答 1查看 671关注 0票数 1

代码如下:

代码语言:javascript
运行
复制
static int __init test3_init(void)
{
   uint64_t v,i;
   for (i=0;i<10;i++)
   {
       v= native_x2apic_icr_read();
       printk("v=%llx\n",v);
   }
   return 0;
}

结果如下:

代码语言:javascript
运行
复制
[ 6658.458919] v=9a557fd8
[ 6658.458925] v=1d
[ 6658.458928] v=17
[ 6658.458930] v=17
[ 6658.458932] v=17
[ 6658.458935] v=17
[ 6658.458937] v=17
[ 6658.458939] v=17
[ 6658.458942] v=17
[ 6658.458944] v=17

为什么连续读取该寄存器的值如下所示。前两个是不同的,但其余的是相同的。

我的最终目标是复位该寄存器中的APIC_DM_NMI(0x00400),但如果值不一致,复位该位的意义是什么?有人告诉我重置这个位APIC_DM_NMI可以从APIC启用NMI,我不知道,我完全是一个新手。如果任何人能提供任何关于这个MSR的信息,以及如何正确地操作它,将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-07-06 18:26:29

不知何故,我觉得稳定值(即0x17)似乎是一个更“正常”的值。这些输出可以重复吗?我的意思是,前两个总是不同的,并且从3开始是稳定的?

这是来自Pentium Processor System Architecture (page 395)的ICR寄存器的描述,我没有看到任何关于读取这个注册器的注意事项。

仅供参考,这是我在lecture notes中找到的ICR位规范:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11359021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档