单片机反汇编 2023-01-16 23:36 采纳率: 15.4%
浏览 23

MPLAB X IDE 定义变量不被初始化

使用MPLAB X IDE 6.00版本,XC8编译器,芯片使用 PIC18F452

定义一个数组复位后,单片机会运行一端代码,将这个数组 清0

现在需要 开机不运行这个清0代码,数组数值保持原样 该怎么做?

再问一个PIC18C452只能烧写一次吗?

  • 写回答

1条回答 默认 最新

  • 流比 2023-01-16 23:52
    关注

    MPLAB X IDE 中,可以使用 #pragma data 定义变量不被初始化。例如:

    #pragma data _CONFIG1H, _IESO_OFF & _FCMEN_OFF & _OSC_HS
    #pragma data _CONFIG2L, _PUT_OFF & _BODEN_OFF & _BODENV_2_0V
    #pragma data _CONFIG2H, _WDT_OFF & _WDTPS_1x
    #pragma data _CONFIG3H, _MCLRE_OFF & _LPT1OSC_OFF & _PBADEN_OFF
    #pragma data _CONFIG4L, _DEBUG_OFF & _XINST_OFF & _LVP_OFF
    #pragma data _CONFIG5L, _CP0_OFF & _CP1_OFF & _CP2_OFF & _CP3_OFF
    #pragma data _CONFIG5H, _CPB_OFF & _CPD_OFF
    #pragma data _CONFIG6L, _WRT0_OFF & _WRT1_OFF & _WRT2_OFF & _WRT3_OFF
    #pragma data _CONFIG6H, _WRTC_OFF & _WRTB_OFF & _WRTD_OFF
    #pragma data _CONFIG7L, _EBTR0_OFF & _EBTR1_OFF & _EBTR2_OFF & _EBTR3_OFF
    #pragma data _CONFIG7H, _EBTRB_OFF

    或者使用 __no_init 关键字来定义变量不被初始化,例如:

    __no_init unsigned char array[10];

    关于 PIC18F452 的烧写,这个芯片是可以重复烧写的。它支持编程器烧录和串行编程。但是需要注意的是,烧写次数有限制,请遵循芯片厂商提供的烧录次数限制。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月16日