硬汉嵌入式论坛

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

[STM32H7] STM32H745移植STemwin卡死在GUI_Init()函数里

[复制链接]

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-7-1 16:43:23 | 显示全部楼层 |阅读模式
本帖最后由 回归杀手 于 2021-7-2 15:17 编辑

在STM32H745平台上进行STemwin的应用开发,使用官方例程自带的固件库,库文件版本如下图所示
版本.JPG 版本2.JPG
在STM32H745的m7核上运行该版本的STemwin没有问题,但是在M4核上运行就报寄存器错误,如下图所示
CM7.JPG CM4报错.JPG
猜测为H7官方固件库内自带的STemwin不支持M4核,于是把STemwin库版本更换为STemWin532_CM4_OS_Keil.lib,编译可以通过,LCD驱动程序验证没有问题,CRC校验函数也打开了,但是程序运行至GUI_Init()时卡死了,执行不过去,如下图所示
捕获.PNG 捕获1.PNG
更换多个STemwin固件库版本均出现同样的问题,请各位大神指点


评分

参与人数 1金币 +20 收起 理由
cntlis + 20 遇到同样问题!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107137
QQ
发表于 2021-7-2 15:40:20 | 显示全部楼层
用MDK安装目录的emWin试试,如果也有问题,说明地址移植有bug
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2021-7-3 16:08:37 | 显示全部楼层
eric2013 发表于 2021-7-2 15:40
用MDK安装目录的emWin试试,如果也有问题,说明地址移植有bug

地址移植有bug,是指什么?
我在移植的过程中也遇到了同样的问题M7核支持,M4核不行。H7官方固件库自带的5.44版本的stemwin。高手指点一下!
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2021-7-3 17:06:22 | 显示全部楼层
eric2013 发表于 2021-7-2 15:40
用MDK安装目录的emWin试试,如果也有问题,说明地址移植有bug

“地址移植有bug”指的是啥?遇到同样问题.
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2021-7-3 17:12:12 | 显示全部楼层
eric2013 发表于 2021-7-2 15:40
用MDK安装目录的emWin试试,如果也有问题,说明地址移植有bug

MDK下的emwin库没有找到支持H7的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107137
QQ
发表于 2021-7-3 19:11:41 | 显示全部楼层
cntlis 发表于 2021-7-3 16:08
地址移植有bug,是指什么?
我在移植的过程中也遇到了同样的问题M7核支持,M4核不行。H7官方固件库自带的 ...

地址移植 = 程序移植,写错了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107137
QQ
发表于 2021-7-3 19:13:21 | 显示全部楼层
回归杀手 发表于 2021-7-3 17:12
MDK下的emwin库没有找到支持H7的。

那个M4的lib就是供M4和M7用的,他们没有单独列出一个M7的。
回复

使用道具 举报

6

主题

32

回帖

50

积分

初级会员

积分
50
发表于 2021-7-4 18:55:34 | 显示全部楼层
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2021-7-12 11:46:54 | 显示全部楼层
eric2013 发表于 2021-7-3 19:13
那个M4的lib就是供M4和M7用的,他们没有单独列出一个M7的。

为什么H7的官方固件库里带的STemWin_CM7_OS_wc16_ot.a的库为何加载到CM4核下编译会出寄存器错误呢?
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2021-7-12 11:47:17 | 显示全部楼层
eric2013 发表于 2021-7-3 19:13
那个M4的lib就是供M4和M7用的,他们没有单独列出一个M7的。

为什么H7的官方固件库里带的STemWin_CM7_OS_wc16_ot.a的库为何加载到CM4核下编译会出寄存器错误呢?
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2021-7-12 11:47:34 | 显示全部楼层
lixin91985 发表于 2021-7-4 18:55
看这里。http://www.armbbs.cn/forum.php?mod=viewthread&tid=96824&extra=

为什么H7的官方固件库里带的STemWin_CM7_OS_wc16_ot.a的库为何加载到CM4核下编译会出寄存器错误呢?
回复

使用道具 举报

19

主题

72

回帖

129

积分

初级会员

积分
129
发表于 2021-7-12 13:14:45 | 显示全部楼层
M4核里面使用H7核的STemwin库是不合适的。建议你直接下载M4核对应的STemwin库。

方法:STM32CubeMX可以下载F4的包,

C:\Users\Administrator\STM32Cube\Repository\STM32Cube_FW_F4_V1.26.1\Middlewares\ST\STemWin\Lib





回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107137
QQ
发表于 2021-7-13 00:15:54 | 显示全部楼层
cntlis 发表于 2021-7-12 11:46
为什么H7的官方固件库里带的STemWin_CM7_OS_wc16_ot.a的库为何加载到CM4核下编译会出寄存器错误呢?

带字母ot是特别优化版,估计是ST做特别优化了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107137
QQ
发表于 2021-7-13 00:16:25 | 显示全部楼层
血染风采2017 发表于 2021-7-12 13:14
M4核里面使用H7核的STemwin库是不合适的。建议你直接下载M4核对应的STemwin库。

方法:STM32CubeMX可以 ...

对,最好用M4的
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2021-7-19 14:52:54 | 显示全部楼层

推荐的方法都试了还是不行,你们用H7单片机的CM4核移植过吗?别纸上谈兵呀!
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2021-7-19 15:00:21 | 显示全部楼层

帖子里说了H7的库放到CM4内核工程里就报错误,把F4系列的库放到H7的M4内核下编译通过,但是运行出错。
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2021-7-19 15:05:58 | 显示全部楼层
eric2013 发表于 2021-7-3 19:13
那个M4的lib就是供M4和M7用的,他们没有单独列出一个M7的。

H7里边有两个核心,官方库里的是给CM7核用的,CM4核编译后会出错,M7核比M4核的寄存器不一样。需要官方出一个支持CM4核的lib库文件
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107137
QQ
发表于 2021-7-19 15:44:47 | 显示全部楼层
cntlis 发表于 2021-7-19 15:00
帖子里说了H7的库放到CM4内核工程里就报错误,把F4系列的库放到H7的M4内核下编译通过,但是运行出错。

那不太正常,大概率是没有移植好。

另外也有可能是双核使用上有什么需要特别注意,看看是没有注意到。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 04:18 , Processed in 0.255761 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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