diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-12-04 22:28:06 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-12-04 22:28:06 +0000 |
commit | d80abb394a7c0fbcf824f84ed61a061b2af8e86c (patch) | |
tree | 685f3af3ca76cc1d06c277ab478ed524db615fbb /nuttx/arch/hc/src/common/up_internal.h | |
parent | 3a43d878137fecaec5b35d9022308833c96517a8 (diff) | |
download | px4-nuttx-d80abb394a7c0fbcf824f84ed61a061b2af8e86c.tar.gz px4-nuttx-d80abb394a7c0fbcf824f84ed61a061b2af8e86c.tar.bz2 px4-nuttx-d80abb394a7c0fbcf824f84ed61a061b2af8e86c.zip |
Add more HC12 common files
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2306 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/hc/src/common/up_internal.h')
-rwxr-xr-x | nuttx/arch/hc/src/common/up_internal.h | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/nuttx/arch/hc/src/common/up_internal.h b/nuttx/arch/hc/src/common/up_internal.h new file mode 100755 index 000000000..ada4bf8fe --- /dev/null +++ b/nuttx/arch/hc/src/common/up_internal.h @@ -0,0 +1,213 @@ +/**************************************************************************** + * arch/hc/src/common/up_internal.h + * + * Copyright (C) 2009 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. + * + ****************************************************************************/ + +#ifndef __UP_INTERNAL_H +#define __UP_INTERNAL_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +/**************************************************************************** + * Definitions + ****************************************************************************/ + +/* Bring-up debug configurations. These are here (vs defconfig) + * because these should only be controlled during low level + * board bring-up and not part of normal platform configuration. + */ + +#undef CONFIG_SUPPRESS_INTERRUPTS /* DEFINED: Do not enable interrupts */ +#undef CONFIG_SUPPRESS_TIMER_INTS /* DEFINED: No timer */ +#undef CONFIG_SUPPRESS_SERIAL_INTS /* DEFINED: Console will poll */ +#undef CONFIG_SUPPRESS_UART_CONFIG /* DEFINED: Do not reconfig UART */ +#undef CONFIG_DUMP_ON_EXIT /* DEFINED: Dump task state on exit */ + +/* Determine which (if any) console driver to use */ + +#if CONFIG_NFILE_DESCRIPTORS == 0 || defined(CONFIG_DEV_LOWCONSOLE) +# undef CONFIG_USE_SERIALDRIVER +# undef CONFIG_USE_EARLYSERIALINIT +#elif defined(CONFIG_DEV_CONSOLE) && CONFIG_NFILE_DESCRIPTORS > 0 +# define CONFIG_USE_SERIALDRIVER 1 +# define CONFIG_USE_EARLYSERIALINIT 1 +#endif + +/* Check if an interrupt stack size is configured */ + +#ifndef CONFIG_ARCH_INTERRUPTSTACK +# define CONFIG_ARCH_INTERRUPTSTACK 0 +#endif + +/* Macros to handle saving and restore interrupt state. In the current CPU12 + * model, the state is copied from the stack to the TCB, but only + * a referenced is passed to get the state from the TCB. + */ + +#define up_savestate(regs) up_copystate(regs, current_regs) +#define up_restorestate(regs) (current_regs = regs) + +/**************************************************************************** + * Public Types + ****************************************************************************/ + +#ifndef __ASSEMBLY__ +typedef void (*up_vector_t)(void); +#endif + +/**************************************************************************** + * Public Variables + ****************************************************************************/ + +#ifndef __ASSEMBLY__ +/* This holds a references to the current interrupt level register storage + * structure. If is non-NULL only during interrupt processing. + */ + +extern uint16 *current_regs; + +/* This is the beginning of heap as provided from processor-specific logic. + * This is the first address in RAM after the loaded program+bss+idle stack. + * The end of the heap is CONFIG_DRAM_END + */ + +extern uint16 g_heapbase; + +/* Address of the saved user stack pointer */ + +#if CONFIG_ARCH_INTERRUPTSTACK > 1 +extern uint32 g_userstack; +#endif + +/**************************************************************************** + * Inline Functions + ****************************************************************************/ + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/* Start-up functions */ + +extern void up_boot(void); + +/* Context switching functions */ + +extern void up_copystate(uint32 *dest, uint32 *src); +extern void up_decodeirq(uint32 *regs); +extern void up_irqinitialize(void); +extern int up_saveusercontext(uint32 *saveregs); +extern void up_fullcontextrestore(uint32 *restoreregs) __attribute__ ((noreturn)); +extern void up_switchcontext(uint32 *saveregs, uint32 *restoreregs); + +/* Interrupt handling */ + +extern uint16 *up_doirq(int irq, uint32 *regs); +extern void up_maskack_irq(int irq); + +/* Signal handling */ + +extern void up_sigdeliver(void); + +/* System timer initialization */ + +extern void up_timerinit(void); +extern int up_timerisr(int irq, uint32 *regs); + +/* Debug output */ + +#if CONFIG_NFILE_DESCRIPTORS > 0 +extern void up_earlyserialinit(void); +extern void up_serialinit(void); +#else +# define up_earlyserialinit() +# define up_serialinit() +#endif + +#ifdef CONFIG_DEV_LOWCONSOLE +extern void lowconsole_init(void); +#else +# define lowconsole_init() +#endif + +extern void up_lowputc(char ch); +extern void up_puts(const char *str); +extern void up_lowputs(const char *str); + +/* Memory configuration */ + +#if CONFIG_MM_REGIONS > 1 +void up_addregion(void); +#else +# define up_addregion() +#endif + +/* Sub-system/driver initialization */ + +#ifdef CONFIG_ARCH_DMA +extern void weak_function up_dmainitialize(void); +#endif + +extern void up_wdtinit(void); + +#ifdef CONFIG_NET +extern void up_netinitialize(void); +#else +# define up_netinitialize() +#endif + +#ifdef CONFIG_USBDEV +extern void up_usbinitialize(void); +extern void up_usbuninitialize(void); +#else +# define up_usbinitialize() +# define up_usbuninitialize() +#endif + +/* Board-specific functions */ + +#ifdef CONFIG_ARCH_LEDS +extern void up_ledinit(void); +extern void up_ledon(int led); +extern void up_ledoff(int led); +#else +# define up_ledinit() +# define up_ledon(led) +# define up_ledoff(led) +#endif + +#endif /* __ASSEMBLY__ */ + +#endif /* __UP_INTERNAL_H */ |