
Cortex-M系列
文章平均质量分 60
wang-bob
嵌入式系统开发和研究
展开
-
ARM Cortex-M3 B[x]指令详解
B指令 B指令的格式为: B{条件} 目标地址 B指令是最简单的跳转指令。一旦遇到一个 B 指 令,ARM 处理器将立即跳转到给定的目标地址,从那里继续执行。注意存储在跳转指令中的实际值是相对当前PC值的一个偏移量,而不是一个绝对地址,它的值由汇编器来 计算(参考寻址方式中的相对寻址)。它是 24 位有符号数,左移两位后有符号扩展为 32 位,表示的有效偏移为 26 位(前后32MB的地址空间)。以下指令: B Label ;程序无条件跳转到标号Label处执行 CMP R1,#0 ;当CPSR寄存器中的Z原创 2011-05-16 13:36:00 · 5500 阅读 · 0 评论 -
μCOS-II系统之事件(event)的使用规则及Semaphore实例
在实时多任务系统中,信号量被广泛用于:任务间对共享资源的互斥、任务和中断服务程序之间的同步、任务之间的同步。原创 2014-05-31 10:30:09 · 2761 阅读 · 0 评论 -
μCOS-II系统之事件(event)的使用规则及Semaphore的互斥量用法
在实时多任务系统中,信号量被广泛用于:任务间对共享资源的互斥、任务和中断服务程序之间的同步、任务之间的同步。原创 2014-05-31 10:45:28 · 2190 阅读 · 0 评论 -
μCOS-II系统之时间管理函数OSTimeGet()
<br />在μCOS-II系统中,无论时钟节拍何时发生,μC/OS-Ⅱ都会将一个32位的计数器加1,这个计数器在用户调用OSStart()初始化多任务和4,294,967,295个节拍执行完一遍的时候从0开始计数。<br /><br /> <br />用户可以通过调用OSTimeGet()来获得该计数器的当前值,OSTimeGet()的详细信息见下表。<br /><br /><br />上图说明了如何通过OSTimeGet()函数得到当前的系统时钟节拍:ticks = OSTimeGet();来实现。<b原创 2011-03-15 23:18:00 · 8508 阅读 · 0 评论 -
μCOS-II系统之时间管理函数OSTimeDlyResume()
<br /> <br />μC/OS-Ⅱ允许用户结束正处于延时期的任务,延时的任务可以不等待延时期满,而是通过取消其它任务的延时来使自己处于就绪态,可以通过调用OSTimeDlyResume()和指定要恢复的任务的优先级来完成。<br /><br />OSTimeDlyResume()的具体信息见下表:<br /><br /> <br />为了说明OSTimeDlyResume()函数的使用方法,我们设计一个系统,假设TaskLED的任务优先级为2。让一个LED以0.5Hz的频率闪耀,但每按键一次,LED状原创 2011-03-15 23:09:00 · 5259 阅读 · 1 评论 -
μCOS-II系统之时间管理函数OSTimeDly()
μC/OS-II提供了若干个时间管理服务函数,可以满足任务在运行过程中对时间管理的需求。在使用时间管理服务函数时,必须十分清楚一个事实:时间管理服务函数是以系统节拍为处理单位的,实际的时间与希望的时间是有误差的,最坏的情况下误差接近一个系统节拍。因此时间管理服务函数只能用在对时间精度要求不高的场合,或者时间间隔较长的场合。下面来分析系统延时函数OSTimeDly()调用图解:如上图所示:形象的说明了OSTimeDly()工作方式。下面通过一个实例来说明下:我们设计一个任务,让一个LED以50个时钟节拍为单位原创 2011-03-15 22:48:00 · 7164 阅读 · 2 评论 -
μCOS-II系统之时间管理函数OSTimeDlyHMSM()
<br />上次学习了OSTimeDly()函数,了解了OSTimeDly()基本应用。。同时μCOS-II还提供了另一个系统延时函数OSTimeDlyHMSM()函数。下面来说说这个函数的基本应用。这个函数是以小时(H)、分(M)、秒(S)和毫秒(m)四个参数来定义延时时间的,函数在内部把这些参数转换为时钟节拍,再通过单次或多次调用OSTimeDly()进行延时和任务调度,所以延时原理和调用延时函数OSTimeDly()是一样的。OSTimeDlyHMSM()详细见下表。<br /><br /><br /原创 2011-03-15 22:57:00 · 23066 阅读 · 1 评论 -
MRS,MSR指令详解
在ARM处理器中,只有MRS(Move to Register from State register)指令可以对状态寄存器CPSR和SPSR进行读操作。通过读CPSR可以获得当前处理器的工作状态。读SPSR寄存器可以获得进入异常前的处理器状态(因为只有异常模式下有SPSR寄存器原创 2011-08-31 21:51:23 · 37650 阅读 · 2 评论 -
ARM Cortex-M3,Cortex-M0,Cortex-A8的主要区别
<br /><br />ARM Cortex™-M 处理器系列是一系列可向上兼容的高能效、易于使用的处理器,这些处理器旨在帮助开发人员满足将来的嵌入式应用的需要。这些需要包括以更低的成本提供更多功能、不断增加连接、改善代码重用和提高能效。 Cortex-M 系列针对成本和功耗敏感的 MCU 和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。<br />为什么选择 Cortex-M <br />行业标准: ARM Cortex-M 处理器转载 2011-05-18 13:07:00 · 20353 阅读 · 0 评论 -
Cortex-M3中断概述及地址分配
<br />ARM体系结构支持以下操作模式: <br />用户 模式: 在执行完CPU启动代码文件Startup.s后正常的程序执行状态。 <br />系统 模式: 运行一些操作系统核。 <br />IRQ (中断) 模式: 通用的中断处理模式。 <br />FIQ (快速中断) 模式: 快速中断,处理一些特殊的中断源。 <br />管理 模式: 进入保护状态的执行;通常在复位或使用SWI指令时进入此模式。 <br />异常 模式: 在数据或指令预取失败时进入此模式。 <br />未定义 模式: 当执行一个转载 2011-05-17 14:01:00 · 2990 阅读 · 0 评论 -
μCOS-II系统之事件(event)的使用规则及MUTEX实例
简单介绍下uCOS-II系统中的事件(Event)的一般使用规则。事件管理函数是μC/OS-II中最多的系统函数, 在μC/OS-II中总共有34个,而且每种事件具有的管理函数数目不同。但是所有的事件都有类似的6个函数,它们是所有事件的基本功能,其函数名类似,使用方法也类似原创 2014-05-31 09:58:21 · 11268 阅读 · 0 评论