硬汉嵌入式论坛

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

[有问必答] 函数指针初始化为0,复位后却不为0??

[复制链接]

45

主题

70

回帖

205

积分

高级会员

积分
205
发表于 2021-4-19 15:44:15 | 显示全部楼层 |阅读模式
本帖最后由 chinashaoshu 于 2021-4-19 15:49 编辑

背景:芯片为stm32f407igt6,作为applicaiton程序,偏移了0x20000.
我定义了个数据结构,然后在全局数组里初始化,这里设置.HOOK=0,但是系统复位后,查看此全局数组中,的alarm_obj[3].Hook 不等于0,有图有真相。
  1. typedef void (*AlmProc_Hook)(uint8_t  Action);

  2. struct alarm_node
  3. {
  4.     uint16_t *a;            
  5.     uint16_t *b;            
  6.     uint8_t  *c;            
  7.     uint16_t d;              
  8.     uint8_t  e;              
  9.     uint8_t  f;              
  10.     uint8_t  g;              
  11.     uint8_t  h;              
  12.     uint8_t  i;              
  13.     uint8_t  g;              
  14.     uint8_t  h;              
  15.     AlmProc_Hook *Hook;      
  16.     rt_slist_t list;         
  17. };

  18. #define node_xx(status,flag,bit,prio,act,alm_name)  \
  19. {                                                        \
  20.     .a   = &(status),                           \
  21.     .b   = &(flag),                             \
  22.     .c  = 0,                                   \
  23.     .d        = bit,                                 \
  24.     .f      = TIME_THR_RELAY,                      \
  25.     .g     = prio,                                \
  26.     .h      = ALM_POSI_PFC,                        \
  27.     .i      = alm_name,                            \
  28.     .h       = act,                                 \
  29.     .Hook         = NULL,                                \
  30. }

  31. #define node_1   node_xx(STA1,PFC_ALM_FLAG1,Index1, 2,0,1)                   
  32. #define node_2   node_xx(STA1,PFC_ALM_FLAG1,Index2, 3,0,2)                 

  33. alarm_node_t alarm_obj[] = {//要处理的告警项
  34.         node_1,
  35.         node_2,
  36.         node_3,
  37.         node_4,
  38.         ....
  39. };
复制代码


可以看到此时Hook =0x00000001,此时优化等级为0。当我把优化等级改为2时,就正常了。如图。然后在修改为0,也没事了。

问问群里大神么,这是怎么回事,是不是需要有什么需要注意的,我还不知道,请大佬提示提示我







配置.bmp
优化等级2.bmp
优化等级0.bmp
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2021-4-20 08:42:16 | 显示全部楼层
你咨询是这个问题的意思吗

MDK AC5和AC6设置变量不初始化注意事项
https://forum.anfulai.cn/forum.p ... 6095&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

45

主题

70

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2021-4-20 14:22:35 | 显示全部楼层
eric2013 发表于 2021-4-20 08:42
你咨询是这个问题的意思吗

MDK AC5和AC6设置变量不初始化注意事项

我就是奇怪 我用全局数组中赋值的方式初始化为0了,上电复位后,成1了。就感觉很奇怪,想问问有什么需要注意的。。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-16 13:51 , Processed in 0.038821 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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