1. clrex指令的作用:
《arm architecture reference manual》B2-1292以下简称arm arm手册
The ClearExclusiveLocal() procedure takes as arguments the processor identifier processorid . The procedure clears the local record of processor processorid for which an address has had a request for an exclusive access. It is IMPLEMENTATION DEFINED whether this operation also clears the global record of processor processorid that an address has had a request for an exclusive access
该指令的作用就是在独占访问结束时,清除cpu中本地处理器针对某块内存区域的独占访问标志(核中的某个状态寄存器),以防在未清除时的其他操作,对系统产生影响。对于是否同时清除全局的独占访问标志,需要在设计cpu时的架构师决定。
2. clrex指令的作用很独特,在linux内核中用在什么地方呢?
用在如下地方:
(1)数据中止异常、指令预取中止异常的处理时调用
(调用linaro-aarch64/arch/arm/mm/abort-ev7.s v7_early_abort==》clrex)
(2)从svc模式下的irq异常、未定义指令异常、数据中止异常、指令预取中止异常,处理结束返回时调用
(调用宏:linaro-aarch64/arch/arm/kernel/entry-header.s svc_exit)
(3) 返回到用户层的快速系统调用/慢速系统调用(ret_slow_syscall,ret_fast_syscall==》
调用宏:linaro-aarch64/arch/arm/kernel/entry-header.s restore_user_regs==》clrex)
(4) run_all_tests 函数调用(==》kprobe_arm_test_cases==》TEST_UNSUPPORTED("clrex") ==》clrex)
该函数是一个驱动模块,可以动态加载。
如上所示:基本所有的异常都要用到该指令,系统调用的返回也能用到。
虽然异常和系统调用的代码在内核中不多,但是当内核运行起来时,异常和系统调用的执行频率特别高!
所以该指令还是非常有用的。
关键字:arm架构 linux内核 clrex指令的
引用地址:
arm架构的linux内核中,clrex指令的作用是什么
推荐阅读最新更新时间:2024-03-16 15:01
linux内核中的信号机制--信号机制的管理结构
Kernel version:2.6.14 CPU architecture:ARM920T Author:ce123(http://blog.csdn.net/ce123) 信号只是一个数字,数字为0-31表示不同的信号,如下表所示。 编号 信号名 默认动作 说明 1 SIGHUP 进程终止 终端断开连接 2 SIGINT 进程终止 用户在键盘上按下CTRL+C 3 SIGQUIT 进程意外结束(Dump)
[单片机]
邹诚:ARM架构在汽车领域快速增长
2011中国汽车电子国际论坛暨汽车半导体应用峰会于7月20-21日在成都新东方千禧大酒店隆重开幕。 此次峰会上,云集国内车载信息服务应用联盟及在汽车电子研发领域处于领先地位的中国汽车技术研究中心、中国汽车工程学会、清华大学、同济大学等行业权威机构;欧美、日本的众多业界权威也赴蓉出席此次盛会。同时,上汽、长安汽车、富士通、英飞凌、飞思卡尔等整车与芯片厂商,国内外知名车载系统提供商也受邀携其最新技术方案出席大会,共商汽车电子及半导体应用的发展前景。 主持人:有请来自ARM的市场经理邹诚先生,给我们带来“ARM架构在汽车领域快速增长”的演讲。 邹诚:各位汽车电子行业的专家、同行们大家早上好!我也是最后一个演讲,希望可
[汽车电子]
基于S3C2440的Linux内核移植和yaffs2文件系统制作--编译内核
1.3.4、编译内核 编译内核需要遵守以下步骤: 1、make dep make dep的意思就是说:如果你使用程序A(比如支持特殊设备),而A需用到B(比如B是A的一 个模块/子程序)。而你在做make config的时候将一个设备的驱动 由内核支持改为module,或取消支持,这将可能影响到B的一个参数的设置,需重新编译B,重新编译或连接A....如果程序数量非常多, 你是很难手工完全做好此工作的。make dep实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要编译。所以,你要make dep。 2、make clean 清除一些以前留下的文件,比如以前编译生成的目标文
[单片机]
linux内核启动流程
arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码,主要作用是检查CPU ID, Architecture Type,初始化BSS等操作,并跳到start_kernel函数。在执行前,处理器应满足以下状态: r0 - should be 0 r1 - unique architecture number MMU - off I-cache - on or off D-cache off view plain copy print ? /* 部分源代码分析 */ /* 内核入口点
[单片机]
借力Marvell ARM处理器 百度实现ARM架构服务器全球首次商用
美满电子科技(Marvell)近日宣布,中国搜索引擎巨头百度在全球首次商用的ARM架构服务器中,采用了Marvell公司的 ARM芯片组。作为世界范围内首家商用ARM服务器的公司,百度引领并开启了具有更低能耗和更高性能的全新“绿色数据中心”的新时代。这些全新的ARM架构服务器目前正在被用于支持名为“百度云”的个人云存储应用服务—yun.baidu.com。随着云服务和云应用,以及网站托管和社交站点所带来的“高存储-轻计算”任务的快速增长,当前的数据中心对服务器提出了全新的要求。为了满足这些新需求,Marvell推出了一个易于整合的一站式解决方案:ARM服务器系统级芯片ARMADATM XP CPU。 “正是由于对技术突破和创新的激情
[单片机]
ARM互动在线平台上线 激励产业合作与创新
ARM发布互动在线平台正式上线,帮助开发者简化基于ARM架构的设计工作。这一全新的互动平台是ARM下一代Connected Community社区,预计成为开发者与设计工程师协同合作、交流想法、互相挑战以及获得ARM及其合作伙伴最新动态的信息中心。这平台包含了一个中文社区的板块,为国内用户提供全中文的互动交流环境。
ARM生态系统包括了超过1,000家合作伙伴以及无数开发基于ARM技术解决方案的开发人员与工程师。在现有的ARM全球合作伙伴网络基础上,下一代ARM Connected Community社区提供了统一的接口,将合作伙伴、ARM工程师、其他开发人员,以及论坛、讨论、白皮书与视频汇全部聚在一起,使得寻找基于ARM技术
[单片机]
基于斯道S3C2410的Linux内核编译
1。编译缘由 使用斯道的zImage文件,我自己编译的Mplayer不能使用,必须加--nosound选项才能播放视频。后来见一篇文章说是Linux内核音频驱动的问题,所以决定重新编译内核。 2。编译工具及资料 2。1内核版本:斯道S3C2410普及版2光盘自带的 2。1交叉编译器:cross-2.95.3.tar.bz2,可能是在ARM官方的ftp服务器上下的,我忘了。 3。编译过程 3。1拷贝cross-2.95.3.tar.bz2到/usr/local/arm/目录,并转到/usr/local/arm目录 sudo cp cross-2.95.3.tar.bz2 /usr/local/arm sudo cd /usr/
[单片机]
基于ARM架构的监护系统的研究与设计
1 引言 随着我国经济的快速发展、城市化进程的日益加速、人们生活节奏的不断加快,越来越多的人们开始感到自己的健康每况愈下,很多人直至病情突发才明白。据报道,我国绝大多数人都处于亚健康状态。随着现代电子技术的发展,16/32位CPU的广泛应用,传统的生理信号监护仪的CPU系统也在逐渐的由8位 CPU向更高位数的处理器发展。随着监护仪功能的强大,对数据处理速度的要求越来越高,使得8位CPU的发展受到了限制,16/32位CPU可以在远高于 8位CPU的时钟频率下正常工作,数据一次性吞吐量大,处理器的价格却在下降,16/32位CPU开始被广泛应用于生理信号监护仪中。 该监护系统采用了ARM7系列芯片中的LPC2292嵌入式微
[医疗电子]