Toriyung

导航

上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 24 下一页

2022年11月22日 #

优先级

摘要: rtos中,对任务的调度是按最高优先级的顺序进行的,所以需要对每个任务进行优先级的定义,而有了优先级之后,其他的代码:如结构体,创建任务,切换任务,阻塞延时等都需要相应修改 1. 任务TCB结构体:TCB结构体添加优先级属性成员 typedef struct tasTaskControlerBloc 阅读全文

posted @ 2022-11-22 12:51 Toriyung 阅读(120) 评论(0) 推荐(0) 编辑

2022年11月19日 #

空闲任务

摘要: freertos是通过调度任务实现实时任务的,而通过阻塞延时这一章(参考:https://www.cnblogs.com/toriyung/p/16905193.html),我们可以知道,当其他任务都进入阻塞时,空闲任务则执行。 空闲任务主要负责一些清理的工作,它不用我们手动创建,在调度器启动调度时 阅读全文

posted @ 2022-11-19 15:16 Toriyung 阅读(48) 评论(0) 推荐(0) 编辑

2022年11月18日 #

阻塞延时

摘要: 阻塞延时是当任务进入延时后,该任务的CPU使用权被剥夺进入阻塞状态(阻塞状态可以理解为保持状态不变,ps:惯性)。此时CPU可以进行其他任务的调度等,这样一来大大提升了CPU的使用效率。 而当所有任务都进入阻塞状态时,此时CPU就调度空闲任务执行。 阻塞延时 阻塞延时和普通CPU延时不同,普通CPU 阅读全文

posted @ 2022-11-18 23:55 Toriyung 阅读(298) 评论(0) 推荐(0) 编辑

2022年11月16日 #

中断控制寄存器的说明/临界区的进出

摘要: 中断控制寄存器 对中断的屏蔽与否,通过一下控制寄存器决定 简单来说就是PRIMASK只留了个NMI(不可屏蔽异常,一般是系统出错)和硬件异常;FAULTMASK只留了个硬件异常;而BASEPRI可以选择性屏蔽 临界区 其实就是中断的开关,而开关的中断就是通过对BASEPRI这个中断屏蔽寄存器赋值实现 阅读全文

posted @ 2022-11-16 21:48 Toriyung 阅读(377) 评论(0) 推荐(0) 编辑

内联函数inline

摘要: 先说自己的理解:内联函数就是函数形式的宏定义,在编译的时候进行替换 使用#define宏定义时,语句的规范并没有得到及时调试,有时候错在哪里都不知道,当宏定义的行数多了起来时,这种影响更加显著,所以采用函数形式的宏定义 内联函数,即进行了预编译的替换,节约资源,又有了调试的优点,规范了语句 用法:函 阅读全文

posted @ 2022-11-16 19:40 Toriyung 阅读(21) 评论(0) 推荐(0) 编辑

2022年11月14日 #

C语言多行宏定义问题

摘要: #define portYIELD() \ { \ /*启动PENDSV中断*/ \ portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; \ __dsb(portSY_FULL_READ_WRITE); \ __isb(portSY_FULL_READ_W 阅读全文

posted @ 2022-11-14 17:05 Toriyung 阅读(447) 评论(0) 推荐(0) 编辑

2022年11月12日 #

EXC_RETURN

摘要: 当任务启动或切换的SVC中断结束时,返回一个在r14的特殊值 EXC_RETURN,其决定返回后系统进入什么模式:1. 线程模式 or Handler模式 ;2. 出栈操作的SP指向哪个栈:PSP or MSP。 其对应关系由下图给出 由图知EXC_RETURN值为0xFFFF_FFFX,其中X的四 阅读全文

posted @ 2022-11-12 22:13 Toriyung 阅读(252) 评论(0) 推荐(0) 编辑

2022年11月9日 #

傅里叶变换(FT)/离散傅里叶变换(DFT)

摘要: 本文只讨论非周期情况 傅里叶变换 FT: 傅里叶变换是将时域信号拆解成频域上各个频率分量的过程,每个连续时刻的信号都对应着一个频域上各个频率分量,则一个完整的频谱为整个时域信号对各个频率分量的抽取积分(FT);反之一个完整的时域信号为整个频谱上对各个时刻分量的抽取积分(IFT) 图1 FT 图2 I 阅读全文

posted @ 2022-11-09 09:47 Toriyung 阅读(690) 评论(0) 推荐(0) 编辑

2022年11月8日 #

MATLAB:画图知识积累(未完)

摘要: 改变画布大小 有画布figure(1) 使用set()函数,分别四个边的位置 set(figure(1),'Position',[left, bottom, width, height]); 也可以最大化 set(figure(1),'Position',get(0,'screensize')); 阅读全文

posted @ 2022-11-08 20:52 Toriyung 阅读(25) 评论(0) 推荐(0) 编辑

MATLAB:改变数据结构内部属性值函数:set()

摘要: 最近在学“利用傅里叶级数画图”的程序 其原理是通过傅里叶级数展开的矢量叠加,同时进行动态更新。即在每一次for循环时进行矢量的更新,那么,如何进行更新呢? 这里就使用到了set()函数 set()函数是对输入数据结构和指定属性进行属性值更改,语法如下 set('数据结构','属性1','值','属性 阅读全文

posted @ 2022-11-08 20:45 Toriyung 阅读(241) 评论(0) 推荐(0) 编辑

上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 24 下一页