- 博客(81)
- 收藏
- 关注
原创 ESP32-S3遇见OpenAI:OpenAI官方发布ESP32嵌入式实时RTC SDK
这款由OpenAI开发的RTC SDK为开发者提供了一系列强大的工具和服务,使得ESP32-S3可以轻松实现精准的时间管理,并支持与云端服务无缝对接。时间同步:通过NTP协议或其他方式确保设备能够获取到准确的时间信息。本地时钟保持:即使在网络断开的情况下也能维持相对精确的时间。事件触发机制:可以根据预设的时间点或周期性地执行特定任务。云服务集成:简化了与OpenAI及其他第三方云服务平台的数据交换过程。
2025-01-03 19:47:49
1466
原创 什么是PID?PID的应用场景有哪些?硬件平台如何选择?
PID 控制是一种反馈回路机制,它通过计算当前值与期望值之间的误差,并调整输出以最小化该误差。比例 § 控制:根据当前误差的比例来调整输出。积分 (I) 控制:累积过去的误差,帮助消除稳态误差。微分 (D) 控制:基于误差的变化率,预测未来的趋势并进行调整。这三个部分可以通过下面的公式组合起来:其中 (u(t)) 是控制器的输出,(K_p)、(K_i) 和 (K_d) 分别是比例、积分和微分增益,(e(t)) 是误差信号。
2024-12-17 22:30:27
3200
原创 如何开始学习嵌入式?嵌入式未来怎么样?如何应对职业危机?
编程语言:C语言是嵌入式开发的基础,几乎所有的嵌入式项目都会使用到C语言。对于希望进一步扩展技能的人来说,学习C++也是一个不错的选择,尤其是在涉及到面向对象设计时。电子工程基础:了解数字电路、模拟电路、电源管理等基础知识,这对于理解硬件工作原理非常有帮助。计算机体系结构:熟悉CPU的工作方式、内存管理、中断机制等概念,这有助于编写更高效的代码。
2024-11-21 23:24:28
548
原创 【Keil5教程及技巧】耗时一周精心整理万字全网最全Keil5(MDK-ARM)功能详细介绍【建议收藏-细细品尝】
Keil μVision 5 是一款功能强大的集成开发环境 (IDE),广泛应用于基于 ARM 和其他微控制器的项目开发。通过本教程的学习,您将能够掌握使用 Keil μVision 5 进行嵌入式软件开发的基本技能。让我们一同开启这段旅程,了解如何高效地使用 Keil μVision 5 及其的相关技巧!
2024-08-18 20:15:46
21563
7
原创 【Keil5教程及技巧】使用Keil5创建工程详细步骤【建议收藏】
大家好,又见面了,我是小超,本文是专栏【单片机开发软件技巧】专栏内文章; Keil是我们单片机开发经常使用的软件,从本篇文章开始写点Keil相关的使用教程及技巧 专栏地址:【单片机开发软件技巧】, 此专栏单片机开发中相关的软件使用技巧总结,希望能够加深自己的印象,以及帮助到其他的小伙伴。 如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
2024-08-17 15:58:55
2136
原创 一文看懂RAM与ROM的区别!(赶快收藏)
RAM(Random Access Memory,随机存取存储器)和ROM(Read-Only Memory,只读存储器)是计算机系统中两种常见的存储类型。它们在存储数据的方式、用途以及特性上都有很大的区别。RAM和ROM在计算机系统中扮演着不同的角色。RAM作为可读写且易失性的存储器,主要用于存储正在运行的程序和数据;而ROM作为只读且非易失性的存储器,主要用于存储固定不变的数据。理解这两种存储器的区别对于设计和使用嵌入式系统以及其他计算机系统非常重要。
2024-08-16 23:12:34
4067
原创 如何构建高效且实用的编程学习笔记系统
建立一个高效且实用的编程学习笔记系统并非一日之功,需要持之以恒的努力和不断的优化调整。希望上述建议能为你提供一些启发,帮助你在编程学习的旅途中更加顺利。记住,最重要的是找到最适合自己的方法,不断积累和进步。通过上述步骤,我们可以构建一个既高效又实用的编程学习笔记系统。这样的系统不仅能够帮助我们更好地管理和利用知识,还能激发我们对编程的兴趣和热情。希望每位编程爱好者都能在学习的过程中找到乐趣,并不断提升自己的技能水平!
2024-08-13 22:40:55
713
原创 【RTOS面试题】临时屏蔽/禁用中断的方法有什么用?什么时候用?做这种方法时应该注意什么?
临时屏蔽/禁用中断的方法在嵌入式系统开发中非常重要,尤其在处理中断密集型的任务时。下面将详细介绍这种方法的用途、应用场景以及注意事项。
2024-08-13 21:41:48
621
原创 【RTOS面试题】RTOS是什么?RTOS有哪些特点?RTOS的应用场景、RTOS的选择以及常见RTOS有哪些
RTOS,即实时操作系统(Real-Time Operating System),是一种专门为实时应用设计的操作系统。它旨在满足严格的时限要求,确保在限定的时间内完成任务,并对外部事件作出响应。RTOS在嵌入式系统开发中非常重要,广泛应用于各种需要高可靠性和精确时间控制的场景中。
2024-08-13 21:21:12
1323
原创 STM32中的ICACHE是什么有什么用?如何使用?
一、什么是ICACHE?icache是。在计算机系统中,icache(指令缓存)是处理器核心内部的一个关键组件,它专门用来存储最近使用过的指令。当CPU需要执行一个指令时,会首先检查i-cache中是否已经缓存了该指令。如果所需的指令已在i-cache中(这种情况称为缓存命中),CPU可以直接从i-cache中快速读取指令,无需等待从主内存中获取,这显著提高了指令的访问速度并提升了程序的执行效率。此外,由于指令通常不会被修改,iCache在硬件设计上可以设为只读的,这样也降低了硬件设计成本。
2024-08-13 17:39:36
510
原创 【电子电路】电容的工作原理、分类及几大用途
一、电容是什么?在电子电路中,电容是很重要的元器件之一。甚至全球的电子元器件产品中有百分之40以上是电容。基本上所有的电子设备中都能找到电容的身影,设想一下如果没有电容该是多么可怕的一件事。那么电容究竟是什么?电容(Capacitance)亦称作“电容量”,是指在给定电位差下自由电荷的储藏量,记为C,国际单位是法拉(F)。一般来说,电荷在电场中会受力而移动,当导体之间有了介质,则阻碍了电荷移动而使得电荷累积在导体上,造成电荷的累积储存,储存的电荷量则称为电容(引自百度百科)。
2024-08-13 17:27:30
2219
原创 线程是不是被描述为轻量级的?,线程之间的切换是否涉及改变内存上下文?
线程之间的切换确实涉及上下文切换,但这通常比进程间的上下文切换要轻量得多。线程切换主要涉及寄存器状态和堆栈指针的保存与恢复,而不会涉及内存上下文的改变,因为同一进程内的线程共享相同的内存空间。这种轻量级的特性使得线程成为实现并发执行的有效手段。
2024-08-11 15:11:07
708
原创 什么是抢占式多任务、分时?它与合作多任务 、分时有什么区别?
抢占式多任务是指操作系统可以主动中断当前正在执行的任务,并将CPU分配给其他就绪的任务。这种机制允许高优先级的任务打断低优先级任务的执行,从而确保系统具有良好的实时响应性和资源利用率。合作式多任务是指任务之间的调度是由任务本身控制的。每个任务必须显式地放弃CPU使用权,以便其他任务有机会运行。这种方式依赖于任务之间的合作。
2024-08-11 14:33:15
906
原创 【RTOS面试题】什么是抢占?抢占的原理、抢占的好处、抢占有什么局限性?
😀 作 者:🚀 个人简介:嵌入式工程师,专注嵌入式领域基础和实战分享 ,欢迎咨询!💖 欢迎大家:这里是CSDN,我总结分享知识的地方,喜欢的话请三连,有问题请私信抢占(Preemption)是实时操作系统(RTOS)中的一个重要概念,特别是在多任务环境下。它指的是当一个高优先级的任务变得就绪时,RTOS 可以中断当前正在执行的低优先级任务,转而去执行高优先级任务的过程。抢占机制是RTOS实现任务调度的一种方式,它有助于确保系统的实时性和响应性。
2024-08-09 23:34:20
568
原创 [RTOS/操作系统面试题] 什么是自旋锁?自旋锁工作原理?自旋锁的特点?自旋锁的应用有哪些?
自旋锁是多线程和多任务编程中的一种重要同步机制,特别适用于需要快速访问共享资源的场景。通过合理使用自旋锁,可以提高程序的效率和响应速度。希望这些信息对你有所帮助!
2024-08-09 17:14:39
861
原创 大学新生入门编程的最佳路径:嵌入式领域的深入探索
对于大学新生来说,编程已成为一项必不可少的技能。面对众多编程语言和学习资源,新生们常常感到迷茫。如何选择适合自己的编程语言?如何制定有效的学习计划?如何避免常见的学习陷阱?本文将为你提供嵌入式领域的编程入门指南,帮助你为大学生活和未来职业发展打下坚实的基础。
2024-08-08 23:05:27
595
原创 AI辅助编程:挑战与机遇
随着AIGC(Artificial Intelligence Generated Content,人工智能生成内容)如ChatGPT、Midjourney、Claude等大语言模型的涌现,AI辅助编程工具日益普及,程序员的工作方式正在发生深刻变革。有人担心AI可能取代部分编程工作,也有人认为AI是提高效率的得力助手。面对这一趋势,程序员应该如何应对?是专注于某个领域深耕细作,还是广泛学习以适应快速变化的技术环境?又或者,我们是否应该将重点转向AI无法轻易替代的软技能?
2024-08-08 22:53:05
538
原创 低代码开发:机遇与挑战
低代码开发平台是一种软件开发工具,它通过可视化界面和拖拽组件的方式,让开发者能够快速构建应用程序,而不需要编写大量的代码。这种平台通常包含预构建的组件、模板和工作流,使得即使是非专业的开发人员也能够构建功能丰富的应用程序。
2024-08-08 22:44:10
730
原创 【单片机开发软件】Keil格式化工具-AStyle使用
AStyle(Artistic Style)是一个源代码格式化、美化工具,主要用于 C、C++、C#、Java 和其他几种编程语言。它可以帮助开发者自动调整代码风格,使其符合特定的编码规范或个人偏好。
2024-08-08 17:57:03
1593
原创 【单片机开发软件】使用VSCode开发STM32环境搭建
大家好,又见面了,我是小超,本文是专栏【单片机开发软件技巧】专栏的第1篇文章; Keil是我们单片机开发经常使用的软件,但是很多人习惯使用vscode,写篇VSCODE编译Keil工程的环境搭建教程记录一下不过分吧 专栏地址:【单片机开发软件技巧】, 此专栏单片机开发中相关的软件使用技巧总结,希望能够加深自己的印象,以及帮助到其他的小伙伴。 如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
2024-08-08 17:18:08
980
原创 “八股文”:是助力还是阻力?
在程序员面试中,“八股文”是一个绕不开的话题。所谓“八股文”,指的是那些在面试中经常出现的标准问题及其答案,例如“解释一下死锁的概念”、“CAP理论是什么”等。这些内容通常被求职者反复练习,以至于变成了某种固定的模式或套路。那么,“八股文”究竟是助力还是阻力呢?本文将从不同的角度探讨这一话题,并提出一些建议,帮助大家更好地利用“八股文”。
2024-08-07 22:49:10
529
原创 【RTOS面试题】ISR中可以使用互斥锁和信号量吗?
【【RTOS面试题】ISR中可以使用互斥锁和信号量吗?】在中断服务程序(ISR, Interrupt Service Routine)中直接使用互斥锁(mutex)和信号量(semaphore)是有风险的,因为这些同步机制通常不是中断安全的。但是,可以通过一些方法来安全地在 ISR 中使用互斥锁和信号量。
2024-08-07 22:10:14
634
原创 【RTOS面试题】RTOS和Linux的区别
实时操作系统和Linux操作系统各有特点,适用于不同的应用场景。RTOS适合需要实时响应和确定性行为的应用场景,如工业控制、医疗设备等;而Linux则更适合需要丰富功能和用户友好界面的应用场景,如桌面电脑、服务器等。在选择操作系统时,应根据具体的应用需求来决定使用哪种类型的操作系统。希望这些信息对你有所帮助!
2024-08-07 15:04:15
1049
原创 ARM 架构硬件新趋势:嵌入式领域的未来
历史背景:ARM(Advanced RISC Machines)是一种精简指令集计算机 (RISC) 架构,最初由 Acorn Computers 在 1985 年设计。优势:低功耗、高能效、丰富的生态系统支持。应用场景:移动设备、服务器、物联网设备等。随着技术的进步,ARM 架构将继续引领嵌入式系统的创新和发展。无论是 AI 加速器的集成、更高效的电源管理,还是安全性增强,都将为未来的嵌入式设备带来更多的可能性。这些技术不仅推动了硬件的发展,也为我们提供了更加智能、高效、安全的生活体验。
2024-08-04 15:57:06
2201
原创 【RTOS面试题】什么是消息队列
消息队列是一种用于任务间通信的机制,它允许一个任务(生产者)向消息队列发送消息,而另一个任务(消费者)可以从队列中接收这些消息。消息队列在FreeRTOS中提供了一种简单有效的方式来实现任务间的异步通信,有助于解耦任务之间的依赖关系,提高系统的灵活性和可维护性。
2024-08-04 15:12:28
643
原创 【RTOS面试题】什么是互斥量?
互斥量(Mutex,全称为Mutual Exclusion Object)是一种常用的同步原语,用于保护对共享资源的访问,确保同一时间只有一个线程或任务能够访问该资源。通过合理使用互斥量,可以确保程序的稳定性和可靠性。互斥量可以看作是一个特殊的锁,它维护了一个内部状态,用于跟踪互斥量的拥有者。当一个线程或任务获得了互斥量之后,其他试图获取该互斥量的线程或任务将被阻塞,直到互斥量被释放。在这个例子中,两个线程分别调用increment函数,通过互斥量来保护对shared_value的访问,确保数据的一致性。
2024-07-30 21:33:20
593
原创 【RTOS面试题】什么是著名的食客问题
例如,在多线程编程中,我们需要小心处理共享资源的访问,避免死锁和资源竞争问题。哲学家们交替进行思考和吃饭的行为。然而,由于筷子的数量有限,哲学家们可能会陷入死锁的状态,即每个人都拿起了左边的筷子,却都在等待右边的筷子,结果没有人能开始吃饭。著名的“食客问题”(Dining Philosophers Problem)是一个经典的计算机科学问题,用来说明并发编程中的资源竞争和死锁问题。这个问题最初是由荷兰计算机科学家Edsger Dijkstra提出的,用于探讨如何有效地分配有限的资源,避免死锁和饥饿等问题。
2024-07-30 21:31:22
385
原创 【RTOS面试题】死锁问题详解
死锁(Deadlock)是多任务或多线程环境中一个常见的问题,尤其是在实时操作系统(RTOS)中,如果处理不当,会导致整个系统停止响应。死锁发生时,两个或多个任务互相等待对方持有的资源,从而形成了一个僵局,这些任务都无法继续执行下去。二、产生死锁的四个必要条件互斥条件(Mutual Exclusion): 至少有一个资源必须处于非共享模式,即一次只能由一个任务占用。如果另一个任务请求该资源,请求者将被阻塞,直到资源被释放。占有并等待。
2024-07-30 21:29:17
1010
原创 【RTOS面试题】什么是优先级反转
如果任务 B 持有一个资源锁,而任务 C 需要这个锁,这时任务 C 就会等待任务 B 释放锁。此时,如果更高优先级的任务 A 启动并准备运行,但由于任务 B 持有着资源锁,任务 A 无法获取这个锁,因此也无法执行,这就导致了优先级反转——即高优先级的任务 A 被较低优先级的任务 B 阻塞了。这个问题通常发生在多个任务共享一个资源(如一个互斥锁或信号量)时,低优先级的任务意外地阻塞了高优先级的任务。通过合理的设计和选择合适的解决方案,可以有效避免这个问题的发生,保证系统的稳定性和可靠性。
2024-07-30 21:26:43
916
原创 【小超嵌入式】 交叉编译工具安装过程
其中,/path/to/cross-compiler/bin应该替换为你的交叉编译工具链中bin目录的实际路径,cross-compiler-gcc应该替换为你的交叉编译器的实际名称(例如arm-linux-gnueabihf-gcc)。测试交叉编译器:最后,你可以通过运行交叉编译器的版本信息命令(如arm-linux-gnueabihf-gcc --version)来验证交叉编译器是否安装成功。:如果你使用的是Ubuntu、Fedora等Linux发行版,也可以尝试从它们的软件仓库中安装交叉编译工具链。
2024-07-30 21:24:08
520
原创 NFS服务器环境搭建
(- *(rw,sync,no_subtree_check,no_root_squash):表示允许所有客户端以读写权限(rw)访问共享目录,同步写入(sync),不检查子树(no_subtree_check),不对root用户进行权限限制(no_root_squash)。● 打开ubuntu,终端执行如下命令(dpkg -s nfs-kernel-server)查看是否安装了nfs服务器,显示ok表示安装了,直接跳过下一步就可以了。NFS的操作非常简单,客户端只需要挂载服务器上的共享目录即可使用。
2024-07-28 22:44:30
938
原创 Tftp服务器环境搭建
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一种基于UDP(User Datagram Protocol)的文件传输协议,它被设计为一个非常简单的文件传输机制,特别适用于那些对复杂性有严格限制的环境,如小型嵌入式系统或者进行网络引导(如DHCP和PXE启动过程中)。修改为如下内容(第四行为Tftp服务器路径(即客户端要下载的文件需要放到该目录下),下面步骤中会创建,第五行一定要是:69,注意有个冒号,第六行为权限),修改完保存退出。安装了直接执行下一步。
2024-07-28 22:42:47
514
原创 【小超嵌入式】C++实现简单计算器详细分析
意味着程序正常终止,返回给操作系统一个值为0的状态码,通常表示成功。输出一个提示信息,告诉用户需要输入一个运算符。这是主函数的开始,每个C++程序都必须有一个。输出一个提示信息让用户输入两个数字,再用。头文件,它提供了输入输出流的功能,如。命名空间中的标识符,而无需每次都前缀。这行代码表示我们将在整个程序中使用。从标准输入读取一个字符并将其存储到。读取这两个数字并将它们存储到。函数,它是程序的入口点。这是主函数的结束部分,
2024-07-11 21:29:31
395
原创 【小超嵌入式】基于C++的学生管理系统详细分析
此外,当数组接近满时,频繁的删除操作可能会导致效率降低,因为每次删除都需要重新排列数组中的元素。语句用于终止循环,这意味着一旦找到了名字匹配的学生并修改了其成绩,就不会再继续查找数组中的其他元素。这是非常重要的,因为关闭文件可以释放操作系统持有的文件资源,同时确保所有缓冲区中的数据都被写入磁盘。是C++标准库中的一个类,用于处理文件的输出流。数组中的有效学生记录数量会减少1,同时数组的内容会被适当调整以移除指定的学生记录。如果找到了名字匹配的学生,程序会输出一个提示消息,要求用户输入新的成绩,然后使用。
2024-07-10 23:18:51
1005
原创 【Linux系统移植】网络环境搭建
在Linux系统移植过程中我们的最终目的是让Linux在产品或者开发板上可以正常的运行工作,为了让Linux能够正常的工作运行,需要我们讲配置好的Linux镜像文件、跟文件系统等下载到开发板内运行,这个下载过程如果使用串口烧录不但不方便还很慢,使用网络的方式烧录既方便又快捷,所以需要搭建一个网络环境保障ubuntu(服务器用于存放Linux镜像等待烧录的文件)和产品或者开发板能够正常网络通信。找到自己的网络端口(连接开发板的,这里留一下我画横线处的名字,之后会用到),右键属性,选择IPV4双击。
2024-06-27 15:36:49
941
原创 U-boot相关基础知识
U-Boot是Bootloader的一种实现,它专门用于嵌入式系统,特别是那些基于ARM、MIPS等处理器的系统。U-Boot提供了丰富的硬件支持和功能,使得开发者能够轻松地初始化硬件、加载操作系统内核,并进行一些基本的系统配置。简单来说就是Uboot属于Bootloader中的一种,bootloader就相当于类,uboot就相当于对象。嵌入式领域常用的bootloader就是uboot。
2024-06-27 15:14:59
721
原创 一文详细了解Bootloader
bootloader是一个引导加载程序,它的主要作用是初始化硬件设备、设置硬件参数,并加载操作系统内核。在嵌入式系统中,bootloader是硬件启动后第一个被执行的程序,它位于操作系统和硬件之间,起到桥梁的作用。
2024-06-26 15:43:01
3234
Keil格式化工具-AStyle
2024-08-08
2022年电赛 高频组必备模块 移相网络 (高频组共五个模块)
2024-08-04
2022年电赛 高频组必备模块 数字频率合成模块
2024-08-04
智能车载终端叉车 车载人脸识别ADAS行为识别定制方案
2024-08-04
计算机网络高级教程课件
2024-08-04
基于STM32的武警哨位联动报警系统设计,支持以太网和WIFI通信(硬件、源码、论文等).zip
2024-01-12
(大赛作品)STM32F072RB NUCLEO智能家居控制.zip
2024-01-11
蓝桥杯C题目内含原题及源码
2023-09-11
人工智能:OpenCV入门教程
2023-09-11
编程学习源码:学生管理系统源码
2023-09-11
C语言程序设计-宿舍管理参考报告
2023-09-11
人工智能领域常用传感器,GY-52三轴陀螺仪MPU6050资料包(内含芯片手册、参考文档STM32及51测试程序)
2023-09-11
电赛资源半桥驱动MOS管电机驱动板,主要用于电机驱动(PCB工程文件+磁悬浮代码)
2023-09-11
X9C104资料(内含demo程序及数据手册)
2023-09-10
STM32示波器(内含:原理图及PCB源码、上位机及源码还有设计资料参数通信协议等)
2023-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人