自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 将LibMTL应用于自定义模型

LibMTL 是一个基于 PyTorch 构建的用于多任务学习的开源库。

2024-03-13 21:59:57 388

原创 ROCKET-MiniROCKET-MultiROCKET代码解析

将卷积核权重限制在两个值(-1,2),偏置值是从卷积输出中提取的,对于一个随机选择的训练样本,给定一个卷积核,计算其输出 ,然后取[0.25, 0.5, 0.75]分位数作为偏置的可选值;基本和MiniRocket差不多,就是再多加了正值均值 (MPV)、正值位置均值 (MIPV) 和最长正值延伸 (LSPV)这几个特征值的计算以及差分数据的特征值计算。使用随机卷积核作为时间序列特征提取方法,使用随机卷积核长度、dilation、padding,随机初始化,不需要学习权重;计算一个卷积核输出的特征值。

2024-01-11 17:20:01 1192

原创 极限学习机

极限学习机(ELM, Extreme Learning Machines)是一种,ELM来调整权重,而是通过 Moore-Penrose generalized inverse来设置权值。标准的单隐藏层神经网络结构如下:单隐藏层神经网络 | ELM网络极限学习机就是没有反向传播的简单神经网络,反向传播部分使用矩阵逆运算计算权重。

2023-11-22 16:50:28 205

原创 FreeRTOS任务切换

SVC 用于产生系统函数的调用请求。例如,操作系统不让用户程序直接访问硬件,而是通过提供一些系统服务函数,用户程序使用 SVC 发出对系统服务函数的呼叫请求,以这种方法调用它们来间接访问硬件。因此,当用户程序想要控制特定的硬件时,它就会产生一个 SVC 异常,然后操作系统提供的 SVC 异常服务例程得到执行,它再调用相关的操作系统函数,后者完成用户程序请求的服务。。(若因优先级不比当前正处理的高, 或是其它原因使之无法立即响应, 将上访成硬 fault)

2023-06-03 21:19:07 897

原创 FreeRTOS调度器开启和任务相关函数详解

内核相关硬件初始化函数启动第一个任务SVC中断服务函数FreeRTOS高级篇4—FreeRTOS任务切换分析空闲任务就是空闲的适合运行的任务。任务调度器启动后必须有一个任务运行。空闲任务的任务优先级是最小的,为0.任务函数为prvIdleTask()。

2023-05-30 21:18:56 188

原创 Free RTOS列表和列表项

列表有点像链表,列表项有点像里面的结点。

2023-05-29 20:44:26 123

原创 FreeRTOS任务相关API函数

创建任务。RAM。

2023-05-25 21:34:30 635

原创 FreeRTOS任务基础知识

对于单任务系统,每个任务的优先级都是相同的。多任务将一个大问题分成小问题,每个小任务完成的时间很短,看起来像同时完成,多任务系统通过任务调度器来安排任务优先顺序。FreeROTS根据是一个抢占式的实时多任务系统。高优先级的任务可以打断低优先级任务的运行从而获得CPU的使用权,高优先级的任务执行完成以后重新把CPU的使用权归还给低优先级。

2023-05-25 20:19:22 786

原创 FreeRTOS中断配置和临界值

Cortex-M3允许具有较少中断源时,因此STM32把指定中断优先级的寄存器位减少到4位。抢占优先级的级别高于响应优先级。而数值越小所代表的优先级就越高。高的抢占式优先级优先级,故名抢占;而在抢占式优先级相同的情况下,响应优先级越高,同时发生则先响应它,但是,响应表达的是响应速度。这4个寄存器位的分组方式如下:第0组:所有4位用于指定响应优先级第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级。

2023-05-24 20:09:55 526

原创 FreeRTOS移植

基础工程越简单越好,这里直接用之前的跑马灯工程作为基础工程。

2023-05-22 21:09:15 514

原创 FreeRTOS介绍及源码下载

FreeRTOS就是一个免费的实时操作系统,具有操作系统的能力,多任务同时运行。

2023-05-22 19:57:10 465

原创 第七章 中断

