硬汉嵌入式论坛

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

[emWin] emWin的变量GUI_PID_STATE State不可以设置为局部变量,容易硬件异常

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2020-9-23 00:43:38 | 显示全部楼层 |阅读模式

准备规范下代码,发现设置为局部变量后直接硬件异常了。

按说这个函数是把变量存到FIFO里面的。

后面再看看怎么回事。
回复

使用道具 举报

21

主题

481

回帖

544

积分

金牌会员

积分
544
发表于 2020-9-23 09:03:17 | 显示全部楼层
详细是什么情况?我一直用的局部变量,没发现问题。理论上读写FIFO是值拷贝,不是指针,应该没问题
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2020-9-23 09:45:55 | 显示全部楼层
本帖最后由 id写在烟上 于 2020-9-23 10:40 编辑

typedef struct {
  int x,y;
  U8  Pressed;
  U8  Layer;
} GUI_PID_STATE;


做局部变量时。要注意里面未用到的layer变量要赋值,不然直接fault,我测试的时候好久才发现这个bug
截图00.bmp

评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
 楼主| 发表于 2020-9-23 12:21:19 | 显示全部楼层
id写在烟上 发表于 2020-9-23 09:45
typedef struct {
  int x,y;
  U8  Pressed;

对,貌似还真是这个问题,应该给他赋个初值,下午了我试试。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
 楼主| 发表于 2020-9-23 12:22:09 | 显示全部楼层
h_007 发表于 2020-9-23 09:03
详细是什么情况?我一直用的局部变量,没发现问题。理论上读写FIFO是值拷贝,不是指针,应该没问题

作为布局变量的话,初始化此结构体为0貌似可解决。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-17 01:16 , Processed in 0.042068 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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