zoukankan      html  css  js  c++  java
  • 【转】STM32

    程序跳转注意:

    1、如果跳转之前的程序A里有些中断没有关,在跳转之后程序B的中断触发,但程序B里没有定义中断响应函数,找不到地址会导致死机。

     2、程序跳转前关总中断,程序跳转后开总中断(关总中断,只是屏蔽了中断;当开总中断后,关总中断之前开的如定时器的中断还是开启的)

    开关总中断:

    在STM32/Cortex-M3中是通过改变CPU的当前优先级来允许或禁止中断

    PRIMASK位:只允许NMI和hard fault异常,其他中断/异常都被屏蔽(当前CPU优先级=0)。

    FAULTMASK位:只允许NMI,其他所有中断/异常都被屏蔽(当前CPU优先级=-1)。

    第一种方法:

    PRIMASK 用于除能在NMI 和硬fault 之外的所有异常,它有效地把当前优先级改为0(可编程优先级中的最高优先级)。

    void__disable_irq (void);//关闭总中断

    void __enable_irq (void);//开放总中断

    __set_PRIMASK(1);//关闭总中断

    __set_PRIMASK(0);//开放总中断

    第二种方法:

    FAULTMASK 更绝,它把当前优先级改为‐ 1 。这么一来,连硬fault 都被掩蔽了。使用方案与PRIMASK 的相似。但要注意的是,FAULTMASK 会在异常退出时自动清零。

    void __disable_fault_irq (void); //关闭总中断

    void __enable_fault_irq (void);//开放总中断

    __set_FAULTMASK(1);//关闭总中断

    __set_FAULTMASK(0);//开放总中断

    常常使用

    void __disable_irq (void);//关闭总中断

    void __enable_irq (void);//开放总中断

    来源

  • 相关阅读:
    html更改弹窗样式(原创,转载需声明)
    关于考研的反思
    Android之控件学习
    Android之LinearLayout布局下怎么让按钮固定在底部
    Android中控件属性详细总结(转载)
    毕业设计周记(第四篇)
    毕业设计周记(第三篇)
    毕业设计周记(第二篇)
    毕业设计周记(第一篇)
    Hadoop
  • 原文地址:https://www.cnblogs.com/skullboyer/p/9031825.html
Copyright © 2011-2022 走看看