LPCXpression console on UART3

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3497 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-04-13 03:12:51 +00:00
parent 856480e020
commit c80fb6cbcf
16 changed files with 215 additions and 95 deletions

View File

@ -1673,5 +1673,16 @@
make will fail with an obscure error about not being able to stat pass2.
* configs/lpcxpresso-lpc1768/nsh: Add an NSH configuration for the
LPCXpresso board.
* configs/*/ld.script: Removed 'sh_link not set for section .ARM.edix' for
a few of the builds. In you have this warning, it can be removed with the
following change to the ld.script file:
+ __exidx_start = ABSOLUTE(.);
.ARM.exidx : {
- __exidx_start = ABSOLUTE(.);
*(.ARM.exidx*)
- __exidx_end = ABSOLUTE(.);
} >sram
+ __exidx_end = ABSOLUTE(.);

View File

@ -1,7 +1,7 @@
/**************************************************************************
* arch/arm/src/lpc17xx/lpc17_lowputc.c
*
* Copyright (C) 2010 Gregory Nutt. All rights reserved.
* Copyright (C) 2010-2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@ -340,7 +340,7 @@ void lpc17_lowsetup(void)
#elif defined(CONFIG_UART1_SERIAL_CONSOLE)
lpc17_configgpio(GPIO_UART1_TXD);
lpc17_configgpio(GPIO_UART1_RXD);
#ifdef CONFIG_UART0_FLOWCONTROL
#ifdef CONFIG_UART1_FLOWCONTROL
lpc17_configgpio(GPIO_UART1_CTS);
lpc17_configgpio(GPIO_UART1_DCD);
lpc17_configgpio(GPIO_UART1_DSR);

View File

@ -141,12 +141,12 @@ static char g_uart1rxbuffer[CONFIG_UART1_RXBUFSIZE];
static char g_uart1txbuffer[CONFIG_UART1_TXBUFSIZE];
#endif
#ifdef CONFIG_LPC17_UART2
static char g_uart2rxbuffer[CONFIG_UART1_RXBUFSIZE];
static char g_uart2txbuffer[CONFIG_UART1_TXBUFSIZE];
static char g_uart2rxbuffer[CONFIG_UART2_RXBUFSIZE];
static char g_uart2txbuffer[CONFIG_UART2_TXBUFSIZE];
#endif
#ifdef CONFIG_LPC17_UART3
static char g_uart3rxbuffer[CONFIG_UART1_RXBUFSIZE];
static char g_uart3txbuffer[CONFIG_UART1_TXBUFSIZE];
static char g_uart3rxbuffer[CONFIG_UART3_RXBUFSIZE];
static char g_uart3txbuffer[CONFIG_UART3_TXBUFSIZE];
#endif
/* This describes the state of the LPC17xx uart0 port. */
@ -694,7 +694,7 @@ static inline void lpc17_uart2config(uint32_t clkdiv)
/* Step 2: Enable clocking on UART */
regval = getreg32(LPC17_SYSCON_PCLKSEL1);
regval &= ~SYSCON_PCLKSEL0_UART2_MASK;
regval &= ~SYSCON_PCLKSEL1_UART2_MASK;
regval |= (clkdiv << SYSCON_PCLKSEL1_UART2_SHIFT);
putreg32(regval, LPC17_SYSCON_PCLKSEL1);
@ -722,7 +722,7 @@ static inline void lpc17_uart3config(uint32_t clkdiv)
/* Step 2: Enable clocking on UART */
regval = getreg32(LPC17_SYSCON_PCLKSEL1);
regval &= ~SYSCON_PCLKSEL0_UART3_MASK;
regval &= ~SYSCON_PCLKSEL1_UART3_MASK;
regval |= (clkdiv << SYSCON_PCLKSEL1_UART3_SHIFT);
putreg32(regval, LPC17_SYSCON_PCLKSEL1);

View File

