Difference between revisions of "ARM Cortex-M"

From YobiWiki
Jump to navigation Jump to search
m
m (Reverted edits by JasonAnderson (talk) to last revision by PhilippeTeuwen)
 
(8 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]
 
* 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

Cortex-M3

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

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