巩义做网站xd seo做非洲国际贸易网站

张小明 2026/1/8 21:16:30
巩义做网站xd seo,做非洲国际贸易网站,常州高端网站建设公司哪家好,广西城乡和建设厅网站STM32中指针和数组的本质区别核心本质区别1. 定义与内存分配// 数组 - 静态分配#xff0c;大小固定 uint8_t array[100]; // 编译器分配100字节连续内存 // array本身是内存地址的标识符#xff0c;不是变量// 指针 - 动态或静态#xff0c;大小可变 uint8_t *ptr; …STM32中指针和数组的本质区别核心本质区别1.定义与内存分配// 数组 - 静态分配大小固定 uint8_t array[100]; // 编译器分配100字节连续内存 // array本身是内存地址的标识符不是变量 // 指针 - 动态或静态大小可变 uint8_t *ptr; // 只分配4/8字节存储地址 ptr array; // 指向已存在内存 ptr (uint8_t*)malloc(100); // 动态分配2.类型特性// sizeof行为不同 sizeof(array); // 返回整个数组大小 (100*sizeof(type)) sizeof(ptr); // 返回指针本身大小 (4或8字节) // 地址操作不同 array; // 得到数组首地址类型是uint8_t(*)[100] ptr; // 得到指针变量的地址 // 自增操作不同 ptr; // 指针移动sizeof(uint8_t)字节 array; // 错误数组名不是左值3.内存布局差异数组: ┌─────────────────┐ │ 数据直接存储 │ ← array标识符直接引用此内存 │ (连续100字节) │ └─────────────────┘ 指针: ┌─────────┐ ┌─────────────────┐ │ 地址值 │ → │ 实际数据 │ │ (4字节) │ │ (动态分配内存) │ └─────────┘ └─────────────────┘STM32中常用数组存储的数据类型1.外设数据缓冲区// DMA传输缓冲区 uint8_t uart_rx_buffer[256]; // UART接收缓冲区 uint32_t adc_buffer[128]; // ADC采样数据 // 通信协议数据 uint8_t can_frame[8]; // CAN报文数据场 uint8_t spi_tx_data[64]; // SPI发送数据2.信号处理数据// 传感器数据缓存 int16_t imu_raw[6]; // 六轴IMU原始数据 float temperature_history[60]; // 温度历史记录 // 数字信号处理 float fft_input[1024]; // FFT输入数据 int32_t fir_filter_buffer[32]; // FIR滤波器缓存3.系统状态与配置// 系统状态数组 uint32_t task_stack[128]; // 任务堆栈空间 system_state_t states[10]; // 状态机状态 // 配置参数表 const uint32_t pwm_lookup[256] { /* PWM占空比表 */ }; const float calibration_table[20]; // 校准系数4.显示与界面数据// 显示缓冲区 uint16_t lcd_frame_buffer[320*240]; // LCD显存 uint8_t led_matrix[8][8]; // LED点阵数据 // 字符与图形 const char menu_items[5][20]; // 菜单项文本 uint8_t bitmap_data[1024]; // 位图数据5.实时控制系统数据// 控制算法数据 float pid_error[3]; // PID误差记录 motor_position_t trajectory[100]; // 运动轨迹 // 采样与滤波 uint32_t encoder_counts[4]; // 编码器计数值 float current_samples[100]; // 电流采样STM32中的特殊考虑1.内存分段放置// 指定数组存放位置 (链接脚本中定义) uint8_t __attribute__((section(.ccmram))) fast_buffer[512]; // CCM RAM const uint8_t __attribute__((section(.rodata))) lookup_table[256]; // 只读段2.对齐要求// DMA通常需要字对齐 uint32_t __attribute__((aligned(4))) dma_buffer[128]; // 缓存行对齐优化性能 uint8_t __attribute__((aligned(32))) cache_aligned_data[1024];3.静态分配优势无动态内存管理开销 - 适合实时系统编译时确定大小 - 可预测的内存使用更少的运行时错误 - 无内存泄漏/碎片化选择建议使用数组的场景数据大小在编译时已知且固定需要频繁访问的缓冲区实时性要求高的中断服务程序避免动态内存管理的系统使用指针的场景数据大小在运行时确定需要灵活的内存管理传递数据到不同函数避免大数组拷贝动态数据结构链表、树等STM32最佳实践// 优先使用静态数组 #define BUFFER_SIZE 256 static uint8_t local_buffer[BUFFER_SIZE]; // 文件内使用 // 需要传递时使用指针参数 void process_data(uint8_t *data, uint32_t length); // 大数组放置在合适的内存区域 __attribute__((section(.dtcm))) uint32_t critical_buffer[1024]; // TCM内存性能影响数组访问编译时可计算偏移通常更快指针访问需要间接寻址可能有额外开销缓存友好性数组的连续内存更利于缓存预取在STM32嵌入式开发中由于内存有限且实时性要求高大多数情况下推荐使用静态数组除非确实需要动态内存分配。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

优化外贸网站公司网站推广

有效使用页面对象 1. 页面对象简介 在自动化测试中,为了遵循DRY(Don’t Repeat Yourself)原则,我们可以将经常复用的通用代码集中存放在一个地方,以便重复调用。在Selenium的世界里,这些定义被称为页面对象(Page Objects)。 不过,“页面对象”这个名称不太准确,它…

张小明 2026/1/3 5:00:59 网站建设

建网站哪家好新闻建筑公司企业愿景文案平台

整体代码示例 首先,为了简化,我们让服务层就是简单的类,然后使用Id查找用户,这个和之前测试UserService接口不太一样哦:​​​​​​ Service   public class UserService {       Autowired    private…

张小明 2026/1/6 8:11:27 网站建设

社区类网站建设的例子uc浏览器免费下载

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个适合新手理解的时间戳教学工具,要求:1. 可视化展示时间戳原理;2. 提供逐步交互式学习引导;3. 包含常见编程语言的时间戳代码…

张小明 2026/1/6 3:27:53 网站建设

商城网站制作公司地址我们做网站 老公弟弟也跟着做

Feather图标库TypeScript转型指南:从无类型到类型安全的优雅升级 【免费下载链接】feather 项目地址: https://gitcode.com/gh_mirrors/fea/feather 在现代前端开发生态中,TypeScript已经成为提升代码质量和团队协作效率的标配工具。当我们面对像…

张小明 2026/1/6 1:30:20 网站建设

手机网站js特效公司手机网站模板

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2026/1/2 19:17:27 网站建设

wordpress局域网建站网站业务怎么做

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 设计一个极简但高效的Xshell一键安装配置工具,要求:1. 将完整安装流程压缩到3分钟内;2. 集成常用插件(如Xftp)&#xff1…

张小明 2026/1/4 15:47:09 网站建设