硬汉嵌入式论坛

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

使用了__at指令,复位后全局变量异常

[复制链接]

4

主题

6

回帖

18

积分

新手上路

积分
18
发表于 2025-4-28 11:45:03 | 显示全部楼层 |阅读模式
我使用了const u8 plc_programCodeBuf[34000] __at (0x08080000);

只要对0x08080000这个地址开始的段进行擦除,复位以后

    0x20000000   COMPRESSED   0x00000180   Data   RW           18    .data               key.o
    0x20000180   COMPRESSED   0x0000000c   Data   RW         1959    .data               stm32f4xx_hal.o
    0x2000018c   COMPRESSED   0x00000004   Data   RW         3591    .data               system_stm32f4xx.o
    0x20000190   COMPRESSED   0x00000012   Data   RW         3673    .data               plc_com.o
    0x200001a2   COMPRESSED   0x00000006   PAD
    0x200001a8   COMPRESSED   0x00000090   Data   RW         4339    .data               ladder.o
    0x20000238   COMPRESSED   0x0000000a   Data   RW         6190    .data               plc_io.o
    0x20000242   COMPRESSED   0x00000002   PAD
    0x20000244   COMPRESSED   0x00000010   Data   RW         6241    .data               bsp_timer.o
    0x20000254   COMPRESSED   0x00000030   Data   RW         6349    .data               plc_timer.o
    0x20000284        -       0x00000048   Zero   RW          289    .bss                adc.o
    0x200002cc        -       0x00000048   Zero   RW          386    .bss                tim.o
    0x20000314        -       0x00000198   Zero   RW          438    .bss                usart.o
    0x200004ac        -       0x00000020   Zero   RW         1103    .bss                stm32f4xx_hal_flash.o
    0x200004cc        -       0x00000021   Zero   RW         6186    .bss                plc_io.o
    0x200004ed   COMPRESSED   0x00000003   PAD
    0x200004f0        -       0x00000030   Zero   RW         6240    .bss                bsp_timer.o
    0x20000520        -       0x00000060   Zero   RW         6779    .bss                c_w.l(libspace.o)
    0x20000580        -       0x00000200   Zero   RW            2    HEAP                startup_stm32f429xx.o
    0x20000780        -       0x00000400   Zero   RW            1    STACK               startup_stm32f429xx.o
    0x20000b80   COMPRESSED   0x00000480   PAD
    0x20001000        -       0x000081b0   Zero   RW         3668    .ARM.__AT_0x20001000  plc_com.o
    0x200091b0        -       0x00001e98   Zero   RW         3669    .bss                plc_com.o

上面红色字体的地址的全局变量就会被错误地初始化为0XFF,正常应该都为0。剩下的初始化正常。
有没有遇到过类似问题的来解答一下?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2025-4-29 11:40:47 | 显示全部楼层
这种问题确实没遇到过。不行的话,设置到Flash末尾扇区试试。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-10 07:23 , Processed in 0.270832 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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