当前位置:首页 > 内存 > 正文

正点原子stm32内存管理函数

  • 内存
  • 2024-06-11 03:08:22
  • 9791

一、stm32中memset函数在哪个头文件中包含ISO/IECC标准要求标准库函数memset必须在头文件string.h中声明。
在ISO/IECC++标准中,标准库函数std::memset必须在头文件cstring中声明。
一般来说,嵌入式环境使用C...经过搜索,我找不到任何关于stm32是否使用标准C的信息。然而,LZ可以看看string.h有没有memset声明;如果默认没有实现(否则应该包含在标准头文件中)。
====
【原答案组】
二、基础知识(STM32F4探索者)

掌握STM32F4的基础是C语言的基础知识,包括条件编译、运算符、变量作用域、聚合类型(如结构、联合和枚举)以及巧妙地使用typedef。深入了解内存架构,特别是32位AHB总线矩阵、S0-S7总线以及AHB和APB之间的桥接器至关重要。了解总线连接点如何连接内部和外部设备(例如Cortex-M4和闪存)是了解系统操作的关键。


时钟系统是STM32F4的灵魂,包括HIS、HSE、LSI、LSE和PLL等组件。在HAL库的SystemInit初始化阶段,您需要配置时钟以满足特定需求,例如使用Stm32_Clock_Init()设置PWR时钟和稳压器输出,以及串行通信和延迟等基本设置。


对于STM32F405/407/415/417Z版本,需要精细配置时钟源和分频系数,并开启Flash预取功能。多路复用器和IO映射是防止外设冲突的有力工具,GPIO配置可以实现功能复用。复位后,IO默认设置为AF0,参考表9选择合适的AF映射。ADC和DAC通常配置为模拟输入和输出,而外设的其他微控制器可能处于复用模式。使用RCC寄存器进行时钟管。请记住为每个外设启用必要的时钟。


中断管理是STM32F4的核心:Cortex-M4的中断控制器支持256个可编程中断级别,STM32F407xx有91个中断,分为16个核心中断和81个可屏蔽中断。通过调整IP寄存器,可以设置中断优先级,NVIC_SetPriorityGrouping函数用于配置优先级组。如果设置为10:8,则需要将0x5FAUL写入位31:16。


HAL库提供了强大的中断处理函数。HAL_NVIC_SetPriority用于设置单个中断的优先级,HAL_NVIC_EnableIRQ/DisableIRQ用于控制中断的使能和禁用状态。中断配置过程包括设置优先级组、外设中断优先级以及激活相关通道。


地址映射是理解硬件布局的关键。通过命名存储区域,您可以轻松跟踪和了解存储布局。根据具体的区域划分和偏移地址计算外设地址和寄存器地址。


快速入门的建议是从特定的原子教材开始,适合初学者逐步理解基本概念,而高级学习者则可以挑战野火教材,例如;FreeRTOS,提高高级技能。