Difference between revisions of "Microcontrollers-nxp"

From Wiki at Neela Nurseries
Jump to: navigation, search
m (clean up.)
m (^ MCUs: - minor formatting)
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
parent topic [[Microcontrollers|Microcontrollers]]
 
parent topic [[Microcontrollers|Microcontrollers]]
  
 +
 +
__TOC__
  
  
 
== [[#top|^]] Overview ==
 
== [[#top|^]] Overview ==
 +
 +
This local page to hold notes related to NXP semiconductor company, headquartered in Eindhoven, Netherlands.
 +
 +
<!-- comentario -->
 +
 +
== [[#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>
 +
 +
A related article from 0xide company (Oxide company spelled for searchability) regarding LPC55S69 undocumented features:
 +
<ul>
 +
*  https://www.youtube.com/watch?v=eKKgaGbcq4o
 +
</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:
 +
 +
*  https://www.nxp.com/docs/en/application-note/AN12282.pdf  LPC55S69 multi-core DSP capabilities
 +
*  https://www.nxp.com/docs/en/application-note/AN12335.pdf  LPC55xx/LPC55Sxx Dual Core Communication
 +
*  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
 +
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
 +
  
 
<!-- comentario -->
 
<!-- comentario -->
Line 11: Line 53:
 
<ul>
 
<ul>
 
0721
 
0721
 +
*  http://www.nxp.com/docs/en/application-note/AN2708.pdf  intro to External Bus Interface EBI
  
http://www.nxp.com/docs/en/application-note/AN2708.pdf  intro to External Bus Interface EBI
+
https://www.nxp.com/docs/en/user-guide/DSP56F827EVMUM.pdf DSP56F827 evaluation board
 +
</ul>
 +
 
 +
2022
 +
<ul>
 +
0721
 +
*  https://www.digikey.com/en/products/detail/nxp-usa-inc/LPC3250FET296-01K/13540936   MCU LPC3250FET296
 
</ul>
 
</ul>
  
 
<!-- comentario -->
 
<!-- comentario -->
  
== [[#top|^]] Specific MCUs ==
+
== [[#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:
  
2022
+
*  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
 +
 
 +
How to enter NXP ROM bootloader from firmware:
 +
*  https://community.nxp.com/t5/LPC-Microcontrollers/How-can-I-boot-to-LPC55-to-BOOT-ROM-from-firmware-code-Previous/td-p/1078635
 
<ul>
 
<ul>
0721
+
Solution on github, written in rust language?  Need to confirm this . . .
*  https://www.digikey.com/en/products/detail/nxp-usa-inc/LPC3250FET296-01K/13540936  MCU LPC3250FET296
+
*  https://github.com/lpc55/lpc55-hal/pull/51/files
 +
*  https://github.com/lpc55/lpc55-hal
 
</ul>
 
</ul>
 +
 +
Known ROM bootloader issue of NXP with no plans for fix:
 +
*  https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S69-ROM-bootloader-hangs-if-Flash-operations-are/m-p/1212531
  
 
<!-- comentario -->
 
<!-- comentario -->
Line 123: Line 188:
  
 
}
 
}
 +
</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 -->
  
  
</pre>
+
__TOC__
 +
 
 +
 
 
<center>
 
<center>
 
[[#top|- - - top - - -]]
 
[[#top|- - - top - - -]]
 
</center>
 
</center>

Latest revision as of 19:57, 15 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:

A related article from 0xide company (Oxide company spelled for searchability) regarding LPC55S69 undocumented features:


^ 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 - - -