Difference between revisions of "ARM Cortex-M"
Jump to navigation
Jump to search
m (→Cortex-M3) |
m (Reverted edits by JasonAnderson (talk) to last revision by PhilippeTeuwen) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Misc resources for ARM Cortex-M serie |
Misc resources for ARM Cortex-M serie |
||
+ | |||
+ | ==Cortex-M0== |
||
+ | * [http://www.nxp.com/products/microcontrollers/cortex_m0_m0/#demoboards Demo boards list] |
||
+ | * LPCXpresso demoboard with LPC1227: [http://www.nxp.com/demoboard/OM13008.html OM13008] |
||
==Cortex-M3== |
==Cortex-M3== |
||
* [http://www.nxp.com/products/microcontrollers/cortex_m3/#demoboards Demo boards list] |
* [http://www.nxp.com/products/microcontrollers/cortex_m3/#demoboards Demo boards list] |
||
− | * |
+ | * LPCXpresso demoboard with LPC1347: [http://www.nxp.com/demoboard/OM13045.html OM13045] |
+ | Be careful example codes for LPC1343 won't run on LPC1347, use examples from the 13xx 12-bit ADC version: |
||
+ | /usr/local/lpcxpresso_5.1.2_2065/lpcxpresso/Examples/NXP/LPC1000/LPC13xx_12bitADC |
||
+ | If board is messed up, one can force ISP mode to enable flashing a new code by pulling pin P0_1 to GND during reset. |
||
==Cortex-M4== |
==Cortex-M4== |
||
* [http://www.nxp.com/products/microcontrollers/cortex_m4/#demoboards Demo boards list] |
* [http://www.nxp.com/products/microcontrollers/cortex_m4/#demoboards Demo boards list] |
||
− | Relatively small demoboard with Cortex M0 + Cortex M4: [http://www.nxp.com/demoboard/OM13027.html OM13027] |
+ | Relatively small demoboard with Cortex M0 + Cortex M4: [http://www.nxp.com/demoboard/OM13027.html OM13027], [http://shop.ngxtechnologies.com/product_info.php?cPath=21_37&products_id=104 Product page] |
+ | <br>It's not a LPCXpresso board but it can be programmed through LPCXpresso LPC-Link |
||
− | ==LPCXPresso== |
||
+ | |||
+ | ==LPCXpresso== |
||
+ | ===Links=== |
||
* [http://www.nxp.com/techzones/microcontrollers-techzone/tools-ecosystem/lpcxpresso.html LPC Zone] (see also [http://ics.nxp.com/lpcxpresso/ here]) |
* [http://www.nxp.com/techzones/microcontrollers-techzone/tools-ecosystem/lpcxpresso.html LPC Zone] (see also [http://ics.nxp.com/lpcxpresso/ here]) |
||
* [http://www.lpcware.com/ LPCware] online community |
* [http://www.lpcware.com/ LPCware] online community |
||
Line 17: | Line 27: | ||
* [http://ics.nxp.com/support/lpcxpresso/ LPC Codebases at NXP] |
* [http://ics.nxp.com/support/lpcxpresso/ LPC Codebases at NXP] |
||
* [http://www.embeddedartists.com/products/lpcxpresso/ Embedded Artsts] demoboards |
* [http://www.embeddedartists.com/products/lpcxpresso/ Embedded Artsts] demoboards |
||
+ | ===Installation under Linux=== |
||
+ | I had troubles with the provided /etc/udev/rules.d/85-code-red.rules |
||
+ | <br>Here is mine: (then you need to be member of plugdev group) |
||
+ | <source lang=bash> |
||
+ | # Define some simple rules for supported Code Red USB Devices |
||
+ | # Each rules simply makes the device world writable when connected |
||
+ | # thus avoiding the need to run the debug drivers as root |
||
+ | |||
+ | SUBSYSTEM!="usb|usb_device", GOTO="codered_rules_end" |
||
+ | ACTION!="add", GOTO="codered_rules_end" |
||
+ | |||
+ | # LPC-Link (unbooted) |
||
+ | ATTRS{idVendor}=="0471", ATTRS{idProduct}=="df55", MODE="0664", GROUP="plugdev" |
||
+ | # LPC-Link (winusb) |
||
+ | ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0009", MODE="0664", GROUP="plugdev" |
||
+ | # LPC-Link (hid) |
||
+ | ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0007", MODE="0664", GROUP="plugdev" |
||
+ | # NXP LPC |
||
+ | ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="000c", MODE="0664", GROUP="plugdev" |
||
+ | # TI/LMI Eval board |
||
+ | ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bcd9", MODE="0664", GROUP="plugdev" |
||
+ | # TI/LMI ICDI |
||
+ | ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0664", GROUP="plugdev" |
||
+ | |||
+ | # Red Probe |
||
+ | ATTRS{idVendor}=="0403", ATTRS{idProduct}=="ad08", MODE="0664", GROUP="plugdev" |
||
+ | # RDB-Link |
||
+ | ATTRS{idVendor}=="21bd", ATTRS{idProduct}=="0001", MODE="0664", GROUP="plugdev" |
||
+ | # Red Probe+ |
||
+ | ATTRS{idVendor}=="21bd", ATTRS{idProduct}=="0003", MODE="0664", GROUP="plugdev" |
||
+ | |||
+ | # Redlink |
||
+ | KERNEL=="hidraw*", ATTRS{idVendor}=="21bd", ATTRS{idProduct}=="0006", MODE="0664", GROUP="plugdev" |
||
+ | |||
+ | # FTDI adapters (i.e. USB serial ports) |
||
+ | # Generically set to world read/write. If not, ftdi driver aborts when trying to |
||
+ | # scan for debug adapters. |
||
+ | ATTRS{idVendor}=="0403", MODE="0664", GROUP="plugdev" |
||
+ | |||
+ | LABEL="codered_rules_end" |
||
+ | </source> |
||
+ | On a 64-bit multiarch Debian, I had a few missing packages: |
||
+ | apt-get install gtk2-engines:i386 libcanberra-gtk-module:i386 |
Latest revision as of 16:02, 2 March 2016
Misc resources for ARM Cortex-M serie
Cortex-M0
- Demo boards list
- LPCXpresso demoboard with LPC1227: OM13008
Cortex-M3
- Demo boards list
- LPCXpresso demoboard with LPC1347: OM13045
Be careful example codes for LPC1343 won't run on LPC1347, use examples from the 13xx 12-bit ADC version:
/usr/local/lpcxpresso_5.1.2_2065/lpcxpresso/Examples/NXP/LPC1000/LPC13xx_12bitADC
If board is messed up, one can force ISP mode to enable flashing a new code by pulling pin P0_1 to GND during reset.
Cortex-M4
Relatively small demoboard with Cortex M0 + Cortex M4: OM13027, Product page
It's not a LPCXpresso board but it can be programmed through LPCXpresso LPC-Link
LPCXpresso
Links
- LPC Zone (see also here)
- LPCware online community
- Forum @ NXP
- Getting started (pdf), newer version here
- code_red IDE (info here)
- LPC1343 Codebase at MicroBuilder
- LPC Codebases at NXP
- Embedded Artsts demoboards
Installation under Linux
I had troubles with the provided /etc/udev/rules.d/85-code-red.rules
Here is mine: (then you need to be member of plugdev group)
# Define some simple rules for supported Code Red USB Devices
# Each rules simply makes the device world writable when connected
# thus avoiding the need to run the debug drivers as root
SUBSYSTEM!="usb|usb_device", GOTO="codered_rules_end"
ACTION!="add", GOTO="codered_rules_end"
# LPC-Link (unbooted)
ATTRS{idVendor}=="0471", ATTRS{idProduct}=="df55", MODE="0664", GROUP="plugdev"
# LPC-Link (winusb)
ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0009", MODE="0664", GROUP="plugdev"
# LPC-Link (hid)
ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0007", MODE="0664", GROUP="plugdev"
# NXP LPC
ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="000c", MODE="0664", GROUP="plugdev"
# TI/LMI Eval board
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bcd9", MODE="0664", GROUP="plugdev"
# TI/LMI ICDI
ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0664", GROUP="plugdev"
# Red Probe
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="ad08", MODE="0664", GROUP="plugdev"
# RDB-Link
ATTRS{idVendor}=="21bd", ATTRS{idProduct}=="0001", MODE="0664", GROUP="plugdev"
# Red Probe+
ATTRS{idVendor}=="21bd", ATTRS{idProduct}=="0003", MODE="0664", GROUP="plugdev"
# Redlink
KERNEL=="hidraw*", ATTRS{idVendor}=="21bd", ATTRS{idProduct}=="0006", MODE="0664", GROUP="plugdev"
# FTDI adapters (i.e. USB serial ports)
# Generically set to world read/write. If not, ftdi driver aborts when trying to
# scan for debug adapters.
ATTRS{idVendor}=="0403", MODE="0664", GROUP="plugdev"
LABEL="codered_rules_end"
On a 64-bit multiarch Debian, I had a few missing packages:
apt-get install gtk2-engines:i386 libcanberra-gtk-module:i386