@ -23,7 +23,7 @@ LCPXpresso LPC1768 Board
-------------------------------- --------- -------------- ---------------------
P0[0]/RD1/TXD3/SDA1 J6-9 I2C E2PROM SDA TXD3/SDA1
P0[1]/TD1/RXD3/SCL J6-10 RXD2/SCL1
P0[1]/TD1/RXD3/SCL J6-10 RXD3/SCL1
P0[2]/TXD0/AD0[7] J6-21
P0[3]/RXD0/AD0[6] J6-22
P0[4]/I2SRX-CLK/RD2/CAP2.0 J6-38 CAN_RX2
@ -45,7 +45,7 @@ LCPXpresso LPC1768 Board
P0[23]/AD0[0]/I2SRX_CLK/CAP3[0] J6-15 AD0.0
P0[24]/AD0[1]/I2SRX_WS/CAP3[1] J6-16 AD0.1
P0[25]/AD0[2]/I2SRX_SDA/TXD3 J6-17 AD0.2
P0[26]/AD0[3]/AOUT/RXD3 J6-18 AD0.3/AOUT
P0[26]/AD0[3]/AOUT/RXD3 J6-18 AD0.3/AOUT / RGB LED
P0[27]/SDA0/USB_SDA J6-25
P0[28]/SCL0 J6-26
P0[29]/USB_D+ J6-37 USB_D+
@ -76,8 +76,8 @@ LCPXpresso LPC1768 Board
P1[30]/VBUS/AD0[4] J6-19 AD0.4
P1[31]/SCK1/AD0[5] J6-20 AD0.5
P2[0]/PWM1.1/TXD1 J6-42 PWM1.1
P2[1]/PWM1.2/RXD1 J6-43 PWM1.2
P2[0]/PWM1.1/TXD1 J6-42 PWM1.1 / RGB LED / RS422 RX
P2[1]/PWM1.2/RXD1 J6-43 PWM1.2 / OLED voltage / RGB LED
P2[2]/PWM1.3/CTS1/TRACEDATA[3] J6-44 PWM1.3
P2[3]/PWM1.4/DCD1/TRACEDATA[2] J6-45 PWM1.4
P2[4]/PWM1.5/DSR1/TRACEDATA[1] J6-46 PWM1.5
@ -321,44 +321,30 @@ LEDs
- configs/lpcxpresso-lpc1768/src/up_leds.c - LED control logic.
The LPCXpresso has 3 LEDs... two on the Babel CAN board and a "heartbeat" LED."
The LEDs on the Babel CAN board are capabl of OFF/GREEN/RED/AMBER status.
In normal usage, the two LEDs on the Babel CAN board would show CAN status, but if
CONFIG_ARCH_LEDS is defined, these LEDs will be controlled as follows for NuttX
debug functionality (where NC means "No Change").
The LPCXpresso LPC1768 has a single LEDs (there are more on the Embedded Artists
base board, but those are not controlled by NuttX). Usage this single LED by NuttX
is as follows:
During the boot phases. LED1 and LED2 will show boot status.
- The LED is not illuminated until the LPCXpresso completes initialization.
If the LED is stuck in the OFF state, this means that the LPCXpresso did not
complete intialization.
/* LED1 LED2 HEARTBEAT */
#define LED_STARTED 0 /* OFF OFF OFF */
#define LED_HEAPALLOCATE 1 /* GREEN OFF OFF */
#define LED_IRQSENABLED 2 /* OFF GREEN OFF */
#define LED_STACKCREATED 3 /* OFF OFF OFF */
- Each time the OS enters an interrupt (or a signal) it will turn the LED OFF and
restores its previous stated upon return from the interrupt (or signal).
#define LED_INIRQ 4 /* NC NC ON (momentary) */
#define LED_SIGNAL 5 /* NC NC ON (momentary) */
#define LED_ASSERTION 6 /* NC NC ON (momentary) */
#define LED_PANIC 7 /* NC NC ON (0.5Hz flashing) */
#undef LED_IDLE /* Sleep mode indication not supported */
The normal state, after initialization will be a dull glow. The brightness of
the glow will be inversely related to the proportion of time spent within interrupt
handling logic. The glow may decrease in brightness when the system is very
busy handling device interrupts and increase in brightness as the system becomes
idle.
After the system is booted, this logic will no longer use LEDs 1 and 2. They
are then available for use the application software using lpc17_led1() and
lpc17_led2():
Stuck in the OFF state suggests that that the system never completed
initialization; Stuck in the ON state would indicated that the system
intialialized, but is not takint interrupts.
enum lpc17_ledstate_e
{
LPC17_LEDSTATE_OFF = 0,
LPC17_LEDSTATE_GREEN = 1,
LPC17_LEDSTATE_RED = 2,
LPC17_LEDSTATE_AMBER = (LPC17_LEDSTATE_GREEN|LPC17_LEDSTATE_RED),
};
EXTERN void lpc17_led1(enum lpc17_ledstate_e state);
EXTERN void lpc17_led2(enum lpc17_ledstate_e state);
The heartbeat LED is illuminated during all interrupt and signal procressing.
Normally, it will glow dimly to inicate that the LPC17xx is taking interrupts.
On an assertion PANIC, it will flash at 1Hz.
- If a fatal assertion or a fatal unhandled exception occurs, the LED will flash
strongly as a slow, 1Hz rate.
LPCXpresso Configuration Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -146,7 +146,7 @@
/* Pin Description Connector On Board Base Board
* -------------------------------- --------- -------------- ---------------------
* P0[0]/RD1/TXD3/SDA1 J6-9 I2C E2PROM SDA TXD3/SDA1
* P0[1]/TD1/RXD3/SCL J6-10 RXD2/SCL1
* P0[1]/TD1/RXD3/SCL J6-10 RXD3/SCL1
* P0[2]/TXD0/AD0[7] J6-21
* P0[3]/RXD0/AD0[6] J6-22
* P0[4]/I2SRX-CLK/RD2/CAP2.0 J6-38 CAN_RX2
@ -168,14 +168,16 @@
* P0[23]/AD0[0]/I2SRX_CLK/CAP3[0] J6-15 AD0.0
* P0[24]/AD0[1]/I2SRX_WS/CAP3[1] J6-16 AD0.1
* P0[25]/AD0[2]/I2SRX_SDA/TXD3 J6-17 AD0.2
* P0[26]/AD0[3]/AOUT/RXD3 J6-18 AD0.3/AOUT
* P0[26]/AD0[3]/AOUT/RXD3 J6-18 AD0.3/AOUT / RGB LED
* P0[27]/SDA0/USB_SDA J6-25
* P0[28]/SCL0 J6-26
* P0[29]/USB_D+ J6-37 USB_D+
* P0[30]/USB_D- J6-36 USB_D-
*/
#define GPIO_UART3_TXD GPIO_UART3_TXD_1
#define GPIO_I2C1_SDA GPIO_I2C1_SDA_1
#define GPIO_UART3_RXD GPIO_UART3_RXD_1
#define GPIO_I2C1_SCL GPIO_I2C1_SCL_1
#define GPIO_SSP1_SCK GPIO_SSP1_SCK_1
#define GPIO_UART2_TXD GPIO_UART2_TXD_1
@ -216,8 +218,8 @@
#define GPIO_ENET_MDC GPIO_ENET_MDC_1
#define GPIO_ENET_MDIO GPIO_ENET_MDIO_1
/* P2[0]/PWM1.1/TXD1 J6-42 PWM1.1
* P2[1]/PWM1.2/RXD1 J6-43 PWM1.2
/* P2[0]/PWM1.1/TXD1 J6-42 PWM1.1 / RGB LED / RS422 RX
* P2[1]/PWM1.2/RXD1 J6-43 PWM1.2 / RGB LED / RS422 RX
* P2[2]/PWM1.3/CTS1/TRACEDATA[3] J6-44 PWM1.3
* P2[3]/PWM1.4/DCD1/TRACEDATA[2] J6-45 PWM1.4
* P2[4]/PWM1.5/DSR1/TRACEDATA[1] J6-46 PWM1.5

View File

@ -108,10 +108,10 @@ CONFIG_LPC17_ETHERNET=y
CONFIG_LPC17_USBHOST=n
CONFIG_LPC17_USBOTG=n
CONFIG_LPC17_USBDEV=n
CONFIG_LPC17_UART0=y
CONFIG_LPC17_UART0=n
CONFIG_LPC17_UART1=n
CONFIG_LPC17_UART2=n
CONFIG_LPC17_UART3=n
CONFIG_LPC17_UART3=y
CONFIG_LPC17_CAN1=n
CONFIG_LPC17_CAN2=n
CONFIG_LPC17_SPI=n
@ -148,10 +148,10 @@ CONFIG_LPC17_GPDMA=n
# CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
# CONFIG_UARTn_2STOP - Two stop bits
#
CONFIG_UART0_SERIAL_CONSOLE=y
CONFIG_UART0_SERIAL_CONSOLE=n
CONFIG_UART1_SERIAL_CONSOLE=n
CONFIG_UART2_SERIAL_CONSOLE=n
CONFIG_UART3_SERIAL_CONSOLE=n
CONFIG_UART3_SERIAL_CONSOLE=y
CONFIG_UART0_TXBUFSIZE=256
CONFIG_UART1_TXBUFSIZE=256

View File

@ -108,10 +108,10 @@ CONFIG_LPC17_ETHERNET=n
CONFIG_LPC17_USBHOST=n
CONFIG_LPC17_USBOTG=n
CONFIG_LPC17_USBDEV=n
CONFIG_LPC17_UART0=y
CONFIG_LPC17_UART0=n
CONFIG_LPC17_UART1=n
CONFIG_LPC17_UART2=n
CONFIG_LPC17_UART3=n
CONFIG_LPC17_UART3=y
CONFIG_LPC17_CAN1=n
CONFIG_LPC17_CAN2=n
CONFIG_LPC17_SPI=n
@ -148,10 +148,10 @@ CONFIG_LPC17_GPDMA=n
# CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
# CONFIG_UARTn_2STOP - Two stop bits
#
CONFIG_UART0_SERIAL_CONSOLE=y
CONFIG_UART0_SERIAL_CONSOLE=n
CONFIG_UART1_SERIAL_CONSOLE=n
CONFIG_UART2_SERIAL_CONSOLE=n
CONFIG_UART3_SERIAL_CONSOLE=n
CONFIG_UART3_SERIAL_CONSOLE=y
CONFIG_UART0_TXBUFSIZE=256
CONFIG_UART1_TXBUFSIZE=256

View File

@ -44,34 +44,32 @@ echo " - LPC17xx"
echo ""
echo "You will need to edit this is any of the above are false"
# This is the default install location for binaries on Linux
#BINDIR=/usr/local/LPCXpresso/bin/dfu-util
# This is the default install location for binaries on Windows (note that this
# path could change with the Code Red version number
BINDIR=/cygdrive/c/nxp/lpcxpresso_3.6/bin
# path could change with the Code Red version number)
BINDIR="/cygdrive/c/nxp/lpcxpresso_3.6/bin"
if [ ! -d "${BINDIR}" ]; then
echo "Directory ${BINDIR} does not exist"
exit 1
fi
# This is the default install location for DFUAPP.exe on Windows
DFUAPP="$BINDIR/DFUAPP.exe"
# This is the relative path to the booLPCXpresso utility
BOOTLPC="Scripts/bootLPCXpresso.cmd"
if [ ! -x "${BINDIR}/$BOOTLPC" ]; then
echo "No executable at ${BINDIR}/${BOOTLPC}"
exit 1
fi
# ROM image for resetting LPC-Link
# ROM=LPCXpressoWIN.enc # WinUSB
# ROM=LPCXpressoFS.enc # Win2000
# ROM=LPCXpressoFS.enc # WinXP
# ROM=LPCXpressoFS.enc # Win2003
# ROM=LPCXpressoHS.enc # WinVista
ROM=LPCXpressoHS.enc # Win7
# BOOTLPC_ARG=winusb # WinXP
BOOTLPC_ARG=hid # Win7
ROMPATH=`cygpath -w "$BINDIR/$ROM"`
# FLASHUTIL="crt_emu_lpc11_13" # for LPC11xx or LPC13xx parts)
FLASHUTIL="crt_emu_cm3_nxp" # for LPC17xx parts
# FLASHUTIL="crt_emu_a7_nxp" # for LPC21/22/23/24 parts)
# FLASHUTIL="crt_emu_a9_nxp" # for LPC31/32 and LPC29xx parts)
# FLASHUTIL="crt_emu_cm3_lmi" # for TI Stellaris LM3S parts
# FLASHUTIL="$BINDIR/crt_emu_lpc11_13" # for LPC11xx or LPC13xx parts)
FLASHUTIL="$BINDIR/crt_emu_cm3_nxp" # for LPC17xx parts
# FLASHUTIL="$BINDIR/crt_emu_a7_nxp" # for LPC21/22/23/24 parts)
# FLASHUTIL="$BINDIR/crt_emu_a9_nxp" # for LPC31/32 and LPC29xx parts)
# FLASHUTIL="$BINDIR/crt_emu_cm3_lmi" # for TI Stellaris LM3S parts
if [ ! -x "$FLASHUTIL" ]; then
echo "No executable file at ${FLASHUTIL}"
if [ ! -x "${BINDIR}/${FLASHUTIL}" ]; then
echo "No executable file at ${BINDIR}/${FLASHUTIL}"
exit 1
fi
@ -79,10 +77,9 @@ fi
# WIRE="-wire=hi" # for RDB1768v2 without upgraded firmware)
# WIRE="-wire=winusb" # for RDB1768v2 with upgraded firmware)
# WIRE="-wire=winusb" # for LPC-Link on Windows XP)
WIRE="-wire=hid" # for LPC-Link on Windows Vista/ Windows 7)
WIRE="-wire=hid" # for LPC-Link on Windows Vista/Windows 7)
TARGET=LPC1768
#TARGET=NXP_dir_part_LPC17
# The nuttx directory must be provided as an argument
@ -115,13 +112,15 @@ else
mv ${NUTTX}/nuttx ${NUTTX}/nuttx.axf
fi
fi
NUTTXPATH=`cygpath -w "${NUTTX}/nuttx.axf"`
# First of all boot the LPC-Link using the script:
#${DFUAPP} /f ${ROMPATH} /tl 250 dfuapp.log
cd ${BINDIR} || \
{ echo "Failed to CD to ${BINDIR}"; exit 1; }
./${BOOTLPC} ${BOOTLPC_ARG} || \
{ echo "'${BOOTLPC} ${BOOTLPC_ARG}' Failed"; }
# Then program the FLASH
#${FLASHUTIL} ${WIRE} -p${TARGET} -flash-load="${NUTTX}/nuttx.axf"
${FLASHUTIL} -p${TARGET} -flash-load="${NUTTX}/nuttx.axf"
./${FLASHUTIL} ${WIRE} -p${TARGET} -flash-load-exec="${NUTTXPATH}"

View File

@ -346,7 +346,7 @@ extern "C" {
#define EXTERN extern
#endif
/* Return a pointer to the thread specifid errno. NOTE: When doing a
/* Return a pointer to the thread specific errno. NOTE: When doing a
* kernel-/user-mode build, this function can only be used within the
* kernel-mode space.
*

View File

@ -1,7 +1,7 @@
/****************************************************************************
* include/nuttx/clock.h
*
* Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@ -96,15 +96,24 @@
#define TICK2DSEC(tick) (((tick)+(TICK_PER_DSEC/2))/TICK_PER_DSEC) /* Rounds */
#define TICK2SEC(tick) (((tick)+(TICK_PER_SEC/2))/TICK_PER_SEC) /* Rounds */
/****************************************************************************
* Global Data
****************************************************************************/
/* Access to raw system clock ***********************************************/
/* Direct access to the system timer/counter is supported only if (1) the
* system clock is not disabled and (2) the executation environement has
* direct access to kernel global data.
*
* The code in this execution context can access the kernel global data
* directly if: (1) this is an un-protected, non-kernel build, or (2)
* this code is being built for execution within the kernel.
*/
#ifndef CONFIG_DISABLE_CLOCK
#if !defined(CONFIG_DISABLE_CLOCK) && \
(!defined(CONFIG_NUTTX_KERNEL) || defined(__KERNEL__))
extern volatile uint32_t g_system_timer;
#define os_systime32() g_system_timer
#endif
/****************************************************************************
@ -122,6 +131,15 @@ extern "C" {
#define EXTERN extern
#endif
/* If direct access to the system timer/counter is not supported (see above),
* then the value can be obtained via os_systime32 through a system call.
*/
#if !defined(CONFIG_DISABLE_CLOCK) && \
defined(CONFIG_NUTTX_KERNEL) && !defined(__KERNEL__)
EXTERN uint32_t os_systime32(void);
#endif
#undef EXTERN
#ifdef __cplusplus
}

