硬汉嵌入式论坛

 找回密码
 立即注册
查看: 510|回复: 1
收起左侧

[STM32H7] H7奇怪的非对齐访问

[复制链接]

2

主题

26

回帖

32

积分

新手上路

积分
32
发表于 2023-9-5 17:38:56 | 显示全部楼层 |阅读模式
使用了STM32H7B0 ,裸机跑LVGL。

多次发生非对齐。
以下是cmbacktree的输出:
2001ffec    data: 00000000
====================================
===================Registers information ====================
  R0 : 002c3f03 R1 : 00000001  R2 : 20005624  R3 : 00000001
  R12: 002c40c0 LR : 08059359  PC : 080549ec  PSR: 21000000
==============================================================
Usage fault is causedby indicates that an unaligned access fault has taken place
Show more call stackinfo by run: addr2line -e \RC.axf -a -f 080549ec 08059358 0800120a


使用addr2line找到汇编调用终点是:0x080549ec

R1寄存器为数值1,cpu访问R1的数值,这里发生非对齐完全找不门路。
跟硬汉总结的非对齐案例,一一比对,都对不号。

怀疑是mpu配置问题,但这个问题位置,又跟这个好像没关系。莫不是跟汇编指令后面的#0x00有关?
各位坛友路过看到请提出宝贵意见~

附上MPU的配置。H7B0的ram是分块的,我这里没有分块,因为axi sram采用了 768000B做帧缓存,而 0x30000000又开了个巨大的heap给lvgl做malloc。

  MPU_InitStruct.Enable = MPU_REGION_ENABLE;
  MPU_InitStruct.Number = MPU_REGION_NUMBER0;
  MPU_InitStruct.BaseAddress = 0x24000000;
  MPU_InitStruct.Size = MPU_REGION_SIZE_1MB;
  MPU_InitStruct.SubRegionDisable = 0x0;
  MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL1;
  MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
  MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;
  MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
  MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;
  MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;

  HAL_MPU_ConfigRegion(&MPU_InitStruct);


  /** Initializes and configures the Region and the memory to be protected
  */
  MPU_InitStruct.Number = MPU_REGION_NUMBER2;
  MPU_InitStruct.BaseAddress = 0x30000000;
  MPU_InitStruct.Size = MPU_REGION_SIZE_128KB;
  MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;
  MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2023-9-5 17:50:47 | 显示全部楼层
H7系列的对齐问题,主要是这个。

石锤内存访问不支持非对齐是否STM32H7的硬件bug
https://www.armbbs.cn/forum.php? ... 4562&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-13 17:17 , Processed in 0.166469 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表