SAM4E-EK: Purely cosmetic updates

This commit is contained in:
Gregory Nutt 2014-03-11 10:44:00 -06:00
parent da8a0e8062
commit 875b985781
8 changed files with 216 additions and 184 deletions

View File

@ -225,6 +225,8 @@
#define GPIO_SPI0_MISO (GPIO_PERIPHA | GPIO_CFG_DEFAULT | GPIO_PORT_PIOA | GPIO_PIN12)
#define GPIO_SPI0_MOSI (GPIO_PERIPHA | GPIO_CFG_DEFAULT | GPIO_PORT_PIOA | GPIO_PIN13)
#define GPIO_SPI0_SPCK (GPIO_PERIPHA | GPIO_CFG_DEFAULT | GPIO_PORT_PIOA | GPIO_PIN14)
#define GPIO_SPI0_NPCS0 (GPIO_PERIPHA | GPIO_CFG_DEFAULT | GPIO_PORT_PIOA | GPIO_PIN11)
#define GPIO_SPI0_NPCS1_1 (GPIO_PERIPHA | GPIO_CFG_DEFAULT | GPIO_PORT_PIOA | GPIO_PIN31)
#define GPIO_SPI0_NPCS1_2 (GPIO_PERIPHA | GPIO_CFG_DEFAULT | GPIO_PORT_PIOB | GPIO_PIN14)
@ -236,7 +238,6 @@
#define GPIO_SPI0_NPCS3_1 (GPIO_PERIPHB | GPIO_CFG_DEFAULT | GPIO_PORT_PIOA | GPIO_PIN22)
#define GPIO_SPI0_NPCS3_2 (GPIO_PERIPHB | GPIO_CFG_DEFAULT | GPIO_PORT_PIOA | GPIO_PIN3)
#define GPIO_SPI0_NPCS3_3 (GPIO_PERIPHB | GPIO_CFG_DEFAULT | GPIO_PORT_PIOA | GPIO_PIN5)
#define GPIO_SPI0_SPCK (GPIO_PERIPHA | GPIO_PORT_PIOA | GPIO_PIN14)
/* Timer/Counters (TC) */

View File

@ -14,7 +14,7 @@ Contents
- NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- AtmelStudio6.1
- Atmel Studio 6.1
- LEDs
- Serial Console
- SAM4E-EK-specific Configuration Options
@ -55,7 +55,7 @@ GNU Toolchain Options
1. A Linux native toolchain in a Linux environment,
2. The buildroot Cygwin tool chain built in the Cygwin environment,
3. A Windows native toolchain.
There are several limitations to using a Windows based toolchain (#3) in a
Cygwin environment. The three biggest are:
@ -211,25 +211,35 @@ NXFLAT Toolchain
8. Edit setenv.h, if necessary, so that the PATH variable includes
the path to the newly builtNXFLAT binaries.
AtmelStudio6.1
^^^^^^^^^^^^^^
Atmel Studio 6.1
^^^^^^^^^^^^^^^^
You can use AtmelStudio6.1 to load and debug code.
You can use Atmel Studio 6.1 to load and debug code.
- To load code:
- To load code into FLASH:
Tools -> Device Programming
Tools menus: Tools -> Device Programming.
Configure the debugger and chip and you are in business.
- To Debug Code:
- Debugging the NuttX Object File:
File -> Open -> Open Object File for Debugging
1) Rename object file from nutt to nuttx.elf. That is an extension that
will be recognized by the file menu.
Select the project name, the full path to the NuttX object (called
just nuttx with no extension), and chip. Take the time to resolve
all of the source file linkages or else you will not have source
level debug!
2) Select the project name, the full path to the NuttX object (called
just nuttx with no extension), and chip. Take the time to resolve
all of the source file linkages or else you will not have source
level debug!
File menu: File -> Open -> Open object file for debugging
- Select nuttx.elf object file
- Select AT91SAM4E16
- Select files for symbols as desired
- Select debugger
3) Debug menu: Debug -> Start debugging and break
- This will reload the nuttx.elf file into FLASH
LEDs
^^^^

