Toriyung

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

11 2022 档案

freertos-刘火良:延时列表(链表)
摘要:前面几章的学习中,任务从创建后一直位于就绪列表中,延时、优先级等操作全部在就绪列表进行,这是不太方便的。根据任务的几个状态知,还需要一个延时列表,当任务进入延时状态时,则移出就绪列表进入延时列表。当有了延时列表后,前面的几个操作需要相应进行修改 1. 定义延时列表 就绪列表为一个带有多条链表的数组, 阅读全文

posted @ 2022-11-24 21:55 Toriyung 阅读(285) 评论(0) 推荐(0) 编辑

->使用报错情况(未完)
摘要:1. 当->和&或*等同时出现时如 /*伪代码*/ StructA pxListItem; //结构体数据类型A &pxListItem->xItemValue = xValue; 上面代码本意是为了将结构体pxListItem下的xItemValue属性赋值为xValue,但按上面写法会出现报错 阅读全文

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

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

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

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

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

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

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

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

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

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

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

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 阅读(508) 评论(0) 推荐(0) 编辑

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 阅读(343) 评论(0) 推荐(0) 编辑

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

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

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 阅读(26) 评论(0) 推荐(0) 编辑

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

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

MATLAB:quiver()函数
摘要:quiver()用来画矢量图,这里仅介绍常使用的quiver(x,y,u,v)语句 x,y表示起始点; u,v表示向量的相关信息: 向量的长度为sqrt(u^2+v^2);向量的夹角为arctan(v/u),注意是v/u x,y,u,v均可以用矩阵来表示多组矢量,下面给出例子 x = [1,1,3, 阅读全文

posted @ 2022-11-07 20:41 Toriyung 阅读(1994) 评论(0) 推荐(0) 编辑

MATLAB:列表操作(未完)
摘要:维度不变的列表合成 a = [1,2]; b = [3,4]; c = [a;b;5,6]; %通过直接在列表中用分号隔开直接插入 效果 切片:列表某列 如上面合成的列表c,要取出第2列所有行,使用 c(:,2) 效果 阅读全文

posted @ 2022-11-07 20:02 Toriyung 阅读(783) 评论(0) 推荐(0) 编辑

单连通域和多(复)连通域
摘要:单连通域定义: 一个连通域B内任意画一条闭合曲线,闭合域内一定属于连通域B 假如闭合域内存在区域不属于连通域B,则为多连通域。 大白话1: 连通域内不能有洞 大白话2: 一笔画能画完连通域 阅读全文

posted @ 2022-11-07 16:52 Toriyung 阅读(8313) 评论(0) 推荐(0) 编辑

freertos-刘火良:内核实现
摘要:定义习惯 变量 将变量类型缩写当作前缀,如无符号字符uc,字符指针pc,数据结构、任务句柄等用x 函数 返回值类型缩写当作前缀,如无返回v,私有函数加pri前缀 宏定义 宏定义大写,所在头文件名字缩写为前缀,小写。(信号量函数是宏定义,但命名按函数定义) 通用宏定义 链表实现 节点定义 根节点:根节 阅读全文

posted @ 2022-11-05 23:22 Toriyung 阅读(215) 评论(0) 推荐(0) 编辑

径向基函数神经网络(RBF)
摘要:RBF网络模拟了人脑中局部调整、相互覆盖接收域(或称感受野,ReceptiveField)的神经网络结构,已证明RBF网络能以任意精度逼近任意连续函数。RBF网络的学习过程与BP网络的学习过程类似,两者的主要区别在于各使用不同的激活函数。BP网络中隐含层使用的是S函数,其值在输入空间中无限大的范围内 阅读全文

posted @ 2022-11-05 11:01 Toriyung 阅读(977) 评论(0) 推荐(0) 编辑

MATLAB:传递函数tf的延时
摘要:使用参数:'ioDelay',如下代码 sys=tf(0.55,[46,8.5,1],'ioDelay',6); %延迟6s 阅读全文

posted @ 2022-11-05 08:39 Toriyung 阅读(641) 评论(0) 推荐(0) 编辑

MATLAB:方波信号square函数的使用
摘要:matlab中生成方波可以使用符号函数和正弦函数的复合函数,利用符号函数的正负性和正弦函数的周期性达到生成方波的效果。 也可以通过封装好的函数square()进行生成 t = 0:0.001:10; %时间序列 a = 0.2*pi; %周期参数 f = square(a*t,25); %生成方波, 阅读全文

posted @ 2022-11-04 16:24 Toriyung 阅读(2400) 评论(0) 推荐(0) 编辑

字节对齐问题
摘要:概念: CPU每一次读取数据是按照固定起始地址和字节长度读取的 比如32位(4字节)的CPU读取起始地址为0x0000,那么其读取数据地址顺序应该是0x0000~0x0003,然后0x0004~0x0007 当有个4字节数据存储在0x0002~0x0005上,即起始地址为0x0002,为了读取完整, 阅读全文

posted @ 2022-11-01 23:59 Toriyung 阅读(70) 评论(0) 推荐(0) 编辑

volatile
摘要:volatile意为易变 加在变量前,告诉编译器这是一个值可能会发生变化的变量,不要进行优化 优化做法是,由于编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在k中。而不是重新从i里面读 这就造成了如寄存器值之类发生变化但没有体现在代码上的情况下,仍取k中的值则会 阅读全文

posted @ 2022-11-01 22:02 Toriyung 阅读(28) 评论(0) 推荐(0) 编辑

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