8259A是中断代理,当有多个中断同时发生时,由它负责对所有中断仲裁,决定哪个中断优先被CPU受理。Intel处理器共支持256个中断,但8259A只可以管理8个中断。为了多支持一些设备,可以将多个8259A组合(级联)。最多可级联9个,也就是最多支持64个中断。n片8259A通过级联可支持7n+1个中断源。为了让所有设备之间的通信井然有序,各通信设备间必须有统一的节奏,不能各干各的,这个节奏就称为定时或时钟。是一种使设备间相互配合而避免发生冲突的节拍。内部时钟:指处理处理器内部元件。

2023-05-19 20:23:55 959

原创 中断处理程序

在interrupt.c。在interrupt.c。

2023-05-18 20:38:35 258

原创 TFTLCD显示实验

实验内容通过 STM32 的 FSMC 接口来控制 TFTLCD 的显示。TFTLCD简介TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。常见指令

2023-05-17 16:39:06 1450

原创 OLED显示实验

OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。LCD 都需要背光,而OLED 不需要,因为它是自发光的。这样同样的显示,OLED 效果要来得好一些。

2023-05-11 20:24:03 575

原创 电容触摸按键实验

这里我们使用的是检测电容充放电时间的方法来判断是否有触摸,图中R 是外接的电容充电电阻,Cs 是没有触摸按下时TPAD 与PCB 之间的杂散电容。而Cx 则是有手指按下的时候,手指与 TPAD 之间形成的电容。图中的开关是电容放电开关(由实际使用时,由 STM32 的 IO代替)。先用开关将 Cs(或 Cs+Cx)上的电放尽,然后断开开关,让 R 给 Cs(或 Cs+Cx)充电,当没有手指触摸的时候,Cs 的充电曲线如图中的A 曲线。

2023-05-10 20:31:24 194

原创 输入捕获实验

输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的定时器,除了TIM6 和TIM7,其他定时器都有输入捕获功能。STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。同时还可以配置捕获时是否触发中断/DMA 等。

2023-04-25 20:55:40 598

原创 第六章 完善内核

参数的传递方式:使用后栈来保存。每个进程都有自己的栈,这就是每个内存自己的专用内存空间;保存参数的内存地址不用再花精力维护,已经有栈机制来维护地址变化了,参数在栈中的位置可以通过栈顶的偏移量来得到。C语言 由调用者压入栈,由调用者清理栈空间,函数参数是从右到左的顺序入栈。内联汇编:在C语言中直接嵌入汇编语言,内联汇编所用的汇编语言其语法是AT&T。AT&T是汇编语言的一种语法风格、格式。AT&T的内存寻址:机器模式用来在机器层面上指定数据的大小及格式。

2023-04-24 19:46:37 357

原创 PWM输出实验

脉冲宽度调制(PWM),简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种有效方法。脉冲波:脉冲周期(T),单位是时间,比如纳秒(ns)、微妙(μs)、毫秒(ms)等;脉冲频率(f),单位是赫兹(Hz)、千赫兹(kHz)等,与脉冲周期成倒数关系,f=1/T;脉冲宽度(W),简称“脉宽”,是脉冲高电平持续的时间。单位是时间,比如纳秒(ns)、微妙(μs)、毫秒(ms)等;占空比(D),脉宽除以脉冲周期的值,百分数表示,比如50%。也常有小数或分数表示的,比如0.5或1/2。

2023-04-21 20:27:00 757

原创 定时器中断实验

定时器可以认为是一个计数器;给定计数器一个初值,每当计数一次,就会走过一个固定的时间,当达到我们给定的初值时,该定时器就完成了自己的使命,产生定时器中断,执行中断函数中的程序命令。STM32F4_定时器精讲(TIM)STM32F1 的通用定时器是一个通过可编程预分频器(PSC)驱动的 16 位自动装载计数器(CNT)构成。STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)等。

2023-04-19 20:32:26 453

原创 实现字符打印(实验)

【代码】实现字符打印(实验)

2023-04-18 20:24:05 121

原创 窗口看门狗(WWDG)实验

窗口看门狗(WWDG )通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位( WWDG -->CR 的第六位)变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。在递减计数器达到窗口配置 寄存器 (WWDG -->CFR)数值之前,如果 7 位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个 MCU 复位。

2023-04-14 20:33:24 365

原创 独立看门狗(IWDG)实验