View File

@ -67,49 +67,67 @@
/* SAM4E-EK GPIO Pin Definitions ****************************************************/
/* LCD:
* LCD Module Pin Out: SAM3U PIO:
* -------------------------------------------- --------------------------------------
* Pin Symbol Function LCD PeriphA PeriphB Extra
* ---- ------ -------------------------------- -------------- -------- ------- ------
* 1 GND Ground N/A --- --- ---
* 2 CS Chip Select PC16 NCS2 PWML3 AD12BAD5
* 3 RS Register select signal PB8 (see A1) CTS0 A1 AD3
* 4 WR Write operation signal PB23 (NWE) NWR0/NEW PCK1 ---
* 5 RD Read operation signal PB19 (NRD) NRD PWML2 ---
* 6 DB0 Data bus PB9 D0 DTR0 ---
* 7 DB1 Data bus PB10 D1 DSR0 ---
* 8 DB2 Data bus PB11 D2 DCD0 ---
* 9 DB3 Data bus PB12 D3 RI0 ---
* 10 DB4 Data bus PB13 D4 PWMH0 ---
* 11 DB5 Data bus PB14 D5 PWMH1 ---
* 12 DB6 Data bus PB15 D6 PWMH2 ---
* 13 DB7 Data bus PB16 D7 PMWH3 ---
* 14 DB8 Data bus PB25 D8 PWML0 ---
* 15 DB9 Data bus PB26 D9 PWML1 ---
* 16 DB10 Data bus PB27 D10 PWML2 ---
* 17 DB11 Data bus PB28 D11 PWML3 ---
* 18 DB12 Data bus PB29 D12 --- ---
* 19 DB13 Data bus PB30 D13 --- ---
* 20 DB14 Data bus PB31 D14 --- ---
* 21 DB15 Data bus PB6 TIOA1 D15 AD1
* 22 NC No connection N/A --- --- ---
* 23 NC No connection N/A --- --- ---
* 24 RESET Reset signal N/A --- --- ---
* 25 GND Ground N/A --- --- ---
* 26 X+ Touch panel X_RIGHT PA15 SPCK PWMH2 ---
* 27 Y+ Touch panel Y_UP PA14 MOSI --- ---
* 28 X- Touch panel X_LEFT PA13 MISO --- ---
* 29 Y- Touch panel Y_DOWN PC14 A3 NPCS2 ---
* 30 GND Ground N/A --- --- ---
* 31 VDD1 Power supply for digital IO Pad N/A --- --- ---
* 32 VDD2 Power supply for analog circuit N/A --- --- ---
* 33 A1 Power supply for backlight PB8 (see RS) CTS0 A1 AD3
* 34 A2 Power supply for backlight N/A --- --- ---
* 35 A3 Power supply for backlight N/A --- --- ---
* 36 A4 Power supply for backlight N/A --- --- ---
* 37 NC No connection N/A --- --- ---
* 38 NC No connection N/A --- --- ---
* 39 K Backlight ground N/A --- --- ---
*
* The SAM4E-EK carries a TFT transmissive LCD module with touch panel, FTM280C34D.
* Its integrated driver IC is ILI9325. The LCD display area is 2.8 inches diagonally
* measured, with a native resolution of 240 x 320 dots.
*
* The SAM4E16 communicates with the LCD through PIOC where an 8-bit parallel "8080-
* like" protocol data bus has to be implemented in software.
*
* ---- ----- --------- --------------------------------
* PIN PIO SIGNAL NOTES
* ---- ----- --------- --------------------------------
* 1 VDD
* 2 PC7 DB17
* 3 PC6 DB16
* 4 PC5 DB15
* 5 PC4 DB14
* 6 PC3 DB13
* 7 PC2 DB12
* 8 PC1 DB11
* 9 PC0 DB10
* 10 DB9 Pulled low
* 11 DB8 Pulled low
* 12 DB7 Pulled low
* 13 DB6 Pulled low
* 14 DB5 Pulled low
* 15 DB4 Pulled low
* 16 DB3 Pulled low
* 17 DB2 Pulled low
* 18 DB1 Pulled low
* 19 DB0 Pulled low
* ---- ----- --------- --------------------------------
* 20 VDD
* 21 PC11 RD
* 22 PC8 WR
* 23 PC19 RS
* 24 PD18 CS Via J8, pulled high. Connects to NRST.
* 25 RESET Connects to NSRST
* 26 IM0 Pulled high
* 27 IM1 Grounded
* 28 GND
* ---- ----- --------- --------------------------------
* 29 [PC13] LED-A Backlight controls: PC13 enables
* 30 [PC13] LEDK1 AAT3155 charge pump that drives
* 31 [PC13] LEDK2 the backlight LEDs
* 32 [PC13] LEDK3
* 33 [PC13] LEDK4
* 34 [PC13] LEDK1
* ---- ----- --------- --------------------------------
* 35 Y+ These go to the ADS7843
* 36 Y- touchscreen controller.
* 37 X+
* 38 X-
* 39 NC
* ---- ----- --------- --------------------------------
*
* LCD backlight is made of 4 white chip LEDs in parallel, driven by an AAT3155
* charge pump, MN4. The AAT3155 is controlled by the SAM3U4E through a single line
* Simple Serial Control (S2Cwire) interface, which permits to enable, disable, and
* set the LED drive current (LED brightness control) from a 32-level logarithmic
* scale. Four resistors R93/R94/R95/R96 are implemented for optional current
* limitation.
*/
#define GPIO_LCD_NCS2 (GPIO_PERIPHA | GPIO_CFG_PULLUP | GPIO_PORT_PIOC | GPIO_PIN16)
@ -139,7 +157,23 @@
#define GPIO_LCD_BKL (GPIO_OUTPUT | GPIO_CFG_DEFAULT | GPIO_OUTPUT_CLEAR | \
GPIO_PORT_PIOC | GPIO_PIN19)
/* Touchscreen controller (TSC)
/* ADS7843 Touchscreen controller (TSC)
*
* The LCD module integrates a 4-wire touch screen panel controlled by
* MN5, ADS7843, which is a slave device on the SAM3U4E SPI bus. The ADS7843 touch
* ADC auxiliary inputs IN3/IN4 are connected to test points for optional function
* extension.
*
* ------ -------
* GPIO PIN
* ------ -------
* PA11 /CS
* PA12 DOUT
* PA13 DIN
* PA14 DCLK
* PA16 /PENIRQ
* PA17 BUSY
* ------ -------
*
* The IRQ is active low and pulled up.
*
@ -153,11 +187,11 @@
*/
#define GPIO_TCS_IRQ (GPIO_INPUT | GPIO_CFG_PULLUP | GPIO_INT_BOTHEDGES | \
GPIO_PORT_PIOA | GPIO_PIN24)
GPIO_PORT_PIOA | GPIO_PIN16)
#define GPIO_TCS_BUSY (GPIO_INPUT | GPIO_CFG_PULLUP | GPIO_PORT_PIOA | \
GPIO_PIN2)
GPIO_PIN17)
#define SAM_TCS_IRQ SAM_IRQ_PA24
#define SAM_TCS_IRQ SAM_IRQ_PA16
/* LEDs
*
@ -217,8 +251,8 @@
*/
#define GPIO_TSC_NPCS2 (GPIO_OUTPUT | GPIO_CFG_PULLUP | GPIO_OUTPUT_SET | \
GPIO_PORT_PIOC | GPIO_PIN14)
#define TSC_CSNUM 2
GPIO_PORT_PIOA | GPIO_PIN11)
#define TSC_CSNUM 0
/************************************************************************************
* Public Types

View File

@ -63,7 +63,7 @@
*
* Description:
* All SAM3U architectures must provide the following entry point. This entry point
* is called early in the intitialization -- after all memory has been configured
* is called early in the initialization -- after all memory has been configured
* and mapped but before any devices have been initialized.
*
************************************************************************************/

