完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
呵呵,s3c2410...在vivi中的s3c2410.h文件中设置时钟时 有这么一段
mrc p15,0,r1,c1,c0,0 orr r1,r1,#0xc0000000; mcr p15,0,r1,c1,c0,0 这段的每句 的意思是什么?为什么要用到些处理器指令?协处理器指令的作用是干什么? |
|
相关推荐
1个回答
|
|
S3C2410/S3C2440中,除了有一个ARM920T的CPU核外,还有若干个协处理器。协处理器也是一个微处理器,它被用来帮助主CPU完成一些特殊功能,比如浮点计算等。对MMU、TLB、Cache等的操作就涉及协处理器。
CPU核与协处理器间传送数据时使用这两条指令:MRC和MCR,它们的格式如下: MRC 从协处理器获得数据,传给ARM920T CPU核的寄存器 MCR 数据从ARM920T CPU核的寄存器传给协处理器 {cond} 执行条件,省略时表示无条件执行 p# 协处理器序号 Rd ARM920T CPU核的寄存器 cn和cm 协处理器中的寄存器 其中, 实际上,我在开发过程中根本不理会协处理器的指令格式,了解某个寄存器的格式,然后修改它的值就行了。 1. 对于“mrc p15,0,r1,c1,c0,0”,其中的r1表示是协处理器cp15的第一个寄存器,它的格式可以参考S3C2410数据手册的章节《Table 2-10. Control Register 1-bit Functions》。 2. 指令“orr r1,r1,#0xc0000000;”将刚才读到的值的31、30位设为1,这两个位的意义为: 31 iA bit Asynchronous clock select 30 nF bit notFastBus select 当CPU的FCLK与HCLK不相等时,总线必需被设为异步模式(asynchronous bus mode),参考数据手册第7章《CLOCK & POWER MANAGEMENT》: If HDIVN = 1, the CPU bus mode has to be changed from the fast bus mode to the asynchronous bus mode using following instructions. MMU_SetAsyncBusMode mrc p15,0,r0,c1,c0,0 orr r0,r0,#R1_nF:OR:R1_iA mcr p15,0,r0,c1,c0,0 3. 指令“mcr p15,0,r1,c1,c0,0”把这个新值写到协处理器去 细读数据手册才是根本,最后建议发帖时标题写明问题,也好供别人搜索 |
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2208 浏览 6 评论
2011 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4572 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-22 21:57 , Processed in 0.633518 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号