摘要:
1、总开关 每个CPU有一个中断总开关。通过CPU中断控制寄存器实现。Cortex-M的中断控制寄存器包括:FAULTMASK、PRIMASK、BASEPRI、BASEPRI_MAX。总开关的本质是变更当前执行优先级,根据Cortex-M的架构设计,只有优先级高于当前执行优先级的中断或异常才能抢占C 阅读全文
摘要:
一、简单说明: cleanup作为__attribute__属性中的一个可选属性值 其作用是当其声明的变量离开了其生命周期,那么 会自动调用你所指定的销毁函数 二、例子: 执行结果: current str : hello world! final str : hello world! 再通过 va 阅读全文
摘要:
使用内嵌汇编,要先编写汇编指令模板,然后将C语言表达式与指令的操作数相关联,并告诉GCC对这些操作有哪些限制条件。例如在下面的汇编语句: “movl %1,%0”是指令模板;“%0”和“%1”代表指令的操作数,称为占位符,内嵌汇编靠它们将C语言表达式与指令操作数相对应。 指令模板后面用小括号括起来的 阅读全文
摘要:
转自 1. Cortex-M3的异常/中断屏蔽寄存器组 注:只有在特权级下,才允许访问这3个寄存器。 名 字 功能描述 PRIMASK 只有单一比特的寄存器。置为1后,就关掉所有可屏蔽异常,只剩下NMI和硬Fault可以响应。默认值是0,表示没有关闭中断。 FAULTMASK 只有单一比特的寄存器。 阅读全文
摘要:
阅读全文
摘要:
配置 写入RTC_PRL, RTC_CNT, RTC_ALR寄存器时,需要先进入配置模式,通过把RTC_CRL寄存器的CNF位置一。 另外,在每次配置一个寄存器时必须等待上一次配置完成,可以通过检测RTC_CRL中的RTOFF位是否为1,需要等待到是1时才能进行下一步配置。 配置步骤: 阅读全文