View File

@ -134,11 +134,12 @@
*/
#ifndef CONFIG_DISABLE_CLOCK
# define SYS_clock_getres (__SYS_clock+0)
# define SYS_clock_gettime (__SYS_clock+1)
# define SYS_clock_settime (__SYS_clock+2)
# define SYS_gettimeofday (__SYS_clock+3)
# define __SYS_timers (__SYS_clock+4)
# define SYS_os_systime32 (__SYS_clock+0)
# define SYS_clock_getres (__SYS_clock+1)
# define SYS_clock_gettime (__SYS_clock+2)
# define SYS_clock_settime (__SYS_clock+3)
# define SYS_gettimeofday (__SYS_clock+4)
# define __SYS_timers (__SYS_clock+5)
#else
# define __SYS_timers __SYS_clock
#endif

View File

@ -54,9 +54,11 @@ SCHED_SRCS = sched_setparam.c sched_setpriority.c sched_getparam.c \
sched_setscheduler.c sched_getscheduler.c \
sched_yield.c sched_rrgetinterval.c sched_foreach.c \
sched_lock.c sched_unlock.c sched_lockcount.c sched_self.c
ifeq ($(CONFIG_PRIORITY_INHERITANCE),y)
SCHED_SRCS += sched_reprioritize.c
endif
ifeq ($(CONFIG_SCHED_WAITPID),y)
SCHED_SRCS += sched_waitpid.c
endif
@ -73,10 +75,15 @@ TIME_SRCS = sched_processtimer.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
TIME_SRCS += sleep.c usleep.c
endif
CLOCK_SRCS = clock_initialize.c clock_settime.c clock_gettime.c clock_getres.c \
clock_time2ticks.c clock_abstime2ticks.c clock_ticks2time.c \
clock_gettimeofday.c
ifeq ($(CONFIG_NUTTX_KERNEL),y)
CLOCK_SRCS += clock_systime32.c
endif
SIGNAL_SRCS = sig_initialize.c \
sig_action.c sig_procmask.c sig_pending.c sig_suspend.c \
sig_kill.c sig_queue.c sig_waitinfo.c sig_timedwait.c \
@ -88,9 +95,11 @@ SIGNAL_SRCS = sig_initialize.c \
MQUEUE_SRCS = mq_open.c mq_close.c mq_unlink.c mq_send.c mq_timedsend.c\
mq_sndinternal.c mq_receive.c mq_timedreceive.c mq_rcvinternal.c \
mq_initialize.c mq_descreate.c mq_findnamed.c mq_msgfree.c mq_msgqfree.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
MQUEUE_SRCS += mq_waitirq.c
endif
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
MQUEUE_SRCS += mq_notify.c
endif
@ -106,15 +115,18 @@ PTHREAD_SRCS = pthread_create.c pthread_exit.c pthread_join.c pthread_detach.c \
pthread_keycreate.c pthread_setspecific.c pthread_getspecific.c pthread_keydelete.c \
pthread_initialize.c pthread_completejoin.c pthread_findjoininfo.c \
pthread_removejoininfo.c pthread_once.c pthread_setschedprio.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
PTHREAD_SRCS += pthread_condtimedwait.c pthread_kill.c pthread_sigmask.c
endif
SEM_SRCS = sem_initialize.c sem_destroy.c sem_open.c sem_close.c sem_unlink.c \
sem_wait.c sem_trywait.c sem_post.c sem_findnamed.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
SEM_SRCS += sem_waitirq.c
endif
ifeq ($(CONFIG_PRIORITY_INHERITANCE),y)
SEM_SRCS += sem_holder.c
endif
@ -143,18 +155,23 @@ CSRCS = $(MISC_SRCS) $(TSK_SRCS) $(SCHED_SRCS) $(WDOG_SRCS) $(TIME_SRCS) \
ifneq ($(CONFIG_DISABLE_CLOCK),y)
CSRCS += $(CLOCK_SRCS)
endif
ifneq ($(CONFIG_DISABLE_PTHREAD),y)
CSRCS += $(PTHREAD_SRCS)
endif
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
CSRCS += $(SIGNAL_SRCS)
endif
ifneq ($(CONFIG_DISABLE_MQUEUE),y)
CSRCS += $(MQUEUE_SRCS)
endif
ifneq ($(CONFIG_DISABLE_ENVIRON),y)
CSRCS += $(ENV_SRCS)
endif
ifeq ($(CONFIG_NUTTX_KERNEL),y)
CSRCS += $(KMM_SRCS)
endif

