Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Place data from .uicrREGOUT0 into UICR.REGOUT0 flash word. #139

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions linker/nrf52833.ld
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,16 @@ MEMORY

/** Location in UICR where mbr params page address is stored. */
UICR_MBR_PARAM_PAGE(r) : ORIGIN = 0x10001018, LENGTH = 0x04

/** Location in UICR of REGOUT0 (used to set voltage levels for VCC at boot)
*
* IMPORTANT NOTE: This controls the voltage provided on the VCC output of the CPU. Changing this value from the default
* can physically damage parts on your board. If using a SWD debugger you should consider connecting the Vref input
* for that debugger to the VCC rail. Think carefully before using this feature.
* Example usage:
* __attribute__ ((section(".uicrREGOUT0"))) volatile uint32_t m_uicr_regout0 = 0xfffffff4;
*/
UICR_REGOUT0(r) : ORIGIN = 0x10001304, LENGTH = 0x04
}

SECTIONS
Expand Down Expand Up @@ -74,6 +84,12 @@ SECTIONS
KEEP(*(.uicrMbrParamsPageAddress))
} > UICR_MBR_PARAM_PAGE

/* Write REGOUT0 in UICR. */
.uicrREGOUT0 :
{
KEEP(*(.uicrREGOUT0))
} > UICR_REGOUT0

.dbl_reset(NOLOAD) :
{

Expand Down
16 changes: 16 additions & 0 deletions linker/nrf52840.ld
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,16 @@ MEMORY

/** Location in UICR where mbr params page address is stored. */
UICR_MBR_PARAM_PAGE(r) : ORIGIN = 0x10001018, LENGTH = 0x04

/** Location in UICR of REGOUT0 (used to set voltage levels for VCC at boot)
*
* IMPORTANT NOTE: This controls the voltage provided on the VCC output of the CPU. Changing this value from the default
* can physically damage parts on your board. If using a SWD debugger you should consider connecting the Vref input
* for that debugger to the VCC rail. Think carefully before using this feature.
* Example usage:
* __attribute__ ((section(".uicrREGOUT0"))) volatile uint32_t m_uicr_regout0 = 0xfffffff4;
*/
UICR_REGOUT0(r) : ORIGIN = 0x10001304, LENGTH = 0x04
}

SECTIONS
Expand Down Expand Up @@ -81,6 +91,12 @@ SECTIONS
KEEP(*(.uicrMbrParamsPageAddress))
} > UICR_MBR_PARAM_PAGE

/* Write REGOUT0 in UICR. */
.uicrREGOUT0 :
{
KEEP(*(.uicrREGOUT0))
} > UICR_REGOUT0

.dbl_reset(NOLOAD) :
{

Expand Down