8317|9

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求助 关于MRC p15,0,R0,c0,c0,0的问题 [复制链接]

MRC p15,0,R1,c0,c0,0这个指令是来读取ARM CPU的ID号到ARM寄存器R1里面的吗?如果是的话,我现在在EVC环境下嵌入了有下面汇编内容的.s文件:
        AREA        |.text|, CODE

        EXPORT ARMCPUID
ARMCPUID PROC
          MRC p15, 0, R1, c0, c0 ,0
          STR R1,[R0],#0
          MOV pc,lr  
          END
我想调用ARMCPUID这个函数来读取R0中存储的ID号,我怎么在EVC的环境下读取呢?
下面我简单说一下我的过程:我建立了一个button和一个edit,想通过点击这个button 在edit中显示出这个ID来,我在edit中关联了一个CString型的变量m_ID,然后在调用了ARMCPUID(&m_ID)来读取,但是我没有成功,请高人指点我应该如何去做,是不是我的这几句汇编不对啊。非常着急,我在线等,不胜感激。

最新回复

谢谢您的提醒,我知道哪里出问题了,我定义的变量的类型不对,应该是unsigned int类型的,真是一着不慎满盘皆输啊呵呵,现在读出结果来了,显示的结果是1761946886.不知道对不对,我再检查一下,谢谢您了。我会把分数给您。我看看分数怎么给啊。我的msn是minshengbai@live.cn.如果您有兴趣,可以加我。再次感谢。  详情 回复 发表于 2009-3-27 16:00
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 


上面的协处理器指令是读C0 送到R1

EVC嵌入汇编没有做过。

你参照一下ADS的样子试试。
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
恩对是读c0到R0,我看datasheet上说的c0存储的就是ID,其实嵌入x86CPU的汇编只用_asm{}就能实现,但是现在嵌入的是ARM的汇编就不能那么做了,现在比较困惑,ADS我没有用过。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

4
 
哦 不好意思,我最开始写错了,是想读R1中内容,其实写哪个寄存器都行,呵呵
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
請教何謂 "然后在调用了ARMCPUID(&m_ID)来读取,但是我没有成功", 請問這個沒有成功, 指的是傳回值不對, 還是有錯誤發生呢?? 若是傳回值不對, 那該傳回值為何, 您預期的值又為何??

順便可否把您測試的機器上的 CPU 型號一併告知.

Paul, Chao @ Techware
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

6
 
那个.s文件里面定义了ARMCPUID这样的一个函数,我在button的程序代码中直接可以调用这个函数来进行读取,我在button的代码中是这样写的:
void CARMCPUDlg::OnButton1()
{
        // TODO: Add your control notification handler code here
        UpdateData();
        ARMCPUID(&m_ID);//这个ARMCPUID函数就是在.s文件中Export的那个函数
        UpdateData(false);
}
没有成功指的是:没有传回给我任何信息,我感觉ARM CPU的ID应该是一个字符串形式数据
我的arm型号是PXA270。
整个在我主机上的EVC程序是没有问题的,而在那个arm的设备上 我点击了那个button按钮以后 就没有读出数据。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
那个.s文件里面定义了ARMCPUID这样的一个函数,我在button的程序代码中直接可以调用这个函数来进行读取,我在button的代码中是这样写的:
void CARMCPUDlg::OnButton1()
{
        // TODO: Add your control notification handler code here
        UpdateData();
        ARMCPUID(&m_ID);//这个ARMCPUID函数就是在.s文件中Export的那个函数
        UpdateData(false);
}
没有成功指的是:没有传回给我任何信息,我感觉ARM CPU的ID应该是一个字符串形式数据
我的arm型号是PXA270。
整个在我主机上的EVC程序是没有问题的,而在那个arm的设备上 我点击了那个button按钮以后 就没有读出数据。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

8
 
不好意思,我的cpu是ARM PXA255的
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

9
 
有說明圖, 但沒法附上 (Please refer Intel XScale? Core Developer’s Manual, Page 81, Register 0: ID & Cache Type Registers)

31:24 Read / Write Ignored Implementation trademark (0x69 = ‘i’= Intel Corporation)
23:16 Read / Write Ignored Architecture version = ARM* Version 5TE

這東西會回傳一個 32-bits 值給你, 該值應為 0x6905xxxx, 所以你檢查 m_ID 的值, 該變數應為 unsigned int 的型態.

所以該函數 ARMCPUID 應該是正常工作, 是你期待錯了.

Paul, Chao @ Techware
 
 
 

回复

71

帖子

1

TA的资源

一粒金砂(初级)

10
 
谢谢您的提醒,我知道哪里出问题了,我定义的变量的类型不对,应该是unsigned int类型的,真是一着不慎满盘皆输啊呵呵,现在读出结果来了,显示的结果是1761946886.不知道对不对,我再检查一下,谢谢您了。我会把分数给您。我看看分数怎么给啊。我的msn是minshengbai@live.cn.如果您有兴趣,可以加我。再次感谢。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表