硬汉嵌入式论坛

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

[GUI] 请教下各位大神, 移植 rtx5(v5.9.0) + emwin(v6.40) 工作一会就会出现硬件错误, 而且每次出现的错误地址都会出现不同 ?

[复制链接]

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
发表于 2024-10-6 10:07:03 | 显示全部楼层 |阅读模式
本帖最后由 hpdell 于 2024-10-6 15:27 编辑



请教下各位大神, 移植 rtx5(v5.9.0) + emwin(v6.40) 工作一会就会出现硬件错误, 而且每次出现的错误地址都会出现不同 ?

编译: MDK v5.36  ac6  -O1

工作一会就会出现硬件错误 ,  看错误提示 貌似是 emwin 底层的驱动, 大家伙有没有什么比较好的解决方法呀 ?

我把 libGUI_v7m_OS1.a 放在 单片机内部 falsh 或 外部 的 qspi flash 里面运行结果都一样

emwin 动态内存我分配了 16MB , 地址从: 0xC700 0000 - 0xC800 0000

emwin-error-1.png


emwin-error-2.png


mpu 配置:

        MPU_InitStruct.Enable           = MPU_REGION_ENABLE;
        MPU_InitStruct.BaseAddress      = 0x24000000;
        MPU_InitStruct.Size             = MPU_REGION_SIZE_512KB;
        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
        MPU_InitStruct.IsBufferable     = MPU_ACCESS_BUFFERABLE;
        MPU_InitStruct.IsCacheable      = MPU_ACCESS_CACHEABLE;
        MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
        MPU_InitStruct.Number           = MPU_REGION_NUMBER0;
        MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL1;
        MPU_InitStruct.SubRegionDisable = 0x00;
        MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;
        HAL_MPU_ConfigRegion(&MPU_InitStruct);



------------------------------------------------------------------------------------------------------


        MPU_InitStruct.Enable           = MPU_REGION_ENABLE;
        MPU_InitStruct.BaseAddress      = SDRAM_BASE_ADDR;
        MPU_InitStruct.Size             = MPU_REGION_SIZE;
        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
        MPU_InitStruct.IsBufferable     = MPU_ACCESS_NOT_BUFFERABLE;
        
        MPU_InitStruct.IsCacheable      = MPU_ACCESS_CACHEABLE;
        MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
        MPU_InitStruct.Number           = MPU_REGION_NUMBER7;
        MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL1;
        
        MPU_InitStruct.SubRegionDisable = 0x00;
        MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;
        HAL_MPU_ConfigRegion(&MPU_InitStruct);



------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
如果吧 mpu 如下配置后就会直接进入硬件错误

                MPU_InitStruct.Enable           = MPU_REGION_ENABLE;
                MPU_InitStruct.BaseAddress      = 0x24000000;
                MPU_InitStruct.Size             = MPU_REGION_SIZE_512KB;
                MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
                MPU_InitStruct.IsBufferable     = MPU_ACCESS_NOT_BUFFERABLE;
                MPU_InitStruct.IsCacheable      = MPU_ACCESS_NOT_CACHEABLE;
                MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
                MPU_InitStruct.Number           = MPU_REGION_NUMBER0;
                MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL1;
                MPU_InitStruct.SubRegionDisable = 0x00;
                MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;
                HAL_MPU_ConfigRegion(&MPU_InitStruct);






























回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-10-6 11:04:03 | 显示全部楼层
MDK调试状态的fault reports贴出来看下。
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
 楼主| 发表于 2024-10-6 14:17:21 | 显示全部楼层
本帖最后由 hpdell 于 2024-10-6 18:25 编辑
eric2013 发表于 2024-10-6 11:04
MDK调试状态的fault reports贴出来看下。


你好, 错误信息如下:

emwin-error-3.png


emwin-error-4.png


emwin-error-5.png



emwin-error-6.png








回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-10-7 09:13:52 | 显示全部楼层
hpdell 发表于 2024-10-6 14:17
你好, 错误信息如下:

这个是精确的异常错误,访问这个地址的时候出错了

下载 (2).png
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
 楼主| 发表于 2024-10-7 13:55:21 | 显示全部楼层
eric2013 发表于 2024-10-7 09:13
这个是精确的异常错误,访问这个地址的时候出错了

我的 外部 sdram 没有那么大呀,

我的 sdram 总大小是 128MByte,  最大地址 是 0xC8000000  , 我给 emwin 动态分配了 16MB , 32MB 我都测试过运行不会后都会出现硬件错误, 我自己使用的 系统里 也没有一直申请内存而没有释放的操作啊,

也不知道 他的 这个 0xCA  开头的地址是怎么来的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-10-8 09:08:43 | 显示全部楼层
hpdell 发表于 2024-10-7 13:55
我的 外部 sdram 没有那么大呀,

我的 sdram 总大小是 128MByte,  最大地址 是 0xC8000000  , 我给 em ...

这个地址给的是没错的,应该是你的程序里面访问溢出了,或者有野指针。
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
 楼主| 发表于 2024-10-8 11:44:43 | 显示全部楼层
eric2013 发表于 2024-10-8 09:08
这个地址给的是没错的,应该是你的程序里面访问溢出了,或者有野指针。

我再 检查检查看看
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 18:23 , Processed in 0.043075 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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