随笔分类 -  CORTEX

摘要:SBFX 和 UBFX有符号和无符号位域提取。将一个寄存器的相邻的位复制到另一个寄存器的最低有效位,并用符号或零扩展到 32 位。语法op{cond} Rd, Rn, #lsb, #width其中:op 是SBFX或UBFX。cond 是一个可选的条件代码(请参阅条件执行)。Rd 是目标寄存器。Rn 是源寄存器。lsb 是位域中的最低有效位的位编码,范围从 0 到 31。width 是位域宽度,范围从 1 到 (32-lsb)。不要将 r15 用作Rd或Rn。条件标记这些指令不更改任何标记。体系结构这些 ARM 指令可用于 ARMv6T2 及更高版本。这些 32 位 Thumb 指令可用... 阅读全文
posted @ 2013-05-12 10:04 IAmAProgrammer 编辑
摘要:#define SVC_0 0#define SVC_1 1#define SVC_2 2void SVC_Handler( void ){ asm("TST LR, #4"); asm("ITE EQ"); asm("MRSEQ R0, MSP"); asm("MRSNE R0, PSP"); asm("B SVC_Handler_main");}void Dummy0_Handler( unsigned int * svc_args ){ svc_args[6] += 4; // skip 阅读全文
posted @ 2013-05-01 01:00 IAmAProgrammer 编辑
摘要:http://www.coactionos.com/embedded-design/133-effective-use-of-arm-cortex-m3-svcall.htmlThe ARM Cortex-M3 service call (SVCall) can be a tricky feature to integrate in to your system software. It is useful for two things:Allowing a piece of code to execute without interruptionJumping to privileged m 阅读全文
posted @ 2013-04-30 23:05 IAmAProgrammer 编辑
摘要:http://blog.frankvh.com/2011/12/07/cortex-m3-m4-hard-fault-handler/If you’re seeing a Hard Fault exception on your Cortex M3 or Cortex M4 processor, t... 阅读全文
posted @ 2013-04-30 21:57 IAmAProgrammer 编辑
摘要:Mnemonic Brief description SeeB Branch B, BL, BX, and BLXBL Branch with Link B, BL, BX, and BLXBLX Branch indirect with Link B, BL, BX, and BLXBX Branch indirect B, BL, BX, and BLXCBNZ ... 阅读全文
posted @ 2013-04-06 10:08 IAmAProgrammer 编辑
摘要: 阅读全文
posted @ 2013-04-05 17:17 IAmAProgrammer 编辑
摘要:Cortex-M3是一个 32位处理器内核。内部的数据路径是 32位的,寄存器是 32位的,存储器接口也是 32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性, CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)。比较复杂的应用可能需要更多的存储系统功能,为此CM3提供一个可选的MPU,而且在需要的情况下也可以使用外部的 cache。另外在CM3中,Both小端模式和大端模式都是 阅读全文
posted @ 2013-04-05 15:54 IAmAProgrammer 编辑
摘要:Cortex-M3处理器支持两种处理器的操作模式,还支持两级特权操作。两种操作模式分别为:处理者模式和线程模式(thread mode)。引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码——包括中断服务例程的代码。两级特权操作分别为:特权级和用户级。这可以提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。处理器支持两种特权级,这也是一个基本的安全模型。主应用程序(线程模式),既可以使用特权级,也可以使用用户级;异常服务例程(处理者模式)必须在特权级下执行。通过引入特权级和用户级,就能够在硬件水平上限制某些不受信任的或者还没有调 阅读全文
posted @ 2013-04-05 15:44 IAmAProgrammer 编辑
摘要:PRIMASK, FAULTMASK 和BASEPRIPRIMASK 当它置1 时,就关掉所有可屏蔽的异常,只剩下NMI和硬fault 可以响应。它的缺省值是0,表示没有关中断。FAULTMASK当它置1 时,只有NMI 才能响应,所有其它的异常,包括中断和fault,通通闭嘴。它的缺省值也是0,表示没有关异常。BASEPRI最多有9 位(由表达优先级的位数决定)。它定义了被屏蔽优先级的阈值。当它被设成某个值后,所有优先级号大于等于此值的中断都被关(优先级号越大,优先级越低)。但若被设成0,则不关闭任何中断,0 也是缺省值。为了快速地开关中断,CM3 还专门设置了一条CPS 指令,有4 种用法 阅读全文
posted @ 2013-04-04 00:55 IAmAProgrammer 编辑
摘要:CM3内核有16个中断,优先级通过 SCB->SHP[0]to SCB->SHP[11] 设置/****** Cortex-M3 Processor Exceptions Numbers ***************************************************/ N... 阅读全文
posted @ 2013-04-03 22:30 IAmAProgrammer 编辑
摘要:1 ;CM3 在一定程度上支持 64 位整数。 2 ;其中 LDRD/STRD 就是为 64 位整数的数据传送而设的,语法 格式为: 3 4 LDRD.W RL, RH, [Rn, #+/-offset] {!} 5 STRD.W RL, RH, [Rn, #+/-offset] {!} 6 LDRD.W RL, RH, [Rn],#+/-offset 7 STRD.W RL, RH, [Rn],#+/-offset 8 9 LDR R2, =0x1000 ;(0x1000)= 0x1234_5678_ABCD_EF00 : 00 EF C... 阅读全文
posted @ 2012-09-10 10:18 IAmAProgrammer 编辑

点击右上角即可分享
微信分享提示