单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环, 看门狗电路就是为了避免这种情况的发生。IWDG(Independent watchdog)独立看门狗,可以用来检测并解决由于软件错误导致的故障,当计数器到达给定的超时值时,会触发一个中断或产生系统复位。独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。

2023-04-12 21:08:30 678

原创 第五章 保护模式进阶,向内核迈进

汇编语言和机器指令几乎是一对一的,即一名汇编代码只对应一句具体的机器码,不会有更多对应的选择,所以可以认为汇编指令就是机器指令。C语言的编译过程是先将C语言代码转换成汇编代码,然后再将汇编代码转换成机器指令。所以用C语言写出来的程序,最终可以转换成对应的一句或多句汇编指令。生成C语言程序的过程:先将源程序编译成目标文件,再将目标文件链接成二进制可执行文件。经过gcc编译后的目标文件是待重定位文件,文件中的符号还没有安排地址,需要等和其他文件一起“组成”可执行文件时再重新定位。

2023-04-12 19:04:01 431

原创 将内核载入内存(实验)

将内核从磁盘载入内存,并将其匹配到虚拟地址中,然后再通过入口地址跳转到内核中。

2023-04-10 20:44:13 155

原创 外部中断实验

STM32 的每个 IO 都可以作为外部中断的中断输入口。STM32F103 的中断控制器支持 19 个外部中断事件请求。每个中断设有状态位,每个中断事件都有独立的触发和屏蔽设置。STM32F103 的19 个外部中断为:线0~15 :对应外部 IO 口的输入中断。线16 :连接到 PVD 输出。线17 :连接到 RTC 闹钟事件。线18 :连接到 USB 唤醒事件。GPIO 的管教 GPIOx.0~GPIOx.15(x=A,B,C,D,E F,G 分别对应中断线 0 ~ 15。

2023-04-06 15:46:53 783

原创 启用分页机制(实验)

在分页后,GDT的基址会变成3GB以上的虚拟地址,显存基址也变成3GB以上的虚拟地址。GDT的段基址变成了0x0000900,显存段描述符段基址变成了0xc00b800。注意这里count=3。查看虚拟地址映射情况。

2023-04-04 21:36:02 78

原创 串口通信实验

利用串口1不停的打印信息到电脑上,同时接收从串口发过来的数据,把发送过来的数据直接送回给电脑。在这里,。

2023-04-04 16:44:37 74

原创 按键输入实验

使用按键控制LED。通过 ALIENTEK 精英 STM32F103 上载有的 3 个按钮 KEY_UP 、 KEY0和 KEY1 )),来控制板上的 2 个 LED (DS0 和 DS1 )。KEY0控制DS0, KEY1 控制 DS1 ,按一次亮,再按一次灭 KEY0 则同时控制 DS0 和 DS1按一次,他们的状态就翻转一次。KEY0 连接在 PE4 上、 KEY1 连 接在 PE3 上 、 KEY_UP 连接在 PA0 上。

2023-04-02 10:15:18 221

原创 蜂鸣器实验

这里采用的是有源蜂鸣器,有源蜂鸣器自带了振荡电路,一通电就会发声;无源蜂鸣器则没有自带震荡电路,必须外部提供 2~5Khz 左右的方波驱动,才能发声。STM32的单个 IO 最大可以提供 25mA 电流(来自数据手册),而蜂鸣器的驱动电流是 30mA 左右,两者十分相近。但是全盘考虑, STM32 整个芯片的电流,最大也就150mA ,如果用 IO 口直接驱动蜂鸣器,其他地方用电就得省着点了。所以,我们不用 STM32 的 IO 直接驱动蜂鸣器,而是。

2023-03-24 19:58:36 269

原创 内存容量检测(实验)

total_mem_bytes记录内存容量,而total_mem_bytes的地址是0xb00,xp用来查看物理内存。0x02000000换算成十进制刚好是32MB。输入命令xp 0xb00+回车,显示结果。

2023-03-24 19:22:26 212

原创 构造字典树