View File

@ -34,74 +34,68 @@
**************************************************************************************/
/**************************************************************************************
*
* The SAM4E-EK carries a TFT transmissive LCD module with touch panel, FTM280C34D.
* Its integrated driver IC is ILI9325. The LCD display area is 2.8 inches diagonally
* measured, with a native resolution of 240 x 320 dots.
*
* LCD Module Pin Out: SAM3U PIO:
* -------------------------------------------- --------------------------------------
* Pin Symbol Function LCD PeriphA PeriphB Extra
* ---- ------ -------------------------------- -------------- -------- ------- ------
* 1 GND Ground N/A --- --- ---
* 2 CS Chip Select PC16 NCS2 PWML3 AD12BAD5
* 3 RS Register select signal PB8 (see A1) CTS0 A1 AD3
* 4 WR Write operation signal PB23 (NWE) NWR0/NEW PCK1 ---
* 5 RD Read operation signal PB19 (NRD) NRD PWML2 ---
* 6 DB0 Data bus PB9 D0 DTR0 ---
* 7 DB1 Data bus PB10 D1 DSR0 ---
* 8 DB2 Data bus PB11 D2 DCD0 ---
* 9 DB3 Data bus PB12 D3 RI0 ---
* 10 DB4 Data bus PB13 D4 PWMH0 ---
* 11 DB5 Data bus PB14 D5 PWMH1 ---
* 12 DB6 Data bus PB15 D6 PWMH2 ---
* 13 DB7 Data bus PB16 D7 PMWH3 ---
* 14 DB8 Data bus PB25 D8 PWML0 ---
* 15 DB9 Data bus PB26 D9 PWML1 ---
* 16 DB10 Data bus PB27 D10 PWML2 ---
* 17 DB11 Data bus PB28 D11 PWML3 ---
* 18 DB12 Data bus PB29 D12 --- ---
* 19 DB13 Data bus PB30 D13 --- ---
* 20 DB14 Data bus PB31 D14 --- ---
* 21 DB15 Data bus PB6 TIOA1 D15 AD1
* 22 NC No connection N/A --- --- ---
* 23 NC No connection N/A --- --- ---
* 24 RESET Reset signal N/A --- --- ---
* 25 GND Ground N/A --- --- ---
* 26 X+ Touch panel X_RIGHT PA15 SPCK PWMH2 ---
* 27 Y+ Touch panel Y_UP PA14 MOSI --- ---
* 28 X- Touch panel X_LEFT PA13 MISO --- ---
* 29 Y- Touch panel Y_DOWN PC14 A3 NPCS2 ---
* 30 GND Ground N/A --- --- ---
* 31 VDD1 Power supply for digital IO Pad N/A --- --- ---
* 32 VDD2 Power supply for analog circuit N/A --- --- ---
* 33 A1 Power supply for backlight PB8 (see RS) CTS0 A1 AD3
* 34 A2 Power supply for backlight N/A --- --- ---
* 35 A3 Power supply for backlight N/A --- --- ---
* 36 A4 Power supply for backlight N/A --- --- ---
* 37 NC No connection N/A --- --- ---
* 38 NC No connection N/A --- --- ---
* 39 K Backlight ground N/A --- --- ---
* The SAM4E16 communicates with the LCD through PIOC where an 8-bit parallel "8080-
* like" protocol data bus has to be implemented in software.
*
* The LCD module gets its reset from NRST. As explained previously, this NRST is
* shared with the JTAG port and the push button BP1. The LCD chip select signal is
* connected to NCS2 (a dedicated jumper can disable it, making NCS2 available for
* other custom usage).
* ---- ----- --------- --------------------------------
* PIN PIO SIGNAL NOTES
* ---- ----- --------- --------------------------------
* 1 VDD
* 2 PC7 DB17
* 3 PC6 DB16
* 4 PC5 DB15
* 5 PC4 DB14
* 6 PC3 DB13
* 7 PC2 DB12
* 8 PC1 DB11
* 9 PC0 DB10
* 10 DB9 Pulled low
* 11 DB8 Pulled low
* 12 DB7 Pulled low
* 13 DB6 Pulled low
* 14 DB5 Pulled low
* 15 DB4 Pulled low
* 16 DB3 Pulled low
* 17 DB2 Pulled low
* 18 DB1 Pulled low
* 19 DB0 Pulled low
* ---- ----- --------- --------------------------------
* 20 VDD
* 21 PC11 RD
* 22 PC8 WR
* 23 PC19 RS
* 24 PD18 CS Via J8, pulled high. Connects to NRST.
* 25 RESET Connects to NSRST
* 26 IM0 Pulled high
* 27 IM1 Grounded
* 28 GND
* ---- ----- --------- --------------------------------
* 29 [PC13] LED-A Backlight controls: PC13 enables
* 30 [PC13] LEDK1 AAT3155 charge pump that drives
* 31 [PC13] LEDK2 the backlight LEDs
* 32 [PC13] LEDK3
* 33 [PC13] LEDK4
* 34 [PC13] LEDK1
* ---- ----- --------- --------------------------------
* 35 Y+ These go to the ADS7843
* 36 Y- touchscreen controller.
* 37 X+
* 38 X-
* 39 NC
* ---- ----- --------- --------------------------------
*
* The SAM3U4E communicates with the LCD through PIOB where a 16-bit parallel
* 8080-like protocol data bus has to be implemented by software.
*
* LCD backlight is made of 4 white chip LEDs in parallel, driven by an AAT3194
* charge pump, MN4. The AAT3194 is controlled by the SAM3U4E through a single line
* LCD backlight is made of 4 white chip LEDs in parallel, driven by an AAT3155
* charge pump, MN4. The AAT3155 is controlled by the SAM3U4E through a single line
* Simple Serial Control (S2Cwire) interface, which permits to enable, disable, and
* set the LED drive current (LED brightness control) from a 32-level logarithmic
* scale. Four resistors R93/R94/R95/R96 are implemented for optional current
* limitation.
*
* The LCD module integrates a 4-wire touch screen panel controlled by
* MN5, ADS7843, which is a slave device on the SAM3U4E SPI bus. The ADS7843 touch
* ADC auxiliary inputs IN3/IN4 are connected to test points for optional function
* extension.
*
**************************************************************************************/
/**************************************************************************************
@ -200,7 +194,7 @@
#define HX843X_LCD_RS (1 << 1)
/* HX8347 ID code */
#error "The SAM4E-EK has an ILI925 LCD cont
#define HX8347_CHIPID 0x47
/* HX8347 LCD Registers */

