- 博客(67)
- 资源 (1)
- 收藏
- 关注
原创 操作系统(三):FreeRTOS实时性机制分析
FreeRTOS作为一款轻量级实时操作系统(RTOS),其核心设计目标是为嵌入式系统提供高效的实时任务调度和资源管理能力。
2025-04-04 09:58:09
386
原创 操作系统(二):实时系统介绍与实例分析
实时系统(Real-Time System, RTS)是一类以时间确定性为核心目标的计算机系统,其设计需确保在严格的时间约束内完成任务响应。
2025-04-03 21:02:26
694
原创 操作系统(一):概念及主流系统全分析
操作系统(Operating System, OS)是计算机系统的核心软件,负责管理硬件资源(如CPU、内存、磁盘等)、协调软件运行,并为用户提供交互界面。它像计算机的“大管家”,通过五大核心功能实现高效运作。国产系统(如鸿蒙、统信UOS)在政策支持下,加速替代Windows,尤其在政务、金融领域。Chrome OS等基于云的操作系统,依赖网络服务,降低本地硬件需求。如鸿蒙系统的分布式技术,实现手机、电脑、IoT设备的无缝协作。操作系统将深度整合AI功能,例如智能资源调度、语音交互优化。
2025-04-03 20:19:12
557
原创 无线通信技术(四):一文读懂短距离无线通信技术
Wi-Fi(Wireless Fidelity) 是一种基于IEEE 802.11标准的无线局域网技术,允许电子设备通过无线电波连接到互联网或局域网,无需物理网线;使用WPA3(最新标准)加密协议防止数据窃取。它是高速率与广覆盖的标杆。其所用频段、特点及应用场景 如下表所示。Wi-Fi的频段、特点及应用场景频段特点应用场景(1)2.4 GHz(2)5 GHz(3)6 GHz1.高带宽:最高可达9.6 Gbps(Wi-Fi 7),支持8K视频流和VR应用。
2025-04-02 21:13:50
724
原创 无线通信技术(三):5G NR通信频带划分与应用场景
5G NR(New Radio)频带由3GPP标准化组织定义,主要分为FR1(Sub-6 GHz)和FR2(毫米波,mmWave)两大范围。具体频带划分请参考《无线通信技术(二):ITU、3GPP及传统波段对无线频谱的划分》。FR1和FR2的特点。FR1和FR2的特点频率范围名称特点说明FR11.覆盖广2.穿透性强3.中高速率1.适合城市、郊区和农村广域覆盖2.建筑物内信号衰减较小3.适合eMBB(增强移动宽带)和物联网(IoT)FR21.超高带宽2.超低延迟3.覆盖小。
2025-04-02 19:55:15
789
原创 无线通信技术(二):ITU、3GPP及传统波段对无线频谱的划分
3GPP频带分类序号频率范围名称频段特点1FR1Sub-6GHz频段覆盖中低频,兼顾覆盖与容量2FR2毫米波频段支持超大带宽和高吞吐量。
2025-03-29 18:19:34
948
原创 无线通信技术(一):频段、频带和波段
1.频段是战略层概念用于政策规划和资源分配。2.频带是战术层概念指导技术实现。3.波段是历史层概念保留在传统领域。记忆技巧:频段“广”(范围广),频带“细”(细节精确),波段“老”(老术语)。
2025-03-29 13:23:40
1056
原创 SMBus协议(三):物理层
SMBus(System Management Bus) 是一种基于两线制的串行通信总线,由 SMBCLK(时钟线) 和 SMBDAT(数据线) 构成。这两条线均采用开漏结构(Open-Drain),需通过上拉电阻或电流源连接到电源。所有设备并联在总线上,通过"线与"逻辑实现总线控制。如下图所示。
2025-03-27 22:59:03
325
原创 SMBus协议(二):与I2C协议的对比
I2C 与 SMBus 的对比序号不同点I2CSMBus1设计目标通用低速外设通信系统管理(电源、电池、传感器)2超时机制无强制检测(如 25-35 ms 超时)3错误检测可选 ACK/NACK强制 PEC(CRC-8)4地址管理静态地址,冲突需硬件解决动态地址解析(ARP)5电压容差宽松(0.8V - 5.5V)严格(如 VIH=1.35V)6典型应用EEPROM、显示屏智能电池、温度监控、电源管理。
2025-03-23 15:02:51
1018
原创 SMBus协议(一):什么是SMBus协议?
接触一个新协议,我们先从概念和背景开始认识。SMBus(System Management Bus,系统管理总线) 是一种基于 I2C 总线设计的双线制串行通信协议,专为系统管理任务 优化,例如电源管理、温度监控、电池通信等。它由 Intel 和 Duracell 于 1995 年提出,现由 SBS-IF(System Management Interface Forum) 维护。
2025-03-23 10:51:51
601
原创 x86寄存器(一):段寄存器
1978 年, Intel 发布了第一款 16 位微处理器 8086,所谓 16 位是指处理器一次能够传送、处理达 16 位的二进制数。
2025-03-06 21:04:32
404
原创 一文读懂加载地址、链接地址和运行地址
我们在做嵌入式系统开发时,会经常遇到加载地址、链接地址和运行地址的概念,可能会感到很困惑,搞不清它们三者的关系。希望此文能帮助大家彻底理解三者的关系。
2025-03-05 23:10:31
567
原创 展锐T820平台Android11开发:kernel设备树编译问题
展锐平台的kernel具有多board自适应功能,即相同体系架构的两个不同的board间,boot.img、socko.img/odmko(vendorboot.img)、dtbo.img是可替换的,这些镜像文件称为R-img(Replaceable images,可替换的镜像)。要实现这样的效果,R-img都要满足一个共性条件就是SOC级的。针对R-img设备树相关成员的策略如下:(1)dtb.img它是SoC级的,即同一款芯片同体系架构的不同board共用一个dtb。
2024-06-23 12:50:19
835
原创 类的函数成员(四):赋值函数
在某些情况下,缺省赋值函数对类与对象的安全性和处理的正确性还不够,这时就要求类的设计者提供自定义的赋值函数。: mov %rcx,0x10(%rbp) //将对象stu1的地址压入栈中: mov %rdx,0x18(%rbp)//将对象stu的地址压入栈中: mov 0x10(%rbp),%rax//从栈中取出对象stu1的地址,传送给rax= &stu)的实现: mov 0x18(%rbp),%rax//从栈中取出对象stu的地址,传送给rax。
2024-04-09 22:09:26
1115
原创 嵌入式系统基础知识(二):什么是实时系统?
实时系统,英文全称为Real-time Operating System,简称RTOS,它的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这个结果的时间。实时系统能够在指定或者确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统。因此,实时系统应该有在事先定义的时间范围内识别和处理离散事件的能力;系统能够处理和存储控制系统所需要的大量数据。
2024-04-04 10:31:34
481
原创 嵌入式系统基础知识(一):嵌入式系统是什么?
根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”。这主要是从应用上加以定义的,从中可看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前,国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。
2024-04-01 23:04:23
469
2
原创 类的函数成员(三):拷贝构造函数
通常按成员语义支持已经足够。但在某些情况下,它对类与对象的安全性和处理的正确性还不够,这时就要求类的设计者提供特殊的拷贝构造函数定义。
2024-04-01 22:21:33
1677
2
原创 类的函数成员(二):析构函数
析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作。例如,在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存。析构函数有如下特点:1. 构函数名与类名相同,但在前面加上字符‘~’。2. 析构函数无函数返回类型,与构造函数在这方面是一样的。但析构函数不带任何参数。3.一个类有一个也只有一个析构函数,这与构造函数不同。析构函数可以缺省。
2024-03-31 18:06:55
391
原创 C++数据类型(一):一文看懂C++引用的本质
函数的参数传递方式主要有传值和传指针。在函数域中为参数分配内存,而把实参的数值传递到新分配的内存中。它的优点是有效避免函数的副作用。2.传指针这里有两种传递方式。(1)指针传递(2)引用传递。这里将引用也归类为指针,是有依据的。下面详细分析、寻找引用的本质。二.什么是引用?引用(reference)是C++中一种新的导出型数据类型,它又称别名(alias)。引用不是定义一个新的变量,而是给一个已经定义的变量重新起一个别名,也就是C++系统不为引用类型变量分配内存空间。
2024-03-31 16:18:54
1615
1
原创 一文看懂this指针的本质
如下图所示。用同一个类实例化了两个对象,它们共用同一份成员函数的拷贝。既然是同一份拷贝,那么成员函数又怎么知道是取哪一个对象的成员数据呢?
2024-03-30 12:40:58
1018
原创 x86的内存分段机制
采用分段策略之后,一个内存单元的地址实际上就可以用“段:偏移”或者“段地址:偏移地址”来表示,这就是通常所说的逻辑地址。为了在硬件一级提供对“段地址:偏移地址”内存访问模式的支持,处理器至少要提供两个段寄存器,分别是代码段寄存器(CS)和数据段寄存器(DS)。对 CS 内容的改变将导致处理器从新的代码段开始执行。同样,在开始访问内存中的数据之前,也必须首先设置好 DS 寄存器,使之指向数据段。除此之外,最重要的是, 当处理器访问内存时,它把指令中指定的内存地址看成是段内的偏移地址,而不是物理地址。
2024-03-28 23:05:22
791
原创 类的定义与实例化
直接在类体内定义函数。如下图所示。在类体内声明函数,在类外定义函数。返回值类型 类名::函数名(参数表)……其中运算符“::”称为作用域解析运算符,它指出该函数是属于哪一个类的成员函数。
2024-03-28 22:11:34
1484
原创 面向对象语言的全局认识
学习一门语言,就像在一座陌生的城市旅游,第一步应该找一张这座城市的地图,对这座城市有个整体的了解,然后寻找自己的目的地,不至于迷失方向。一句话:先整体,再局部。
2024-03-27 22:23:21
990
原创 计算机基础(一):运算单元
参与运算的数集只有0与1的运算,称为布尔代数。因为1与0也对应逻辑中的“真”和“假”,所以也称为逻辑运算。1847年,乔治.布尔在他的《逻辑的数学分析》一书中引入了布尔代数,提出了用数学的方法来研究逻辑关系。
2024-03-26 20:27:29
358
原创 CAN总线系列(二):链路层芯片MCP2515解读
Microchip 的MCP2515 是一款独立控制器局域网络(Controller Area Network, CAN)协议控制器,完全支持CAN V2.0B 技术规范。它是CAN协议中数据链路层的芯片。
2024-03-25 21:15:48
4114
原创 CAN总线系列(一):协议概述
由于差动信号放大器总是用CAN-High线上的电压(3.5V-X)减去CAN-Low线上的电压(1.5V-X),即(3.5V - X) - (1.5V - X) = 2V。ISO11519-2 隐性电平的电压差为-1.5V,显性电平的电压差为 3.0V,两电平的差别为 3.0V-( -1.5V) =4.5V。②隐性电平,定义为逻辑 1。(1)发送单元:在发送数据帧和远程帧的时候,SOF—CRC段的数据,相同电平如果持续5bit,在下一个bit(第6bit)则要插入1bit与前5bit反向的电平。
2024-03-25 20:42:35
1725
原创 I2C系列(四):软件模拟I2C读写24C02/04/08/16
下面改进《》程序,编写适用于24C02/24C04/24C08/24C16 的两个通用读写函数。根据芯片的 DATASHEET:写数据到 EEPROM 时,因部分地址位不能自增,故需进行页边界处理;而从 EEPROM 读数据时,所有地址位都可以自增,故不需进行页边界处理。
2024-03-23 17:14:17
879
原创 I2C系列(三):软件模拟I2C读写24C02
定义如下命令:①C——串口接收数据函数初始化②S——单片机将接收到的数据发送到串口调试终端显示,以确认单片机是否已正确接收数据③W——将接收缓冲区 wbuf 中的数据写入 EEPROM 中④r——将刚才写入 EEPROM 中的数据读出到缓冲区 rbuf 中,并发送到串口调试终端显示/*接收数据统计*//*串口调试软件终端发送的命令标识*/#define NOP_num 60/*延时函数中 NOP()指令的执行次数*/
2024-03-23 15:27:49
2277
原创 I2C系列(二):I2C芯片24C02/4/8/16(EEPROM)解读
这个地方值得注意:引脚A0、A1和A2只用来定义器件地址,不能用来选择内部ROM单元地址。故此,无论外部引脚如何连接,都不影响内部ROM地址的选择。写到页边界时,要继续写下一页或其它页,必须产生一个停止信号,然后再产生一个开始信号,接着由主机传送目标页的地址,以开始在目标页的写操作。根据24C02芯片的Datasheet描述,其内部存储结构应该如下图所示。其它容量的EEPROM内部结构依此类推。页边界的停止信号不能缺少,否则会出错。下面简述EEPROM内部存储结构。
2024-03-22 19:58:51
1311
原创 I2C系列(一):一文读懂I2C协议
I2C必须使用开漏(或集电极开路)的引脚,其引脚框图如下所示。SCL0对应78K0的P6.0引脚,SDA0对应78K0的P6.1引脚。在使用开漏引脚通信时,需注意如下事项:1)两条总线须外接上拉电阻;2)通信前须设置引脚的I/O模式:①输出信号时,PM6.0/PM6.1=0;②输入信号时,PM6.0/PM6.1=1;。3)开漏输出属于“线与”逻辑。故此,将总线置1即为释放总线,而总线上任一引脚置0,总线即为0。
2024-03-22 19:14:32
563
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人