字典树,顾名思义,是关于“字典”的一棵树。即:它是对于字典的一种存储方式(所以是一种数据结构而不是算法)。这个词典中的每个“单词”就是从根节点出发一直到某一个目标节点的路径,路径中每条边的字母连起来就是一个单词。每个小⚪都是一个节点node(参考链表),node中包含指向的下一个节点Nextnode,以及是否是单词的结尾flag。(标橙色的节点是“目标节点“,即根节点到这个目标节点的路径上的所有字母构成了一个单词。

2023-03-24 10:52:21 96

原创 跑马灯实验(库函数版)

【代码】跑马灯实验(库函数版)

2023-03-23 20:58:11 102

原创 第四章 保护模式入门

在实模式下,用户可以访问底层,用户程序乃至操作系统的数据都可以被随意地删改。存在数据安全的问题。访问内存过小且麻烦,内存不够用,资源也不够用。在保护模式下,物理内存地址不能直接被程序访问,程序内部的地址(虚拟地址)需要被转化为物理地址后再去访问。指令执行单元EU是执行指令的唯一部件,一次只能执行一个指令,单核CPU的情况下,只有一个指令处于执行中。CPU中的各部分也是同时只能做一件事,不过在并行工作,各司其职。CPU的指令执行过程分为取指令、译码、执行三个步骤。

2023-03-23 19:26:25 746

原创 STM32开发基础知识入门

define 标识符 字符串。

2023-03-22 21:07:06 2428

原创 进入保护模式(实现)

主要新增段描述符的属性及选择子,都是以宏的方式实现。这个文件就是用来定义各种寄存器里的值的,立即数。

2023-03-22 19:10:19 152

原创 STM32硬件介绍

它拥有的资源包括: 64KB SRAM 、 512KB FLASH 、 2 个基本定时器、 4 个通用定时器、 2 个高 级 定时器、 2 个 DMA 控制器(共 12 个通道) 、 3 个 SPI 、2 个 IIC 、 5 个串口、 1 个 USB 、 1 个 CAN 、 3 个 12 位 ADC 、 1 个 12 位 DAC 、 1 个 SDIO 接口、1 个 FSMC 接口以及 112 个通用 IO 口。

2023-03-21 15:10:10 361

原创 从头开始完成一个STM32例程

上电前,设置BOOT0=1,BOOT1=0。或者是在上电后,设置BOOT0=1,BOOT1=0之后,然后按一下复位按键。确保启动模式已经设置为串口下载模式,BOOT1=0,BOOT0=1,即S1=ON,S2=OFF,然后把开发板连接电脑上电,打开软件,选择PORT菜单下对应的COM口。编译通过后,在左侧的.C文件上会出现一个“+”号,点开就是该C文件使用到的h文件。设置好之后直接点load就可以写入,但是需要插上电源才可以显示程序的效果。之后可以右键点击左侧的资源管理器,管理一下项目目录,比如自定义名字。

2023-03-16 17:57:59 2622

原创 第三章的问题

重新使用之前的MBR 文件,重新读取512字节,然后再导入新的MBR 文件,同时更改了 boot.inc位置,包含此文件的文件夹应该和MBR 文件处于同一个文件夹中。在引入LOADER文件后输出结果仍然同上次所示,没有2LOADER 的显示,也就是说读取磁盘失败。Ctrl+c可以进行下一步指令的输入,输入q 可以正常退出不锁定虚拟硬盘。在导入新的MBR 文件后读取的字节只有98个字节。主要是因为没有正常退出,每次退出都是通过关闭终端强行退出。重新创建虚拟硬盘–无效。

2023-03-16 15:48:21 246

原创 第三章 完善MBR

地址只是数字,描述各种符号在源程序中的位置,它是源代码文件中各符号偏移文件开头的距离。编译器的工作就是给各符号编址。编译器根据所在硬件平台的特性,将源代码中的每一个符号(指令和数据)都按照本硬件平台的特性分配空间,在不考虑对齐的情况下,这些符号在空间上都彼此相邻,连续分布它们在程序中距第一个符号的距离便是它们在程序中的地址。偏移量的本质就是地址,每个变量的地址是前一个变量的地址+前一个变量的内存空间大小。代码编译之后,源代码中的标号会被替换为实际地址。

2023-03-15 21:23:39 481

基于51单片机的LCD1602数据显示.rar

利用ACD0808对信号进行模数数模转换,使数值在LCD1602显示,资料包括proteus仿真电路以及keil源代码

2020-05-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除