View File

@ -115,28 +115,28 @@
static const uint8_t g_ledon[8] =
{
(D3_OFF |D2_OFF |D4_OFF), /* LED_STARTED */
(D3_ON |D2_OFF |D4_ON), /* LED_HEAPALLOCATE */
(D3_OFF |D2_ON |D4_OFF), /* LED_IRQSENABLED */
(D3_ON |D2_ON |D4_ON), /* LED_STACKCREATED */
(D3_OFF | D2_OFF | D4_OFF), /* LED_STARTED */
(D3_ON | D2_OFF | D4_ON), /* LED_HEAPALLOCATE */
(D3_OFF | D2_ON | D4_OFF), /* LED_IRQSENABLED */
(D3_ON | D2_ON | D4_ON), /* LED_STACKCREATED */
(D3_NOCHANGE|D2_OFF |D4_NOCHANGE), /* LED_INIRQ */
(D3_NOCHANGE|D2_NOCHANGE|D4_OFF), /* LED_SIGNAL */
(D3_ON |D2_NOCHANGE|D4_NOCHANGE), /* LED_ASSERTION */
(D3_ON |D2_NOCHANGE|D4_NOCHANGE) /* LED_PANIC */
(D3_NOCHANGE | D2_OFF | D4_NOCHANGE), /* LED_INIRQ */
(D3_NOCHANGE | D2_NOCHANGE | D4_OFF), /* LED_SIGNAL */
(D3_ON | D2_NOCHANGE | D4_NOCHANGE), /* LED_ASSERTION */
(D3_ON | D2_NOCHANGE | D4_NOCHANGE) /* LED_PANIC */
};
static const uint8_t g_ledoff[8] =
{
(D3_OFF |D2_OFF |D4_OFF), /* LED_STARTED (does not happen) */
(D3_ON |D2_OFF |D4_ON), /* LED_HEAPALLOCATE (does not happen) */
(D3_OFF |D2_ON |D4_OFF), /* LED_IRQSENABLED (does not happen) */
(D3_ON |D2_ON |D4_ON), /* LED_STACKCREATED (does not happen) */
(D3_OFF | D2_OFF | D4_OFF), /* LED_STARTED (does not happen) */
(D3_ON | D2_OFF | D4_ON), /* LED_HEAPALLOCATE (does not happen) */
(D3_OFF | D2_ON | D4_OFF), /* LED_IRQSENABLED (does not happen) */
(D3_ON | D2_ON | D4_ON), /* LED_STACKCREATED (does not happen) */
(D3_NOCHANGE|D2_ON |D4_NOCHANGE), /* LED_INIRQ */
(D3_NOCHANGE|D2_NOCHANGE|D4_ON), /* LED_SIGNAL */
(D3_OFF |D2_NOCHANGE|D4_NOCHANGE), /* LED_ASSERTION */
(D3_OFF |D2_NOCHANGE|D4_NOCHANGE) /* LED_PANIC */
(D3_NOCHANGE | D2_ON | D4_NOCHANGE), /* LED_INIRQ */
(D3_NOCHANGE | D2_NOCHANGE | D4_ON), /* LED_SIGNAL */
(D3_OFF | D2_NOCHANGE | D4_NOCHANGE), /* LED_ASSERTION */
(D3_OFF | D2_NOCHANGE | D4_NOCHANGE) /* LED_PANIC */
};
/****************************************************************************

View File

@ -135,6 +135,7 @@ int nsh_archinitialize(void)
message("nsh_archinitialize: Initializing SDIO slot %d\n",
CONFIG_NSH_MMCSDSLOTNO);
sdio = sdio_initialize(CONFIG_NSH_MMCSDSLOTNO);
if (!sdio)
{
@ -147,12 +148,14 @@ int nsh_archinitialize(void)
message("nsh_archinitialize: Bind SDIO to the MMC/SD driver, minor=%d\n",
CONFIG_NSH_MMCSDMINOR);
ret = mmcsd_slotinitialize(CONFIG_NSH_MMCSDMINOR, sdio);
if (ret != OK)
{
message("nsh_archinitialize: Failed to bind SDIO to the MMC/SD driver: %d\n", ret);
return ret;
}
message("nsh_archinitialize: Successfully bound SDIO to the MMC/SD driver\n");
/* Then inform the HSMCI driver if there is or is not a card in the slot. */

