- 博客(48)
- 收藏
- 关注
原创 【1】GD32 系统架构、内核、中断系统、存储器系统
这部分内容的学习,是作为一个整体来看的,通过了解芯片的大致框架,可以在后续的学习中心里有个谱,也方便理解记忆。不管学习什么东西,都是先要了解全貌的,从整体到局部,层层递进着学,才能事半功倍。
2025-04-25 10:17:12
390
原创 GD32 常用外设开发学习【记录版】
官方的固件库与使用指南、数据手册、应用手册等,学习的内容参考教材为《GD32 MCU原理与固件库开发指南》(微信读书上就能搜到),该教材主要内容我整理如下,将来也会按照其编排顺序学习(其实在大致浏览该教材后,我发现上面的内容与例子基本上绝大多数都是固件库中Examples目录下提供的参考代码的解读,在将其移植到GD32F303开发板验证后,对代码进行文字说明解释,以此写成了一本书)。本次学习使用的是搭载GD32F407VET6的芯片开发板,板子是在淘宝上随便买的。一、学习的环境与内容。
2025-04-25 10:14:33
671
原创 STM32/GD32中时钟的作用
时钟在32位微控制器中是时间基准与系统协调的核心,直接影响性能、功能实现和功耗。其设计需结合硬件(如晶振选型[[3]])和软件(如时钟树配置[[7]][[8]])的协同优化。
2025-03-20 13:37:06
705
原创 GD32F205RCT6移植LetterShell
具体的移植操作还有诸多细节未展示,这是因为在实际操作中大家的环境与情况不一,不能起到很好的代表作用,移植的过程我也踩了几个坑,最后反思下关键点还是串口中断的配置(裸机)与接口写函数的实现,以及移植版本的问题(不同版本的写函数格式不一致,需要自己调整)总之,网上例子庞杂繁多,但是值得关注的关键问题就这几个,后续我也会记录在RTOS中使用LetterShell的过程与心得。在自己的MDK工程中新建一个LetterShell文件夹,将源码中的src文件夹下的文件拷贝过去。在Init中将其注册,完成初始化、
2025-03-14 14:02:21
329
原创 minicom锁住问题:设备 /dev/ttyUSB0 已锁定。
在今天使用minicom串口工具的时候,出现了锁定的问题:设备 /dev/ttyUSB0 已锁定。百度了下,说是因为上次使用完毕未能正常退出,删除锁定文件即可恢复。在/var/lock/目录下,删除lockfile。再次启动,即可正常使用。
2025-02-25 09:58:10
230
原创 win11下Ubuntu虚拟机连接开发板
在设置完ip后,按理说就可以互相ping通了,但是实际中我发现一直不通,后来在主机上ping开发板的时候我发现,有时候是网络不可达,有时候又是请求超时,因此我查询了两种提示下的背后逻辑,发现可能是win11防火墙未关闭,在我将其关闭后,也是顺利的ping通了,配置好nfs后,就可以进行开发工作了!但在此之前,需要将设备配置连接好,主要是对虚拟机与电脑主机、电脑主机与开发板的网络配置进行操作。在win11系统下进行Linux开发,大多都是在虚拟机中交叉编译,然后将文件发送到开发板上调试运行。
2025-02-24 14:46:59
321
原创 完美解决VMware 17.0 Pro安装ubuntu、Deepin等虚拟机后卡顿、卡死问题
Hyper-V”选项是我在之前使用 WSL 2 时进行开启设置的,事后我回想,应该是当时开启了“禁止开启Hyper-V的主机启用侧通道缓解”这个选项,但是我的电脑之前已经开启了“Hyper-V”选项,所以二者有所冲突,进而导致虚拟机在开启后的很短时间内就完全卡死没反应,因此,关闭这个选项后问题得到了解决。完成以上设置,我的虚拟机没有再出现卡顿现象,但是在随后的使用中,我发现只要我从虚拟机中切换后台出去的时间太长,我的虚拟机再切换回来就直接在当时出去的页面卡死,没有任何反应。
2025-01-10 17:04:57
5879
1
原创 FreeRTOS的内存管理
假设heap有3块空闲内存:5字节、25字节、100字节,vPortMalloc想申请20字节,算法就会负责找出最小同时还能满足申请的字节(这个例子里是25字节),把它划分为20字节和5字节,20字节给申请使用,5字节仍是空闲状态,留给后续使用。在FreeRTOS源码中,共有5个关于内存管理的文件,分别对应内存管理的5种方式,它们是heap_1.c、heap_2.c、heap_3.c、heap_4.c、heap_5.c。同样的,它却适用于频繁的创建、删除任务,前提是任务的栈的大小都是相同的。
2024-12-30 14:50:53
637
原创 WslRegisterDistribution failed with error: 0x800701bc 报错解决
原因2:安装顺序搞反了,先安装微软商店内的ubuntu子系统,然后才在命令行下安装了wsl。原因3:命令行安装wsl后未开启虚拟机特性,或者开启部署虚拟机服务特性后未重启电脑。方法2:直接管理员模式打开powershell,在命令行下执行更新命令。原因1:wsl 1升级wsl 2后未安装内核升级包。方法1:去官网下载安装内核升级包。前提是设置wsl 2为默认版本。
2024-12-30 13:24:45
3512
原创 上升沿与下降沿
在数字电子学和信号处理中,术语“上升沿”和“下降沿”是用来描述数字信号变化的两个重要概念。这些边沿是数字信号从一个状态转换到另一个状态的瞬间。
2024-11-14 08:57:54
2357
原创 虚拟内存是什么
在Windows操作系统中,虚拟内存是一种内存管理技术,它允许计算机使用一部分硬盘空间作为扩展的RAM(随机存取存储器)。当物理内存(RAM)不足时,Windows会将暂时不用的数据从RAM转移到硬盘上的一个特殊文件中,这个文件通常被称为“分页文件”或“页面文件”(Pagefile.sys)。通过这种方式,系统可以运行更多的应用程序和进程,即使实际的物理内存已经被用尽。
2024-10-25 14:04:48
527
原创 时域与频域的区别
时域侧重于信号的时间特性,适合分析瞬态行为和非周期信号。频域侧重于信号的频率特性,适合分析信号的频谱组成和设计基于频率的滤波器。时域和频域提供了互补的视角,结合使用可以更全面地理解和处理信号。在实际应用中,根据具体需求选择合适的分析方法是非常重要的。
2024-10-23 11:21:59
1059
原创 Windows 10 的 20H2、21H2 和 22H2之间的区别
Windows 10 的 20H2、21H2 和 22H2 是指 Windows 10 操作系统的不同功能更新版本,每个版本都带来了新的特性和改进。
2024-10-18 15:23:54
12001
1
原创 带协处理器的芯片是什么
带有协处理器的芯片是指在主处理器之外,还集成了一个或多个专门设计用来执行特定任务的处理器。协处理器通常被设计来加速某些特定类型的操作,这些操作可能是计算密集型的或者是对实时性能有较高要求的任务。通过使用协处理器,可以减轻主处理器的负担,提高系统的整体效率和性能。带有协处理器的芯片可以在单个集成电路中集成多种功能,从而使得系统更加紧凑、高效。这种设计方式在嵌入式系统、移动设备、高性能计算平台以及各种专业领域都有广泛应用。
2024-10-17 10:17:01
563
原创 I2C总线的时钟脉冲是什么
在I2C通信中,时钟脉冲是由主设备(Master)产生的,并通过一条称为SCL(Serial Clock Line)的线路传输给从设备(Slave)。这条SCL线上的信号就是I2C的时钟脉冲。:除了常规的数据传输外,I2C通信还使用SCL与时钟无关的特殊信号——起始(Start)和停止(Stop)条件来标志一次通信的开始和结束。:I2C协议允许不同的传输速率,通常有标准模式(100 kbit/s)、快速模式(400 kbit/s)、快速模式Plus(1 Mbit/s)以及高速模式(3.4 Mbit/s)。
2024-10-17 09:20:49
478
原创 轮询与中断的概念和区别
轮询(Polling)和中断(Interrupts)是计算机系统中两种不同的处理外部事件或设备请求的方法。它们的主要区别在于如何检测和响应这些事件,以及对CPU资源的利用效率。
2024-10-16 11:32:36
777
原创 时间片轮询法的概念与作用
时间片轮询法(Round Robin Scheduling, RRS)是一种进程调度算法,常用于分时操作系统中。其基本思想是将处理器的处理时间分割成许多小的时间片段(时间片),然后按照先来先服务的原则,轮流给每个进程分配一个时间片,让它们执行。如果在当前时间片内进程没有完成,则该进程被挂起,等待下一轮调度;如果在当前时间片内进程完成了,则释放处理器并进行下一个进程的调度。在实际的操作系统中,调度器可能会根据系统的负载情况动态调整时间片的大小,以优化整体性能。
2024-10-16 11:29:38
333
原创 这段时间学习的感受、想法与部分规划
学习思维很常见,大致来说,就是按照别人推荐的路线,顺序去学习,或者按照网上课程的安排一节节的听过去,或许我们在学的时候很认真,记笔记、画导图啥的,可是到实际操练的时候,发现自己还是很难去上手,这是因为很多人意识不到这样子的学习学的是理论,和将来的实践操作关系不大,因此他们根本不知道自己提升慢的原因在哪。现实我们所面对的情况当然是更复杂的,但无论多么复杂,嵌套多少技术,底层的逻辑背后还是数据的流动,根据这套逻辑,是可以把项目的功能和需求转换为硬件的设计、软件的架构等,进而整个项目的开发也就有了具体的方向了。
2024-10-16 11:02:22
327
原创 常见的几种通信总线概述
在电子系统中,总线是用于连接不同组件并允许它们之间通信的一组信号线。不同的总线类型适用于不同的应用场景和需求。每种总线都有其特定的应用场景和技术优势。学习这些总线时,重要的是理解它们的工作原理、电气特性以及如何正确地进行硬件设计和软件编程。
2024-10-16 09:53:09
814
原创 I2C总线的简要理解
通信开始时,主设备会产生一个“开始”条件,即在SCL为高时SDA从高变低;:标准模式下I2C的速度可达100 kbit/s,快速模式可达400 kbit/s,高速模式可达3.4 Mbit/s。:每个从设备都有一个唯一的7位或10位地址,主设备使用这个地址来选择想要与其通信的特定从设备。:I2C总线支持多主机环境,其中任何能够发起通信的设备都可以成为临时的主设备。:某些从设备可以在数据传输过程中拉低SCL线,这被称为时钟伸展,用以延缓主设备的数据传输速率,确保从设备有足够的时间处理数据。
2024-10-16 09:51:31
306
原创 Linux下如何查看系统日志
在Linux系统中,查看系统日志是进行故障排除和监控系统活动的重要手段。不同的Linux发行版可能使用不同的日志系统,但大多数现代的Linux发行版(如Ubuntu, Debian, CentOS等)都采用了作为初始化系统和服务管理器,并且使用来访问由服务收集的日志。以下是几种常见的查看系统日志的方法: 是一个强大的工具,可以用来查询来自不同来源的日志数据。这里有一些常用的命令选项:查看所有日志:查看内核日志:查看特定服务的日志(例如:sshd服务):查看实时更新的日志:查看从某个时
2024-10-16 09:41:21
597
原创 Linux命令su与sudo的区别
su是完全切换用户,而sudo只是临时借用权限来执行单个命令。使用sudo一般比直接用su登录为 root 更加推荐,因为它减少了由于长期保持高权限而导致的安全风险。sudo也便于审计,因为所有通过sudo执行的命令都可以被日志记录下来。在日常管理任务中,建议尽量使用sudo来执行需要提升权限的操作,除非确实需要一个完整的 root shell 环境。
2024-10-16 09:24:29
478
原创 线程与进程有什么区别
简而言之,进程提供了更强的隔离性和稳定性,但代价是更高的资源消耗;而线程提供了更好的并发性能和更低的资源占用,但要求程序员更加小心地处理资源共享问题。在现代多核处理器上,合理利用线程可以显著提高应用程序的性能。
2024-10-15 09:13:05
265
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人