83
sched/clock_systime32.c Normal file
View File

@ -0,0 +1,83 @@
/****************************************************************************
* sched/clock_systime32.c
*
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <stdint.h>
#include <nuttx/clock.h>
#if !defined(CONFIG_DISABLE_CLOCK) && \
defined(CONFIG_NUTTX_KERNEL) && !defined(__KERNEL__)
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
#undef os_systime32
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Function: os_systime32
*
* Description:
* Return the current value of the system timer counter
*
* Parameters:
* None
*
* Return Value:
* The current value of the system timer counter
*
* Assumptions:
*
****************************************************************************/
uint32_t os_systime32(void)
{
return g_system_timer;
}
#endif

View File

@ -107,6 +107,7 @@ extern uintptr_t STUB_usleep(uintptr_t parm1);
* NuttX configuration.
*/
extern uintptr_t STUB_os_systime32(void);
extern uintptr_t STUB_clock_getres(uintptr_t parm1, uintptr_t parm2);
extern uintptr_t STUB_clock_gettime(uintptr_t parm1, uintptr_t parm2);
extern uintptr_t STUB_clock_settime(uintptr_t parm1, uintptr_t parm2);

View File

@ -102,6 +102,7 @@ STUB_LOOKUP(3, STUB_up_assert_code) /* SYS_up_assert_code */
*/
#ifndef CONFIG_DISABLE_CLOCK
STUB_LOOKUP(0, STUB_os_systime32) /* SYS_os_systime32 */
STUB_LOOKUP(2, STUB_clock_getres) /* SYS_clock_getres */
STUB_LOOKUP(2, STUB_clock_gettime) /* SYS_clock_gettime */
STUB_LOOKUP(2, STUB_clock_settime) /* SYS_clock_settime */

View File

@ -39,6 +39,7 @@
"open","fcntl.h","CONFIG_NFILE_DESCRIPTORS > 0","int","const char*","int","..."
"opendir","dirent.h","CONFIG_NFILE_DESCRIPTORS > 0","FAR DIR*","FAR const char*"
"pipe","unistd.h","CONFIG_NFILE_DESCRIPTORS > 0","int","int [2]|int*"
"os_systime32","nuttx/clock.h","!defined(CONFIG_DISABLE_CLOCK)","uint32_t"
"poll","poll.h","!defined(CONFIG_DISABLE_POLL) && (CONFIG_NSOCKET_DESCRIPTORS > 0 || CONFIG_NFILE_DESCRIPTORS > 0)","int","FAR struct pollfd*","nfds_t","int"
"pthread_barrier_destroy","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_barrier_t*"
"pthread_barrier_init","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","FAR pthread_barrier_t*","FAR const pthread_barrierattr_t*","unsigned int"

Can't render this file because it has a wrong number of fields in line 2.