快速上手STM32MP13裸跑应用程序
本帖最后由 STM新闻官 于 2024-4-23 18:27 编辑很多嵌入式应用中,既需要Arm Cortex-A 核的高主频高算力,又需要裸跑带来的实时性,如PLC、运动控制器、伺服驱动、音频处理器等。如何解决这些系统应用的硬实时需求?答案是在Arm Cortex-A核MPU上裸跑应用程序。因为,不是高性能MCU用不了,而是STM32MP13更有性价比。如何快速上手STM32MP13裸跑应用程序,像MCU一样开发调试您的代码?观看下方视频
STM32MP13 Bare Metal 开发包STM32MP13 Bare Metal 开发包包含两部分:
STM32CubeMP13 PackageSTM32CubeMP13 开发包运行在Arm® Cortex®-A7 处理器上,由以下三部分组成:
[*]Level 0:驱动程序,包含HAL,LL,BSP
[*]Level 1:中间件,包含Eclipse ThreadX(原AzureRTOS),USB Host & Device库
[*]Level 2:板级示例程序
除此之外,还包括两个通用组件CMSIS和实用工具。https://mmbiz.qpic.cn/mmbiz_png/3Cvt7bnId9nShdnIXEWQK4dkNDXFlGOpfuKznO58bibicopicHunPFicNMvg1H1dscjCw9GPrReZfLtyk31GOaBa4w/640?wx_fmt=png&from=appmsg
▲ 图示:源码目录结构
已支持的HAL drivers
[*]ADC,BSEC,CRC,CRYP (including SAES),DCMIPP,DDR,DFSDM,DMA,DTS,ETH,ETZPC,EXTI,FDCAN,FMC_NAND,GPIO,HASH,I2C,I2S,IWDG,LPTIM,LTDC,MCE,MDMA,PKA,PWR,XSPI (QSPI replaced with XSPI),RCC,RNG,RTC (including TAMP),SAI,SDMMC (including EMMC),SMARTCARD,SPDIFRX,SPI,TIM,UART,USART,USB
已支持的 LL drivers
[*]ADC,DMA/DMAMUX,EXTI,ETZPC,GPIO,I2C,LPTIM, MDMA,PWR,RCC & BUS,RTC,SPI,TIM,USART
BSP与BSP组件
[*]基于HAL封装了更高一级的API,为LED、按钮、相机、LCD、SD卡和COM端口提供API,包含了以下一些外围器件的驱动:GC2145, LAN8742, MCP23x17, RK043FN48H, STMIPID02
中间件程序
[*]包含一系列支持某种服务的库文件及接口文件,已支持:Eclipse ThreadX(原AzureRTOS),STM32_USB_Device_Library,STM32_USB_Host_Library
项目工程
[*]Examples:基于HAL接口的简单示例,没有中间件功能。
[*]Applications:较完整的工程应用实例,包含中间件功能 。
[*]External_Loader: 烧录镜像及从外部存储器启动的应用示例。
Template: 板级工程应用框架。
实用工具
[*]Imageheader:用于添加stm32头,支持存储设备启动。
[*]Fonts:提供了一组用于显示的标准字体,包括font8,font12,font16,font20,font24
请访问:STM32MP13裸跑实操文档
好消息:IAR 9.50可以支持MP13的裸跑开发!
阅读原文
查看更多
我就喜欢裸跑,效率高 在调试过程中,可以监视内存的变化情况,查看变量的值是否正确存储和修改。这对于排查内存相关的问题非常有帮助 STM32MP13上电后,首先执行的是引导加载程序
针对不同的开发环境和芯片架构,需要选择合适的编译器。对于STM32MP13,通常使用ARM Cortex-A系列的编译器
由于没有操作系统的支持,我们就需要直接操作STM32MP13的寄存器来控制硬件设备
虽然STM32MP13具有较大的内存空间,但在裸跑应用中,需要自己管理内存的分配和释放
利用调试工具设置断点,可以在程序执行到特定位置时暂停执行,方便开发者查看寄存器的值、内存的内容以及程序的执行流程
页:
[1]