View File

@ -240,69 +240,59 @@ Development Environment
GNU Toolchain Options
^^^^^^^^^^^^^^^^^^^^^
The NuttX make system has been modified to support the following different
toolchain options.
1. The CodeSourcery GNU toolchain,
2. The devkitARM GNU toolchain, ok
4. The NuttX buildroot Toolchain (see below).
The NuttX make system can be configured to support the various different
toolchain options. All testing has been conducted using the NuttX buildroot
toolchain. To use alternative toolchain, you simply need to add change of
the following configuration options to your .config (or defconfig) file:
All testing has been conducted using the NuttX buildroot toolchain. To use
the CodeSourcery, devkitARM or Raisonance GNU toolchain, you simply need to
add one of the following configuration options to your .config (or defconfig)
file:
CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows
CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux
CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : Atollic toolchain for Windos
CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows
CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default)
CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y : Generic GCC ARM EABI toolchain for Linux
CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW=y : Generic GCC ARM EABI toolchain for Windows
CONFIG_ARMV6M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows
CONFIG_ARMV6M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux
CONFIG_ARMV6M_TOOLCHAIN_ATOLLIC=y : Atollic toolchain for Windos
CONFIG_ARMV6M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows
CONFIG_ARMV6M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default)
CONFIG_ARMV6M_TOOLCHAIN_GNU_EABIL=y : Generic GCC ARM EABI toolchain for Linux
CONFIG_ARMV6M_TOOLCHAIN_GNU_EABIW=y : Generic GCC ARM EABI toolchain for Windows
If you are not using CONFIG_ARMV6M_TOOLCHAIN_BUILDROOT, then you may also
have to modify the PATH in the setenv.h file if your make cannot find the tools.
You may also have to modify the PATH in the setenv.h file if your
make cannot find the tools.
NOTE about Windows native toolchains
------------------------------------
The CodeSourcery (for Windows), Atollic, and devkitARM toolchains are
Windows native toolchains. The CodeSourcery (for Linux), NuttX buildroot,
and, perhaps, the generic GCC toolchains are Cygwin and/or Linux native
toolchains. There are several limitations to using a Windows based
toolchain in a Cygwin environment. The three biggest are:
There are basically three kinds of GCC toolchains that can be used:
1. A Linux native toolchain in a Linux environment,
2. The buildroot Cygwin tool chain built in the Cygwin environment,
3. A Windows native toolchain.
There are several limitations to using a Windows based toolchain (#3) in a
Cygwin environment. The three biggest are:
1. The Windows toolchain cannot follow Cygwin paths. Path conversions are
performed automatically in the Cygwin makefiles using the 'cygpath' utility
but you might easily find some new path problems. If so, check out 'cygpath -w'
performed automatically in the Cygwin makefiles using the 'cygpath'
utility but you might easily find some new path problems. If so, check
out 'cygpath -w'
2. Windows toolchains cannot follow Cygwin symbolic links. Many symbolic links
are used in Nuttx (e.g., include/arch). The make system works around these
problems for the Windows tools by copying directories instead of linking them.
But this can also cause some confusion for you: For example, you may edit
a file in a "linked" directory and find that your changes had no effect.
That is because you are building the copy of the file in the "fake" symbolic
directory. If you use a Windows toolchain, you should get in the habit of
making like this:
2. Windows toolchains cannot follow Cygwin symbolic links. Many symbolic
links are used in Nuttx (e.g., include/arch). The make system works
around these problems for the Windows tools by copying directories
instead of linking them. But this can also cause some confusion for
you: For example, you may edit a file in a "linked" directory and find
that your changes had no effect. That is because you are building the
copy of the file in the "fake" symbolic directory. If you use a
Windows toolchain, you should get in the habit of making like this:
make clean_context all
An alias in your .bashrc file might make that less painful.
3. Dependencies are not made when using Windows versions of the GCC. This is
because the dependencies are generated using Windows pathes which do not
work with the Cygwin make.
3. Dependencies are not made when using Windows versions of the GCC. This
is because the dependencies are generated using Windows paths which do
not work with the Cygwin make.
MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
-Os.
NOTE 2: The devkitARM toolchain includes a version of MSYS make. Make sure that
the paths to Cygwin's /bin and /usr/bin directories appear BEFORE the devkitARM
path or will get the wrong version of make.
IDEs
^^^^
@ -437,7 +427,7 @@ Atmel Studio 6.1
Loading Code into FLASH:
-----------------------
Tools menus: Tool -> Device Programming.
Tools menus: Tools -> Device Programming.
Debugging the NuttX Object File
-------------------------------