嵌入式技术william hill官网
直播中

世态薄凉

9年用户 1195经验值
私信 关注
[问答]

STM32H743进行RTT的emwin移植报错是何原因

基于正点原子的阿波罗H743进行RTT的emwin移植。

屏幕是RGB屏幕,DMA控制,数据放在SDRAM,这部分单独测试没问题。

emwin数据也是存放在SDRAM。

基于正点原子的教程进行移植。

库是用的ST提供的libSTemWin_CM7_OS_wc16.a,非OS也测试过,也是不行。

执行过程中,执行到 GUI_Init(),在完成LDTC的初始化后,执行其他代码会出现系统崩溃的情况,调试信息如下。

请各位大神帮忙分析分析原因,谢谢!

因为emwin并非开源,所以我很难分析源代码进行原因排除。

回帖(6)

贾永世

2022-8-11 09:42:56
肯定是内存问题,不用去跟踪 emwin的源码,sdram 初始化到 heap 的部分内存和你分给 emwin 缓存的部分内存可能存在重复的。把你所有使用 sdram 分配的内存部分代码核查一遍,是不是有类似如下代码
#define LCD_LAYER0_FRAME_BUFFER  EXT_SDRAM_BEGIN
#define LCD_LAYER1_FRAME_BUFFER  (LCD_LAYER0_FRAME_BUFFER + XSIZE_PHYS * YSIZE_PHYS * 2 * NUM_VSCREENS * NUM_BUFFERS)
这种直接定义一个内存地址的方式。或者其它使用 attribute 等指定内存分配方式。
这些都和内存堆冲突了
举报

贾飞小

2022-8-11 09:43:03
就当成普通 Hardfault 来查就行了。
举报

申换换

2022-8-11 09:43:11
这个错误貌似程序跑飞可能性比较多些,单步调试一下看看程序执行到哪里后跑飞的,然后再排查程序跑飞的问题。
举报

世态薄凉

2022-8-11 09:43:22
emwin不是开源的库,而跑飞的原因正式执行了GUI_Init(),所以我才没办法具体分析哩!
举报

申换换

2022-8-11 09:43:30
加大给emwin的分配的内存,但是要根据你片子的大小定,别不改就拿来用,很容易挂掉的
举报

韩刚龙

2022-8-11 09:43:37
不用去关心emwin内部,应该就是内存对接的时候出的问题,按照hardfault去排除问题,很快就出来了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分