
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
内联函数会在调用它的地方展开,导致这个函数没有地址,而其他文件如果要调用这个函数就需要链接它。2.在 debug 模式下,需要对编译器进行设置,否则不会展开(因为 debug 模式下,编译器默认不会对代码进行优化,以下给出 vs2013 的设置方式)因为 inline 被展开,就没有函数地址了,链接就会找不到。如果在上述函数前增加 inline 关键字将其改成内联函数,在编译期间编译器会用函数体替

C++11引入了基于范围的for循环和nullptr关键字来改进代码可读性和安全性。范围for循环简化了数组和容器的遍历,其语法为for(auto& e : array),但要求迭代范围必须确定且对象支持++和==操作。nullptr则解决了C++98中NULL宏的二义性问题,专门用于表示空指针,避免函数重载时的歧义。建议在C++11及以上版本中使用nullptr替代NULL或0来表示空指

摘要:分散加载文件(.sct)是ARM Cortex-M芯片的链接控制文件,用于定义程序在Flash和RAM中的存储分配。核心结构包括加载域(定义物理存储地址)和执行域(定义运行时存储)。典型配置包含主程序区(代码和只读数据)和RAM数据区(变量)。通过自定义段(如myflash/myram)可将特定数据分配到指定区域,需配合__attribute__((section))使用。

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

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

STM32作为32位MCU,其4GB寻址空间被划分为Flash程序存储区(0x08000000起)和SRAM运行时数据区。Flash存储程序代码和常量,包括.text、.rodata、.rwdata等段;SRAM则分为数据段(.data/.bss)、堆区(动态内存分配)和栈区(函数调用上下文)。

本文介绍了单片机开发中的三种烧录方式:ISP(在系统编程)、IAP(在应用编程)和ICP(在电路编程)。ISP通过专用接口在断电状态下编程,适合批量生产;IAP通过用户程序实现运行时在线更新,适用于远程升级;ICP则利用调试接口在开发阶段进行快速烧录和调试。

摘要:本文分析了CubeMX配置FreeRTOS(CMSIS-RTOSv2接口)中二值信号量与互斥量的区别与使用方法。二值信号量主要用于任务间同步,无所有权概念;互斥量则用于资源保护,具有严格所有权和优先级继承特性。

Cortex-M4处理器采用三总线架构(iCode、dCode、S-Bus)实现高效并行处理。iCode总线专用于指令获取,dCode总线处理数据访问,S-Bus连接外设资源。总线矩阵协调三条总线的访问,形成改进型哈佛架构,支持同时取指、数据操作和外设访问。

ADC(模数转换器)通过采样、量化和编码将模拟信号转换为数字信号。主要类型包括速度最快的并联比较型和采用二分法的逐次逼近型。ADC支持单次/连续转换、扫描和间断四种工作模式,具有规则通道和可中断规则通道的注入通道。STM32系列ADC时钟最高14MHz,转换时间由采样周期决定,F4系列性能优于F1。








