中断优先级

stm32学习之路定时器的使用

流过昼夜 提交于 2020-02-16 13:08:13
上次讲了滴答定时器,这个我们来说下stm32 的其他定时器,分别有三种, 基本定时器,通用定时器和 高级定时器,在STM32F1 的定时器中分别由2 个基本定时器(TIM6、 TIM7) 、 4 个通用定时器(TIM2-TIM5) 和 2 个高级定时器(TIM1、 TIM8) 组成(这些资料也有),这接进入主题吧,这次我们讲的是stm32 的通用定时器(从简单的入门). 通用定时器包含一个 16 位自动重载计数器(CNT) ,就是可以计数2^16次,还有其计数的频率可以由分频系数 PSC 来控制,PSC的取值范围为1~65535,定时器的能实现什么功能就不说了,也找的到,这次通过定时器来控制led亮和灭。 开始之前我们要添加stm32f10x_tim.c 库文件,定时器器的所需要的配置函数都在这个库里面。 在stm中很多操作都是要先时钟使能,以通用定时器TIM3为例子,首先是通用定时器是挂载在APB1总线上,所以可以使用 APB1 总线时钟使能函数来使能 TIM3, 调用的库函数如下: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能 TIM3钟 其次就是初始化时钟(配置时钟)调用的函数是 void TIM_TimeBaseInit(TIM_TypeDef *TIMx,TIM_TimeBaseInitTypeDef *

FreeRTOS——临界段保护

不问归期 提交于 2020-02-15 12:50:04
一、什么是临界段 临界段就是一段在执行的时候不能被打断的代码。在FreeRTOS中,临界段最常出现的就是对全局变量的操作。那么在什么情况下临界段可以被打断?一个是系统调度,另一个是外部中断。但是在FreeRTOS中,系统调度最终也是产生PendSV中断,在PendSV Handler里面实现任务的切换,所以还是归结为中断。 因此,FreeRTOS对临界段的保护最终还是回到了对中断开、关的控制。 二、Cortex-M内核快速关中断指令 为了快速地开关中断, Cortex-M 内核专门设置了一条 CPS 指令: CPSID I ; PRIMASK = 1 ; 关中断 CPSIE I ; PRIMASK = 0 ; 开中断 CPSID F ; FAULTMASK = 1 ; 关异常 CPSIE F ; FAULTMASK = 0 ; 开异常 Cortex-M内核中断屏蔽寄存器组描述: 名字 功能描述 PRIMASK 只有单一比特的寄存器。被置1:关掉所有可屏蔽异常,只剩下NMI和硬FAULT可以响应。被置0:没有关中断 FAULTMASK 只有一个比特的寄存器。被置1:只有NMI能响应,所与其它异常(包括FAULT)统统闭嘴。被置0:没有关异常 BASEPRI 这个寄存器最多9位(由表达优先级的位数决定)。它定义了被屏蔽优先级的阈值。当他被设成某个值后,所有优先级号大于此值的中断都被关

RT-thread内核之系统时钟

让人想犯罪 __ 提交于 2020-02-12 22:12:00
一、系统时钟 rt-thread的系统时钟模块采用全局变量rt_tick作为系统时钟节拍,该变量在系统时钟中断函数中不断加1。而系统时钟中断源和中断间隔一般由MCU硬件定时器(如stm32的嘀嗒定时器)决定,rt_tick初始值为0,每次MCU产生硬件定时中断后,在中断函数中不断加1,即rt_tick变量值与MCU硬件定时器定时中断间隔的乘积为系统真正运行时间(例如rt_tick=10,stm32嘀嗒定时器每隔1ms产生中断,则系统上电运行时间为10ms)。 在bsp/stm32f40x/drivers/board.c中设置MCU硬件定时器定时间隔,以及执行相应定时器中断函数: void SysTick_Configuration(void) { RCC_ClocksTypeDef rcc_clocks; rt_uint32_t cnts; RCC_GetClocksFreq(&rcc_clocks);//获得系统的晶振频率 //RT_TICK_PER_SECOND在rtconfig.h中配置,表示每秒包含的系统时钟节拍数。默认配置为100,则嘀嗒定时器中断间隔为10ms,rt_tick每隔10ms加1,即默认情况下1s内包含100个系统时钟节拍,每个时钟节拍tick表示10ms。为了提高 精度,一般修改宏定义为1000,即1s内包含1000个系统时钟节拍

Linux驱动面试题

时间秒杀一切 提交于 2020-02-05 01:14:24
Linux驱动面试题 1、 Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备。 字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少实现open,close,read和write系统调用。字符终端、串口、鼠标、键盘、摄像头、声卡和显卡等就是典型的字符设备。 块设备:和字符设备类似,块设备也是通过/dev目录下的文件系统节点来访问。块设备上能够容纳文件系统,如:u盘,SD卡,磁盘等。 字符设备和块设备的区别仅仅在于内核内部管理数据的方式,也就是内核及驱动程序之间的软件接口,而这些不同对用户来讲是透明的。在内核中,和字符驱动程序相比,块驱动程序具有完全不同的接口。 2、查看驱动模块中打印信息应该使用什么命令?如何查看内核中已有的字符设备的信息?如何查看正在使用的有哪些中断号? 查看驱动模块中打印信息的命令:dmesg 查看字符设备信息可以用lsmod 和modprobe,lsmod可以查看模块的依赖关系,modprobe在加载模块时会加载其他依赖的模块。 显示当前使用的中断号cat /proc/interrupt 3、Linux中引入模块机制有什么好处? 首先,模块是预先注册自己以便服务于将来的某个请求,然后他的初始化函数就立即结束。换句话说

关于单片机中断

给你一囗甜甜゛ 提交于 2020-02-02 03:57:43
中断 :CPU停止当前任务,去处理中断内容,处理完后自动恢复以前任务。   单片机有5个中断源,2个中断优先级,中断受两级控制:     1、CPU开总中断;     2、中断源开中断。 中断源 :引起中断事件的类型。    5个中断源:     1、外部中断请求0,由INT0(P3.2)输入;     2、外部中断请求1,由INT1(P3.3)输入;     3、片内定时器/计数器0溢出中断请求;     4、片内定时器/计数器1溢出中断请求;     5、片内串行口发送/接收中断请求。//很重要,单片机应用中用了很多        定时器/计数器控制寄存器(Timer/counter Control Register ): 用来查看是否产生了外部中断             IT0,IT1(Interrupt Type):外部中断0、1触发方式选择位,由软件设置。         0-->下降沿触发方式,INT0/INT1引脚上从高到低的复跳变可引起中断;         1-->电平触发方式,INT0/INT1引脚上低电平可引起中断。       IE0,IE1(Interrupt Edge):外部中断0、1请求标志位。         当外部中断0、1依据触发方式满足条件产生中断请求时,由硬件置位(IE0/IE1=1);         当CPU响应中断时,由硬件清楚

信号和中断的比较 + 中断和异常的比较

巧了我就是萌 提交于 2020-01-28 11:56:02
概念太多了,信号,软中断,中断等等。试着做总结。 下面这个里面主要讲了硬件中断: http://www.cnblogs.com/charlesblc/p/6261741.html 下面这个里面主要讲了软中断,硬中断: http://www.cnblogs.com/charlesblc/p/6263208.html 这里先比较一下异常和中断 参考 http://blog.csdn.net/dodo_check/article/details/8806961 l 中 断(也称硬件中断) 定义:中断是由 其他硬件设备 依照CPU时钟周期信号随机产生的。 分类: 可屏蔽中断 非可屏蔽中断 来源: 间隔定时器和I/O l 异 常(也称软件中断) 定义:当指令执行时 由CPU控制单元 产生的。 分类: 处理器探测到的异常 ² 故障 ² 陷阱 ² 异常终止 编程异常(也称软中断) ² int指令 来源: 程序的错误产生的 内核必须处理的异常(例如:缺页和内核服务的请求-int) 异常处理 l 当发生异常时,CPU控制单元产生一个硬件出错码。 l CPU根据该中断吗找到中断向量表内的对应向量,根据该向量转到中断处理程序。 l 中断处理程序处理完之后向当前进程发送一个SIG***信号。 l 若进程定义了相应的信号处理程序则转移到相应的程序执行,若没有,则执行内核定义的操作。 中断处理 l

接口知识点总结

浪尽此生 提交于 2020-01-22 03:20:19
数据传送三种方式:查询、中断和DMA AD主要技术指标:分辨率、转换时间、量程、绝对精度、相对精度、线性度 接口概念 微机接口就是微处理器CPU与“外部世界”的连接电路,是CPU与外界进行信息交换的中转站。其中外部世界指除CPU本身以外的所有设备或电流,包括存储器、I/O设备、控制设备、测量设备、通信设备、多媒体设备、A/D与D/A转换器等。 比如源程序或原始数据要通过接口从输入设备送进去,运算结果要通过接口向输出设备送出来;控制命令通过接口发出去,现场状态通过接口取进来,这些来往信息都要通过接口进行变换与中转。 结合芯片:中断控制器8259A、可编程并行接口8255A、可编程定时/计数器8253、可编程串行接口8251A(考) 接口的功能(考) (1)对外部设备的寻址功能 (2)信号转换功能 (3)数据缓冲功能 (4)联络功能 CPU <- - ->外设 (5)中断管理功能 (6)可编程功能 微机系统的性能指标 (1) CPU性能指标:字长、运算速度 总线宽度与字长;主频、MIPS与运算速度; 字长是CPU中运算器一次能处理的最大数据位数。 主频表示在CPU内数字脉冲信号振荡的速度。 (2) 存储器性能指标 速度、容量、位价->层次结构 (3) I/O性能指标由设备决定 显示器:分辨率、颜色深度、刷新; 声卡:采样率、采样精度 I/O端口编址方式(考) (1)统一编址 (2

计算机组成原理复习题目

微笑、不失礼 提交于 2020-01-22 02:10:21
计算机组成原理期末复习题 世界第一台通用电子计算机ENIAC,1946 第一台存储程序式计算机-EDSAC,1949 数据校验码主要有奇偶校验码、海明校验码和循环冗余校验码 磁表面存储器记录信息是利用磁性材料的磁滞回归线特性( 计算机的字长取决于运算器一次运算二进制数的位数 模m交叉存储器有m个存储模块,它们有各自的地址寄存器和数据缓冲寄存器 使用虚拟存储器时,由操作系统完成地址转换 若显示器灰度级为32,则每像素应用5位表示 RAM芯片位扩展可以增加存储器字长 输入输出指令的功能是CPU与外设的数据传送 假设校验位的个数为r,k=2r-1-r个信息能用于纠正被传送数据的位数,需满足:2r≥k+r+1 某计算机字长是16位,它的存储容量是1MB,按字编址,它的寻址范围是0-219-1 操作数在寄存器中的寻址方式称为寄存器寻址;操作数在指令中的寻址方式称为立即寻址,相对寻址中,指令地址码给出一个偏移量(带符号数),基准地址隐含由PC给出。 操作码的编码有两种方式:定长操作码法,扩展操作码编法 串行传输时数据位的低位在前,高位在后。 DMA控制器与CPU分时使用内存常采用以下三种方法:停止CPU访内,周期挪用和交替访问。 流水线中的主要相关问题指资源相关、数据相关和控制相关。 双端口存储器中一个存储器具有两组相互独立的读写控制电路,可进行并行的独立操作。

计算机组成与结构复习整理(六)

旧时模样 提交于 2020-01-18 04:00:34
存储系统 总线 特性 分类 总线的数据传输方式 总线设计时要考虑的基本要素 总线裁决 ==集中式裁决方式== 分布式裁决方式 总线结构 输入/输出设备 分类 打印机种类 输入/输出组织 基础知识 程序中断方式 中断分类 中断系统的基本功能 中断过程 例题 DMA(直接存储器存取方式) 总线 部件之间有两种互连方式,分散连接,各部件之间通过单独的连线互连。总线连接:各个部件连接到一组公共信息传输线上。 特性 A. 物理特性 (连接类型、数量、接插件的几何尺寸和形状) B. 电气特性 (某串行接口规定低电平要低于-3V,表示逻辑“1”,高电平要高于+3V,表示逻辑“0”) C. 功能特性 (不同的控制线功能不同,如地址线用来传输地址信息,数据线用来传输数据信息) D. 时间特性 (每根线产生的信号之间的时序关系) 分类 A. 内部总线 :芯片内部连接各元件的总线。 B. 系统总线 :连接计算机系统内各功能部件。( 组成:一组数据线、一组控制线、一组地址线 ) C. 通信总线 :用于主机和I/O设备之间或计算机系统之间的通信。 总线的数据传输方式 串行传输 (又分为同步方式和异步方式)和 并行传输 。 总线设计时要考虑的基本要素 (1)信号线类型:专用信号线 / 复用信号线 (2)仲裁方法:集中式裁决 / 分布式裁决 (3)定时方式:同步协议方式 / 异步协议方式/半同步协议方式

心形灯的设计

允我心安 提交于 2020-01-13 07:50:35
设计一个心形灯,包含以下功能: 1、由32个LED灯组成心形流水灯,外接了4个按键,并且两个按键(开始和暂停)接在两个外部中断引脚上; 2、上电后心形灯先全亮5秒,后亮灭闪烁5秒,可以测试灯状态的好坏; 3、之后处于全灭等待状态,当按下开始按键后心形灯按照一定规律显示,规律自定义,创意越好分数越高; 4、当在任意状态下按下暂停键后心形灯停留在当前状态不再改变,再一次按下暂停键后则继续显示; 5、另外一个键为模式切换键,每按一次切换键则切换一次显示模式,切换键在灯运行状态和暂停状态均可切换; 6、第四个键为速度键,可以改变心形灯的亮灭切换速度,通过速度键可以切换不同的切换速度。 关键词: 心形流水灯,AT89C51,复位电路,时钟电路,电路仿真 绪论 一、随着现代科学技术的持续进步和发展以及人们生活水平的不断提高,以大规模、超大规模集成电路为首的电子工艺技术的使用也越来越广泛,结合单片机技术设计的电子电路也层出不穷。 LED彩灯由于其丰富的灯光色彩、低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。利用控制电路可使彩灯按一定的规律不断的改变状态,不仅可以获得良好的观赏效果,而且可以省电。 彩灯的运用已经遍布于人们的生活中,从歌舞厅到卡拉OK包房,从节日的祝贺到日常生活中的点缀,这些不仅说明了我们对生活的要求有了质的飞跃