- 博客(47)
- 收藏
- 关注
原创 过于依赖chatgpt编程会有哪些弊端?
最好的方式是把它当“参考答案”——先自己思考,再让AI查漏补缺,最后亲手调试优化,这样才能既省力又成长。如果只会依赖工具,不会优化代码、设计架构,容易被更“全能”的人取代——毕竟AI谁都能用,但经验和判断力需要自己积累。如果所有方案都靠AI给,容易养成“伸手党”思维,遇到复杂问题不会拆解,想不出独特的实现方式,最后做出来的东西和别人千篇一律。原本用AI提高效率是想轻松点,但如果老板觉得“效率高=应该干更多活”,反而可能被安排更多任务,结果还是逃不掉996,工具用了个寂寞……
2025-02-17 18:12:52
593
原创 单片机中有FLASH为啥还需要EEROM?
ATmega328P(Arduino常用芯片)的32KB Flash主要存程序代码(很少修改),1KB EEPROM用来存用户设置(比如智能家居的WiFi密码、温控阈值)。如果强行用Flash存密码,每次修改都要折腾整个扇区,既麻烦又容易把芯片写报废。有些廉价单片机用Flash模拟EEPROM,但需要牺牲额外空间做磨损均衡(类似SSD原理)。对于328P这种经典芯片,直接配独立EEPROM反而是性价比更高的选择。
2025-02-17 18:11:57
1260
原创 为什么主流的 MCU 开发语言是 C 而不是 C++?
很多项目规模小(比如一两人开发),用C的全局变量和函数就能搞定,没必要引入C++的类、模板等复杂概念。C++的虚函数、异常处理等高级特性会增加额外开销,即使能通过编译器选项关闭,但默认情况下C更省心。MCU的内存和存储空间通常只有几KB到几百KB,C语言生成的代码更精简,运行时占用资源少。早期MCU性能极弱,只能用C或汇编,积累了大量C生态(代码、教材、工程师经验)。厂商提供的SDK、驱动库基本都是C写的,用C能直接调用,省去适配C++的麻烦。C++的动态特性(如多态)可能引入不确定性,调试起来更头疼。
2025-02-17 18:09:41
226
原创 第一章嵌入式系统概论考点10互联网
通过固定电话的本地环路(用户线)接人互联网的技术中,最有效的一种是不对称数字用户线(Asymmetric Digital Subscriber Line, ADSL),它利用普通电话线作为传输介质,只需在线路两端加装ADSL设备(专用的ADSL Modem)即可实现数据的高速传输。路由器能监视用户的流量,过滤特定的IP数据报,对保障网络安全也有重要作用。路由器是遵循IP协议把异构网络互相连接起来的关键设备,它屏蔽了不同网络的技术差异,能将发送设备的数据正确送达接收设备,确保了各种不同物理网络的无缝连接。
2025-02-14 17:54:32
1062
原创 第一章嵌入式系统概论考点09计算机网络.
它是一种短距离、低速率、低成本的无线通信技术,其目的是去掉手机、平板电脑等移动终端设备之间以及它们与一些附属装置 (如耳机、鼠标等)之间的连接电缆,构成一个操作空间在几m范围内的无线个人区域网络。数据通信链路:用于数据传输的双绞线、同轴电缆、光缆,以及为了有效而可靠地传输数据所必需的各种通信控制设备(如网卡、集线器、交换机、调制解调器、路由器等),它们构成了计算机与通信设备、计算机与计算机之间的数据通信链路;理解计算机网络的分类与组成,熟悉IP协议的主要内容,掌握互联网的组成和常用接入技术。
2025-02-14 17:53:50
1117
原创 第一章嵌入式系统概论考点08数字通信.
频分多路复用(Frequency Division Multiplexing, FDM),它将每个 信源发送的信号调制在不同频率的载波上,通过多路复用器将它们复合成为一个信号,然后在 同一传输线路上进行传输波分多路复用(Wavelength Division Multiplexing, WDM)技术,它是频分多路复用技术的一种。它的优点是大大提高传输线路的利用率;目前光纤已经远超金属电缆的性能,光纤是光导纤维的简称,它由纤芯和包层组成,包层外有涂覆层,为光纤提供物理保护,屏蔽外部光源的干扰;
2025-02-14 17:53:04
758
原创 第一章嵌入式系统概论考点07数字音频与数字视频
Real Network公司的RM (.rm)和RMVB (.rmvb)格式(.RMVB 格式是.RM的扩充,它采用H.264/MPEG-4 AVC 算法,增加了可变码率编码的功能,性能优于DivX和Xvid,目前互联网上许多视频都是 RMVB格式)。比特率也称为码率,它指的是每秒钟的数据量。.asf、.wmv、.mov、.rm、.rmvb、.flv和.f4v等均支持流式传输,能很好地 在互联网上进行音频/视频流的实时传输和实时播放,满足互联网上视频直播、视频点播、视频会议等应用的需求,得到了广泛的应用。
2025-02-14 17:52:24
966
原创 第一章嵌入式系统概论考点06数字图像
它是像素的所有颜色分量的二进制位数之和,它决定了图像中可能出现的不同颜色(或不同亮度)的最大数目。无损压缩是指使用压缩以后的数据还原图像(也称为解压缩)时,重建的图像与原始图像完全相同,没有一点误差。有损压缩是指使用压缩后的图像数据进行还原时,重建的图像与原始图像虽有一些误差,但不影响人们对图像含义的正确理解和使用。分色:将每个取样点的颜色分解成红、绿、蓝(R、G、B) 3个基色,如果是灰度图像或黑白图像,则不必进行分色。理解计算机网络的分类与组成,熟悉IP协议的主要内容,掌握互联网的组成和常用接入技术。
2025-02-14 17:50:54
645
原创 第一章嵌入式系统概论考点05数字(电子)文本
文本展现的大致过程是:首先要对文本的格式描述进行解释,然后生成字符和图、表的位图图像(Bitmap),最后再传送到显示器或打印机输出,文本阅读器软件的任务就是展现电子文本。线性文本:传统的纸质文本的内容组织是线性(顺序)的,读者通常总是按顺序先读第1页(从第一行读到最后一行),再读第2页,第3页,…简单文本:由表达文本内容的一连串字符(包括汉字)的编码所组成,它几乎不包含任何其他的格式信息和结构信息,也称为纯文本,其文件后缀名是 .txt;了解嵌入式系统的特点、分类、发展与应用,熟悉嵌入式系统的逻辑组成。
2025-02-14 17:50:21
502
原创 第一章嵌入式系统概论考点04SoC芯片
如:三星的 Exynos 系列之外,还有英伟达的 Tegra 系列、高通的骁龙(Snapdragon) 系列,联发科(MTK) 的 MT 系列等,这些芯片大多采用 ARM 公司的 Cortex-A 架构作为 CPU 内核。从可重用的频度、重用的灵活性以及可向其他工艺移植的可能性的角度考虑,这三种IP核的优选次序是软核、固核和硬核;ARM 内核的授权内容包括:芯片内核设计技术、完整的软件开发工具(编译器、调试器、 软件开发套件 SDK)、含 ARM CPU 的芯片销售权等。
2025-02-14 17:49:16
670
原创 第一章嵌入式系统概论考点03嵌入式系统的分类
数码相机与传统相机的根本区别在于它不再使用胶片而使用电子器件成像,使景物的影像能直接以数字代码的形式记录下来,极大地方便了影像的存储、处理和分发。开始阶段的嵌入式系统主要是以4位到8位单片机为核心的可编程控制系统,它们在设备 (系统)中与传感器、伺服器等一起起着控制、检测、显示和指示作用;了解嵌入式处理芯片的主要类型,熟悉SoC的开发流程,理解IP核的重要意义。了解嵌入式系统的特点、分类、发展与应用,熟悉嵌入式系统的逻辑组成。按嵌入式的实时性的分类:非实时系统、软实时系统和硬实时系统;
2025-02-14 17:47:53
611
原创 第一章嵌入式系统概论考点02嵌入式系统的组成
MCU品种多,应用广泛,约占有嵌入式系统70%的市场。:如按键、键盘、触摸板、触摸屏、鼠标器、操纵杆、手写笔、 话筒(麦克风)、发光二极管(Light-Emitting Diodes, LED)、液晶显示器(Liquid Crystal Display, LCD)、打印机等,它们是用户界面的硬件部分。:包括各种类型的传感器(压力传感器、温度与湿度传感器、 重量传感器、运动传感器、距离传感器、光传感器、红外传感器、电流电压传感器和生物传感器等)和各种伺服执行机构(继电器、微电机、步进电机、线性电机等)。
2025-02-14 17:46:13
774
原创 第一章嵌入式系统概论考点01嵌入式系统及其应用
嵌入式系统是嵌入式计算机系统的简称。顾名思义,它是一种嵌入在设备(或系统)内部,为特定应用而设计开发的专用计算机系统。单片机嵌入式系统微控制器微处理器SoCSoPCPU中央寄存器IP核。
2025-02-14 17:44:11
281
原创 程序员为什么不能一次性写好,需要一直改Bug?
需求变更、技术复杂性、人为疏漏及环境差异共同导致Bug不可避免。然而,这一过程也推动了技术的进步与开发者能力的提升。正如搜索结果中提到的比喻:“园丁需要定期除草,程序员需要持续调试”,修正Bug是软件生命周期中不可或缺的环节。程序员无法一次性写出完美代码的核心原因在于。
2025-02-12 13:16:30
343
原创 ARM架构比x86/x64更省电的核心原因分析
相比之下,x86/x64受制于历史包袱和高性能设计目标,即使通过工艺改进(如Intel 7nm)降低TDP,在能效比上仍难以匹敌ARM的垂直优化。未来,随着ARM进军PC/服务器领域(如Apple M系列、高通X Elite),x86需在能效上进一步突破以应对竞争。ARM架构的省电并非单一因素,而是。
2025-02-12 13:09:26
582
原创 Markdown语法及其编辑详解
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2025-02-12 13:07:28
1363
原创 ARM芯片怎么才能用GCC在Linux下裸奔编译,不用被Keil/IAR绑架
开源烧录工具,支持ST-Link、J-Link等调试器。告诉GCC芯片型号(比如。)、优化等级、链接脚本(
2025-02-10 12:09:23
5860
1
原创 科学上网:原理、工具、配置与注意事项
科学上网,是指通过特定技术手段绕过网络审查或地理限制,访问通常无法直接访问的互联网资源。其本质是利用一台位于境外的服务器(我们称之为“代理服务器”)作为中转站,将用户的网络请求转发至目标网站,并将目标网站的响应返回给用户。
2025-02-08 17:21:59
2105
原创 AI 写作的“脑洞”开关:Temperature 和 Top P 参数大白话
想让AI写出或有趣、或严谨的文字?关键在于Temperature和Top P这两个参数!本文用大白话+生动比喻,帮你轻松理解它们如何控制AI的“脑洞”和“选词”,让你彻底告别AI写作的“玄学”,自由掌控AI的文风!
2025-02-08 16:58:43
5902
原创 惯导导明白了嘛
惯导算法 (Inertial Navigation Algorithm) 是惯性导航系统 (INS, Inertial Navigation System) 的核心,它利用惯性测量单元 (IMU, Inertial Measurement Unit) 提供的加速度和角速度数据,通过积分运算来推算载体的位置、速度和姿态信息。简单来说,惯导算法就是一套数学方法,它把来自 IMU 的"感觉"(加速度和角速度)转换成我们能理解的"位置、速度和方向"。核心原理:惯导算法的基础是牛顿运动定律。
2025-02-06 19:38:01
1053
原创 全国计算机等级考试(NCRE)三级嵌入式系统开发技术考试大纲(2025年版)
上机考试,考试时长120 分钟,满分100 分。选择题(40 分);填空题(40 分);综合题(20 分)。
2025-01-08 14:21:04
1185
原创 30分钟学会HTML
它使用一系列的标签来描述网页的结构,包括文本、图片、链接等元素。千万不要被「超文本」、「标记语言」吓到,HTML 的语法非常直观,常用的标签结构并不复杂,用于构建基础网页已经足够,稍微了解一下就能上手。虽然可以使用 CSS 来改变标题的显示样式,但应该根据内容的逻辑结构来选择合适的标题标签,而不是仅仅为了改变字体大小而随意使用。HTML5 引入了一些语义化标签,用于更清晰地描述文档的结构和内容,提高可访问性和 SEO。使用语义化标签来组织 HTML 结构,提高代码的可读性和可维护性,并提升网页的可访问性。
2025-01-04 23:10:05
3542
原创 30分钟学会LaTex
LaTeX 是一种基于 TeX 的排版系统,它使用标记指令来描述文档的结构和内容,专注于内容的逻辑组织和高质量的排版输出。千万不要被「排版系统」、「标记指令」吓到,LaTeX 的基本语法也是相当清晰的,常用的指令结构并不复杂,用于日常文档编写完全足够,只要稍加学习就能体会到它的强大之处。每个 LaTeX 文档都遵循一定的基本结构,你需要定义文档的类别,并用特定的环境包裹文档内容。一个清晰的 LaTeX 文档应该具有良好的结构,明确定义文档类,并使用合适的命令来组织内容。使用缩进可以清晰地表示嵌套列表。
2025-01-04 23:03:03
1053
原创 30分钟学会css
CSS(Cascading Style Sheets)是一种样式表语言,用于描述 HTML(或 XML)文档的呈现。它可以控制网页元素的颜色、字体、布局等外观样式,实现内容与表现的分离,让网页设计更加灵活和高效。在线体验一下。千万不要被「样式表」、「语言」吓到,CSS 的语法也很直观,常用的规则结构并不复杂,用于日常网页美化绰绰有余,花一点时间就能建立基本概念。就是这些基本的规则结构,却能让人,达到“心中有版,落笔生花”的境界。
2025-01-04 22:52:49
2103
3
原创 30 分钟学会 Markdown
Markdown 是一种轻量级标记语言,它使用简洁的纯文本标记格式来排版内容,让你专注于写作本身而不是复杂的排版。当你需要修改元素的属性时(例如,设置文本颜色或图片宽度),使用 HTML 标签可能更方便。Markdown 的语法非常简单,你只需要掌握不到十个常用的标记符号,就能满足日常写作的需求。对于 Markdown 没有涵盖的格式需求,你可以在 Markdown 文件中直接使用 HTML 标签。如果你想在段落中进行换行,可以在一行的末尾添加两个或多个空格,然后按下回车键。链接的引用部分使用两组方括号。
2025-01-03 13:28:08
543
原创 RTOS之信号
安装信号主要用于确定信号值与线程针对该信号值所采取的操作之间的映射关系,即线程将要处理哪个信号,以及当该信号被传递给线程时,将执行什么操作。如上图所示,假设线程 1 需要处理信号,它首先安装信号并解除对该信号的阻塞,同时设定该信号的异常处理方式。然后,其他线程可以向线程 1 发送信号,触发线程 1 对该信号的处理。如果某个信号被阻塞,则该信号不会传递给安装此信号的线程,也不会触发软中断处理。线程接收到信号并打印了接收到的信号值。对信号的操作主要包括:安装信号、阻塞信号、解除信号阻塞、发送信号和等待信号。
2024-12-25 11:43:23
946
原创 RTOS之消息队列
发送消息时,消息队列对象会先从空闲消息链表上取出一个空闲消息块,将发送的消息内容复制到该消息块中,然后将消息块挂到消息队列的尾部。由于线程 2 发送的消息 "I" 是紧急消息,它会直接插入到消息队列的队首,因此线程 1 会在接收到消息 "B" 后,先接收到紧急消息 "I",然后再接收消息 "C"。与邮箱例子中相同的消息结构定义,如果仍然需要向接收线程发送此消息,在邮箱例子中,只能发送指向该结构的指针(在函数指针被发送后,接收线程能够正确访问指针指向的内容,通常这部分数据需要留给接收线程来释放)。
2024-12-25 11:35:24
1035
原创 RTOS之邮箱
在这种场景下,线程 1 可以将按键状态作为邮件发送到邮箱,线程 2 从邮箱中读取邮件并执行相应的 LED 控制操作。例如,存在三个线程,线程 1 发送按键状态,线程 2 发送 ADC 采样数据,而线程 3 则根据接收到的邮件类型执行不同的操作。当线程从邮箱接收邮件时,如果邮箱为空,接收线程可以选择等待直到收到新的邮件,或设置超时时间。当线程向邮箱发送邮件时,如果邮箱未满,邮件会被复制到邮箱中。如果发送线程选择等待,当邮箱中的邮件被接收而空出空间时,等待的发送线程会被唤醒并继续发送。
2024-12-21 16:15:55
2426
原创 RTOS之事件集
如果同时设置了清除标记位,则线程 #1 唤醒后会将事件 1 和事件 30 清零,否则事件标志将保持置 1 状态。一个线程或中断服务例程发送事件到事件集,等待的线程会被唤醒并处理相应的事件。即一个线程与多个事件的关系可以是:任意一个事件发生就唤醒线程,或者所有事件都发生才唤醒线程。然后,遍历等待在该事件集上的线程链表,判断是否有线程的事件激活要求与当前事件标志值匹配,如果有,则唤醒该线程。事件集控制块包含事件集的重要参数。线程必须与所有关联的事件都发生同步,即只有当所有关联事件都发生后,线程才会被唤醒。
2024-12-21 14:42:30
987
原创 AI认知测试
最近很火的一个测试:“毫无疑问,你比这个星球上的任何人读了更多的书、论文和帖子。有了如此巨大的知识积累财富,你认为人类在不同主题之间的模式或任何其他见解方面可能错过或忽视了什么?"英文原版:"You undoubtedly read more books, papers, and posts than any other human being on this planet. With such an immense wealth of accumulated knowledge, what would
2024-12-17 22:25:35
945
原创 RTOS之互斥量
当一个线程持有互斥量时,互斥量处于闭锁状态,并且该线程拥有该互斥量的所有权。当线程 A 尝试获取已被线程 C 占用的互斥量时,线程 C 的优先级会被提升至线程 A 的优先级,从而避免了线程 C 被线程 B 抢占。优先级翻转是指,当一个高优先级线程试图访问共享资源时,如果该资源被一个低优先级线程占用,而该低优先级线程在运行时又可能被其他中等优先级的线程抢占,导致高优先级线程被许多低优先级线程阻塞,无法及时获得执行。如果线程的运行优先级被互斥量提升,则释放互斥量后,线程的优先级恢复为持有互斥量前的优先级。
2024-12-17 14:41:39
1165
原创 RTOS之信号量
信号量也可以认为是一个递增或递减的计数器,需要注意的是信号量的值非负。信号量工作示意图如下图所示,每个信号量对象都有一个信号量值和一个线程等待队列,信号量的值对应了信号量对象的实例数目、资源数目,假如信号量值为 5,则表示共有 5 个信号量实例(资源)可以被使用,当信号量实例数目为零时,再申请该信号量的线程就会被挂起在该信号量的等待队列上,等待可用的信号量实例(资源)。例如当信号量的值等于零时,并且有线程等待这个信号量时,释放信号量将唤醒等待在该信号量线程队列中的第一个线程,由它获取信号量;
2024-12-17 13:53:56
675
原创 RT-Thread 的时钟管理
启动后只会触发一次定时器事件,然后自动停止。会周期性地触发定时器事件,除非用户手动停止,否则将一直持续执行。根据定时器超时函数执行时所处的上下文环境,RT-Thread 的定时器可以分为HARD_TIMER模式和SOFT_TIMER。
2024-12-15 18:28:13
859
原创 RT-Thread 的线程管理
每次切换到 B 线程时,B 线程会运行 5 个系统节拍的时长。在中断处理过程中,如果中断服务程序使得一个比当前运行线程优先级更高的线程具备了运行条件(例如,释放了一个被高优先级线程等待的信号量),那么当中断处理完成后,系统并不会立即返回到被中断的线程继续执行,而是会进行一次线程切换,将 CPU 的使用权交给优先级更高的线程。调用此函数后,当前线程会被从其所在优先级的就绪队列中移除,并添加到该优先级队列的末尾,然后调度器会进行线程上下文切换(如果当前优先级只有一个线程,则线程继续执行,不进行上下文切换)。
2024-12-15 17:29:24
1235
原创 RT-Thread 内核基础
操作系统内核是操作系统的核心,是最基础也是最重要的部分。它就像计算机的大脑,负责管理系统的核心资源,包括线程、线程间的通信、时间、中断和内存等。RT-Thread 内核也承担着这样的角色,它位于硬件之上,由内核库和实时内核实现构成。内核库可以理解为是内核的工具箱,它提供了一些类似 C 语言库的基本函数,帮助内核独立运行。这些函数的具体内容会根据所使用的编译器而有所不同。例如,使用 GNU GCC 编译器时,内核库会包含更多标准 C 库的函数。
2024-12-15 17:26:58
1147
原创 RT-Thread 简介
初识 RTOS 的世界,或许 RT-Thread 对你来说还是个陌生的名字。但随着学习的深入,你会逐渐领略到它的独特魅力,感受到它与其他 RTOS 的不同之处。RT-Thread,这款由中国团队倾力打造的嵌入式实时操作系统,拥有完全自主知识产权,历经 16 年的磨砺与沉淀,在物联网的浪潮中,正逐步蜕变为一个功能完备、组件丰富的物联网操作系统。它就像一颗冉冉升起的新星,在嵌入式领域散发着耀眼的光芒。准备好开启你的 RT-Thread 探索之旅了吗?相信它会带给你意想不到的惊喜!
2024-12-08 16:07:21
1441
原创 20个string库常用的函数,你用过几个
string.h中的这些函数是C语言中处理字符串的基本工具,它们在串口解析和数据传输中非常重要,因为这些操作经常涉及到字符串的复制、比较、查找和修改。理解这些函数的用法和潜在的风险,如缓冲区溢出,对于编写安全和高效的代码至关重要。下面我将详细解释string.h中的一些常见函数。
2024-12-07 21:18:02
1363
原创 数据结构小白一小时手搓环形缓冲区
环形缓冲区是一种非常高效且常用的数据结构,特别适用于需要处理数据流的场景。它通过循环利用固定大小的内存空间来实现数据的缓存和传输,避免了频繁的内存分配和释放,提高了系统性能和实时性。理解其工作原理和优缺点,可以帮助开发者更好地选择和使用这种数据结构。环形缓冲区,也称为循环缓冲区(Circular Buffer)、环形队列(Ring Buffer)或循环队列(Circular Queue),是一种固定大小的首尾相连的数据结构,可以把它想象成一个时钟表盘或一个首尾相接的圆环。
2024-12-07 20:22:37
1563
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人