如何设置配置位 EZBL 引导加载程序项目?

How do you set config bits EZBL bootloader project?

我需要更改 EZBL 引导加载程序项目中的配置位。

我可以编译它,版本 2.11 和 MPLAB X ide 5.4

问题是配置位完全错误,如果我在 mplab ide 中修改它们,它们在重新编译后会变成旧值。这意味着配置位以编程方式设置或在项目中设置。

那么,如何更改项目中的配置位?

您可以在源代码中这样做:

/*Config1*/
#pragma config FEXTOSC  = OFF
#pragma config RSTOSC   = HFINT32
#pragma config CLKOUTEN = OFF
...

查看文件pic_chipinfo.html您的控制器中有哪些配置位

好的,经过一些尝试,我明白了。

在 ezbl 中,这些位使用 EZBL_SET_CONF 在您设备使用的文件夹“硬件初始化程序”的右侧文件中更改。

例如,对于我的设备 PIC24J256GB406,文件是 pic24j256gb410_explorer_16.c

里面的文件你可以看到

*EZBL_SET_CONF(_FSEC, BWRP_OFF & BSS_OFF & BSEN_OFF & GWRP_OFF & GSS_OFF & CWRP_OFF & CSS_DIS & AIVTDIS_DISABLE)
EZBL_SET_CONF(_FOSCSEL, FNOSC_FRC & PLLMODE_PLL96DIV2 & IESO_OFF)
EZBL_SET_CONF(_FOSC, POSCMOD_XT & OSCIOFCN_ON & SOSCSEL_ON & PLLSS_PLL_PRI & IOL1WAY_OFF & FCKSM_CSECME)
EZBL_SET_CONF(_FWDT, WDTPS_PS1024 & FWPSA_PR32 & FWDTEN_SWON & WINDIS_OFF & WDTWIN_PS75_0 & WDTCMX_LPRC & WDTCLK_LPRC)
EZBL_SET_CONF(_FPOR, BOREN_ON & LPCFG_ON)
EZBL_SET_CONF(_FICD, ICS_PGx2 & JTAGEN_OFF & BTSWP_ON)
EZBL_SET_CONF(_FDS, DSWDTPS_DSWDTPS0D & DSWDTOSC_LPRC & DSBOREN_ON & DSWDTEN_ON)
EZBL_SET_CONF(_FDEVOPT1, ALTCMPI_DISABLE & TMPRPIN_OFF & TMPRWIPE_OFF & ALTVREF_ALTVREFDIS)

所有不同的配置寄存器和标志来改变它们。

您不能使用其他答案中评论的 pragma 方式,因为它不会导出到使用引导加载程序的项目所需的 .s 文件。