Difference between revisions of "Microcontrollers-nxp"

From Wiki at Neela Nurseries
Jump to: navigation, search
m (^ Dev Kits MCUs: - add links to NXP documents on dual-core use of LPC55S69 family parts.)
m (typo fix)
(8 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
<!-- comentario -->
 
<!-- comentario -->
  
== [[#top|^]] Dev Kits MCUs ==
+
== [[#top|^]] MCUs ==
 +
 
 +
Starting point for datasheet and user manual links to specific NXP MCU families:
 +
<ul>
 +
* https://www.nxp.com/docs/en/data-sheet/LPC11U6X.pdf
 +
* https://www.nxp.com/docs/en/nxp/data-sheets/LPC55S6x_DS.pdf  LPC55S69 datasheet.  See page 47 of 133 for course configuration register map.
 +
</ul>
 +
 
 +
An important security concern of the LPC55S69 is detailed here in an Oxide dot computer article:
 +
<ul>
 +
*  https://oxide.computer/blog/exploiting-undocumented-hardware-blocks-in-the-lpc55s69
 +
</ul>
 +
 
 +
<!-- comentario -->
 +
 
 +
== [[#top|^]] Development Kits ==
  
 
Development kit for the LPC55S69 MCU intro page at https://www.nxp.com/document/guide/getting-started-with-the-lpc55s69-evk-evaluation-board:GS-LPC55S69-EVK.  From here a couple of useful further documents or chapters to this effective users' manual are . . . reached by clicking once on left pane navigation links, which load content into a right hand pane of the above linked manual.  In the page on multi-core examples and use there are external links to some important application notes including:
 
Development kit for the LPC55S69 MCU intro page at https://www.nxp.com/document/guide/getting-started-with-the-lpc55s69-evk-evaluation-board:GS-LPC55S69-EVK.  From here a couple of useful further documents or chapters to this effective users' manual are . . . reached by clicking once on left pane navigation links, which load content into a right hand pane of the above linked manual.  In the page on multi-core examples and use there are external links to some important application notes including:
Line 19: Line 34:
 
*  https://www.nxp.com/docs/en/application-note/AN12358.pdf  LPC55xx/LPC55Sxx Dual-Core Debug in MCUXpresso
 
*  https://www.nxp.com/docs/en/application-note/AN12358.pdf  LPC55xx/LPC55Sxx Dual-Core Debug in MCUXpresso
 
*  https://community.nxp.com/t5/Blogs/LPC55xx-Multicore-Applications-with-MCUXpresso-IDE/ba-p/1130891  LPC55xx Multicore Applications with MCUXpresso IDE
 
*  https://community.nxp.com/t5/Blogs/LPC55xx-Multicore-Applications-with-MCUXpresso-IDE/ba-p/1130891  LPC55xx Multicore Applications with MCUXpresso IDE
 +
A link to download multi-core document:
 +
*  https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/blog/379/1/LPC55xx_Multicore_v1.00.pdf
 +
 +
Schematic files for LPC55S69-EVK at this link, but requires NXP user account and login:
 +
 +
*  https://www.nxp.com/design/development-boards/lpcxpresso-boards/lpcxpresso55s69-development-board:LPC55S69-EVK
  
  
Line 41: Line 62:
  
 
== [[#top|^]] NXP Bootloading ==
 
== [[#top|^]] NXP Bootloading ==
 +
 +
NXP's document on their built-in ROM based bootloader:
 +
 +
*  https://www.nxp.com/docs/en/reference-manual/MCUBOOTRM.pdf
 +
 +
 +
Some NXP community forum posts:
 +
 +
*  https://community.nxp.com/t5/MCU-Bootloader/Entry-and-Exit-of-ROM-Bootloader-MKE18F-MCUXpresso/m-p/905906
  
 
*  https://community.nxp.com/t5/NXP-Designs/Bootloader-and-ISP-for-LPC55S69/m-p/1061246
 
*  https://community.nxp.com/t5/NXP-Designs/Bootloader-and-ISP-for-LPC55S69/m-p/1061246
Line 155: Line 185:
 
</pre>
 
</pre>
  
 +
 +
<!-- comentario -->
 +
 +
== [[#top|^]] References ==
 +
 +
*  https://media.defcon.org/DEF%20CON%2029/DEF%20CON%2029%20presentations/Laura%20Abbott%20Rick%20Altherr%20-%20Breaking%20TrustZone-M%20-%20%20Privilege%20Escalation%20on%20LPC55S69.pdf
  
 
<!-- comentario -->
 
<!-- comentario -->

Revision as of 20:02, 1 February 2023

parent topic Microcontrollers



^ Overview

This local page to hold notes related to NXP semiconductor company, headquartered in Eindhoven, Netherlands.


^ MCUs

Starting point for datasheet and user manual links to specific NXP MCU families:

An important security concern of the LPC55S69 is detailed here in an Oxide dot computer article:


^ Development Kits

Development kit for the LPC55S69 MCU intro page at https://www.nxp.com/document/guide/getting-started-with-the-lpc55s69-evk-evaluation-board:GS-LPC55S69-EVK. From here a couple of useful further documents or chapters to this effective users' manual are . . . reached by clicking once on left pane navigation links, which load content into a right hand pane of the above linked manual. In the page on multi-core examples and use there are external links to some important application notes including:

A link to download multi-core document:

Schematic files for LPC55S69-EVK at this link, but requires NXP user account and login:


^ Technologies and Features

2022

2022


^ NXP Bootloading

NXP's document on their built-in ROM based bootloader:


Some NXP community forum posts:

How to enter NXP ROM bootloader from firmware:

Known ROM bootloader issue of NXP with no plans for fix:


^ To Sort

Microcontrollers de NXP, starting with a NXP's Line Card:

2021-07-08

And an article at Wikipedia:


How to program dual-core microcontrollers:



Not sure how useful this code example will be, it is posted in or around 2014. Hard to read on the NXP forum due to some funky formatting:

;/* File: example.s */

        .syntax unified             /* this makes the assembler automatically generate IT instructions for you */

        .cpu    cortex-m0           /* this selects the cortex-m0 architecture and helps you avoid using cortex-m3/cortex-m4 instructions */

        .text                       /* this makes sure the code goes into the .text section */

        .global m0vectors

        .word   0x20004000          /* this defines the initial stack pointer for the Cortex-M0 */

        .word   m0reset             /* the reset exception vector */

/* here you should place your other exception vectors. There are too many to include in this example */

        .global m0test              /* this exports the symbol m0test, so you can reference it from for instance C */

        .func   m0test,m0test       /* this names the symbol m0test as a function (for the debug-info) */

        .type   m0test,%function    /* this tells the assembler (and linker) what kind of symbol we're generating */

        .thumb_func                 /* this is necessary if pointers use the symbol */

        .align                      /* this makes sure the code is positioned on a 16-bit boundary */

m0test:                             /* this defines the actual symbol */

        ldr     r0,=0x01234567      /* example code, load a value into r0 */

        bx      lr                  /* return to the calling function */

m0reset:

        bl      m0test              /* this is the startup-code, call our function */

lockup: wfi                         /* sleep the CPU; it'll wake up if an interrupt occurs */

         b       lockup              /* go back to sleep */

        .size   m0test, . - m0test  /* this tells the linker how big this function is, so it can correctly exclude it if it's unused */

        .endfunc                    /* this marks the end of the function (for the debug-info) */

You can then refer to the code from your C file...

/* File: main.c */

#include <ipc_queue.h>

/* Note: you don't need argc and argv on a microcontroller. */

int main(int argc, const char *argv[])

{

     IPC_haltSlave();

     SET_SLAVE_SHADOWREG(m0vectors);

     IPC_startSlave();

     while(1)

     {

          asm volatile("wfi");

     }

     return(0);

}


^ References




- - - top - - -