logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

ARM CoreSight:多核SoC调试追踪架构解析

ARMCoreSight是ARM推出的系统级调试与追踪架构,专为复杂SoC(尤其是多核场景)设计,提供实时调试、事件追踪和系统管理功能。其核心组件包括ITM(生成调试数据)、TPIU(格式化数据)、SWO(物理传输通道)和SWV(可视化工具),通过协作实现低开销的实时调试。SWD接口作为两线协议替代JTAG,支持内存访问和断点设置。

文章图片
#开发语言#职场和发展#嵌入式
(万字图文解析!!!)单片机组成(内核+架构+外设),代码下载及运行原理总结

架构的定义:在计算机领域,“架构”指的是 计算机系统的设计蓝图,它定义了硬件和软件之间的交互规则。类比:就像一座房子的设计图,规定了房间布局、门窗位置、水电管道等。计算机架构决定了CPU如何执行指令、如何访问内存、如何处理数据等核心功能。指令集架构(ISA) 是架构的核心部分,可以理解为 CPU的“语言”:ISA本身是规范,既需要硬件实现,也需要软件遵循。硬件角度:ISA定义了CPU能理解和执行的

文章图片
#单片机#架构#嵌入式硬件
Unity 单元测试框架用法

本文摘要: Unity单元测试框架提供全面的断言工具集,包括相等性、不等性、布尔、空指针和范围断言等核心验证功能。通过setUp和tearDown实现测试生命周期管理,确保测试独立性。支持测试运行控制(忽略测试/批量执行)、自定义输出和测试报告配置。虽不直接支持参数化测试,但可通过数据结构+循环实现多组输入验证。单元测试作为快速验证工具,在底层驱动修改或平台迁移时能高效验证功能正确性。(149字)

文章图片
#开发语言#职场和发展#嵌入式 +2
【C++】Vector核心实现:类设计到迭代器陷阱

三个迭代器的作用与size()capacity()的计算方式;拷贝构造为什么不能用memcpy(深拷贝 vs 浅拷贝);reserve与resize的功能差异(是否改变 size、是否初始化元素);insert和erase的迭代器失效问题(如何避免、返回值的作用);循环删除元素的正确写法(结合erase的返回值);模板构造函数的匹配陷阱(为什么需要int n的重载)。

#算法#开发语言#c++ +1
揭秘C++中new和delete的底层原理

文章摘要:本文深入解析了C++中new/delete的实现原理,对比了与malloc/free的区别。对于内置类型,new/delete与malloc/free功能类似,但new会抛出异常;对于自定义类型,new会调用构造函数,delete会调用析构函数。文章还介绍了定位new表达式,用于在已分配内存上构造对象。最后讨论了内存泄漏问题,包括定义、危害、分类(堆内存泄漏和系统资源泄漏)、检测方法(如

#c++#开发语言#面试
【C语言】深入解析结构体、位段与联合体的内存管理

位段的声明和结构是类似的,有两个不同:1.位段的成员必须是int、unsigned int 或signed int。2.位段的成员名后边有一个冒号和一个数字。int _b : 4;int _c : 8;A就是一个位段类型联合也是一种特殊的自定义类型这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间(所以联合也叫共用体)。//4个字节char b;//1个字节int main()un

文章图片
#c语言#算法#数据结构
【数据结构】链表

本文详细介绍了单向链表和双向链表的实现原理及基本操作。在单向链表部分,讲解了链表结构定义、打印、尾插/头插、尾删/头删等操作的实现方法,重点分析了指针传递问题(需使用二级指针修改头节点)。双向链表部分则展示了带头双向循环链表的结构优势,详细说明了初始化、插入、删除等操作的实现逻辑,强调通过画图辅助理解指针操作。文章还对比了两种链表的特点:单向链表结构简单但功能有限,适合作为子结构;双向链表结构复杂

#链表#数据结构#c语言
理清C语言中内存操作的函数

C语言内存操作函数(memcpy、memmove、memset、memcmp)是处理二进制数据的核心工具。memcpy实现高效内存复制但不处理重叠,memmove则能安全处理重叠内存的复制。memset用于内存初始化(按字节填充),memcmp提供二进制数据比较功能。这些函数以字节为单位操作,适用于任意数据类型,但使用时需注意内存边界、重叠问题和数据类型特性。与字符串函数不同,它们不依赖终止符,适

#c语言#开发语言
到底了