mirror of
https://github.com/apache/nuttx.git
synced 2026-05-19 03:03:37 +08:00
Squashed commit of the following:
sched/init/nx_bringup.c: Fix a naming collision.
sched/init: Rename os_start() to nx_start()
sched/init: Rename os_smp* to nx_smp*
sched/init: Rename os_bringup to nx_bringup
sched/init: rename all internal static functions to begin with nx_ vs os_
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>On-Demand Paging</i></font></big></h1>
|
||||
<p>Last Updated: February 4, 2010</p>
|
||||
<p>Last Updated: February 4, 2019</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -194,7 +194,7 @@
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
During OS initialization in <code>sched/os_start.c</code>, the following steps
|
||||
During OS initialization in <code>sched/init/nx_start.c</code>, the following steps
|
||||
will be performed:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<h1><big><font color="#3c34ec">
|
||||
<i>NuttX RTOS Porting Guide</i>
|
||||
</font></big></h1>
|
||||
<p>Last Updated: August 25, 2018</p>
|
||||
<p>Last Updated: February 4, 2019</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -150,7 +150,7 @@
|
||||
</ul>
|
||||
<a href="#exports">4.6 APIs Exported by NuttX to Architecture-Specific Logic</a>
|
||||
<ul>
|
||||
<a href="#osstart">4.6.1 <code>os_start()</code></a><br>
|
||||
<a href="#osstart">4.6.1 <code>nx_start()</code></a><br>
|
||||
<a href="#listmgmt">4.6.2 OS List Management APIs</a><br>
|
||||
<a href="#schedprocesstimer">4.6.3 <code>sched_process_timer()</code></a><br>
|
||||
<a href="#schedtimerexpiration">4.6.4 <code>sched_timer_expiration()</code></a><br>
|
||||
@@ -3881,7 +3881,7 @@ void lpwork_restorepriority(uint8_t reqprio);
|
||||
for use by the architecture specific logic.
|
||||
</p>
|
||||
|
||||
<h3><a name="osstart">4.6.1 <code>os_start()</code></a></h3>
|
||||
<h3><a name="osstart">4.6.1 <code>nx_start()</code></a></h3>
|
||||
<p>
|
||||
<b><i>To be provided</i></b>
|
||||
</p>
|
||||
@@ -6649,7 +6649,7 @@ int syslog_initialize(enum syslog_init_e phase);
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<code>syslog_initialize()</code> is called again from <code>os_start()</code> when the full OS initialization has completed, just before the application main entry point is spawned. In this case, <code>syslog_initialize()</code> is called with the argument <code>SYSLOG_INIT_LATE</code>.
|
||||
<code>syslog_initialize()</code> is called again from <code>nx_start()</code> when the full OS initialization has completed, just before the application main entry point is spawned. In this case, <code>syslog_initialize()</code> is called with the argument <code>SYSLOG_INIT_LATE</code>.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
@@ -296,9 +296,9 @@ o Task/Scheduler (sched/)
|
||||
|
||||
1. One problem is stack-related data in the IDLE threads TCB.
|
||||
A solution might be to standardize the use of g_idle_topstack.
|
||||
That you could add initialization like this in os_start:
|
||||
That you could add initialization like this in nx_start:
|
||||
|
||||
@@ -344,6 +347,11 @@ void os_start(void)
|
||||
@@ -344,6 +347,11 @@ void nx_start(void)
|
||||
g_idleargv[1] = NULL;
|
||||
g_idletcb.argv = g_idleargv;
|
||||
|
||||
@@ -335,18 +335,18 @@ o Task/Scheduler (sched/)
|
||||
|
||||
2. Another problem is colorizing that stack to use with
|
||||
stack usage monitoring logic. There is logic in some
|
||||
start functions to do this in a function called go_os_start.
|
||||
start functions to do this in a function called go_nx_start.
|
||||
It is available in these architectures:
|
||||
|
||||
./arm/src/efm32/efm32_start.c:static void go_os_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/kinetis/kinetis_start.c:static void go_os_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/sam34/sam_start.c:static void go_os_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/samv7/sam_start.c:static void go_os_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/stm32/stm32_start.c:static void go_os_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/stm32f7/stm32_start.c:static void go_os_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/stm32l4/stm32l4_start.c:static void go_os_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/tms570/tms570_boot.c:static void go_os_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/xmc4/xmc4_start.c:static void go_os_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/efm32/efm32_start.c:static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/kinetis/kinetis_start.c:static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/sam34/sam_start.c:static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/samv7/sam_start.c:static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/stm32/stm32_start.c:static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/stm32f7/stm32_start.c:static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/stm32l4/stm32l4_start.c:static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/tms570/tms570_boot.c:static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
./arm/src/xmc4/xmc4_start.c:static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
|
||||
But no others.
|
||||
Status: Open
|
||||
|
||||
@@ -630,7 +630,7 @@ __start:
|
||||
/* Finally branch to the OS entry point */
|
||||
|
||||
mov lr, #0 /* LR = return address (none) */
|
||||
b os_start /* Branch to os_start */
|
||||
b nx_start /* Branch to nx_start */
|
||||
|
||||
/* Text-section constants:
|
||||
*
|
||||
|
||||
@@ -147,7 +147,7 @@ __start:
|
||||
/* Finally branch to the OS entry point */
|
||||
|
||||
mov lr, #0 /* LR = return address (none) */
|
||||
b os_start /* Branch to os_start */
|
||||
b nx_start /* Branch to nx_start */
|
||||
|
||||
/* Variables:
|
||||
* _sbss is the start of the BSS region (see ld.script)
|
||||
|
||||
@@ -665,7 +665,7 @@ __start:
|
||||
/* Finally branch to the OS entry point */
|
||||
|
||||
mov lr, #0 /* LR = return address (none) */
|
||||
b os_start /* Branch to os_start */
|
||||
b nx_start /* Branch to nx_start */
|
||||
.size .Lvstart, .-.Lvstart
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
@@ -697,7 +697,7 @@ __start:
|
||||
/* Finally branch to the OS entry point */
|
||||
|
||||
mov lr, #0 /* LR = return address (none) */
|
||||
b os_start /* Branch to os_start */
|
||||
b nx_start /* Branch to nx_start */
|
||||
.size .Lvstart, .-.Lvstart
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
@@ -133,7 +133,7 @@ extern "C"
|
||||
* among other things, must initialize memories. After initializatino
|
||||
( of the memories, this function will call arm_data_initialize() to
|
||||
* initialize the memory resources
|
||||
* 4. This function will then branch to os_start() to start the operating
|
||||
* 4. This function will then branch to nx_start() to start the operating
|
||||
* system.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
@@ -384,10 +384,10 @@ __start:
|
||||
* within arm_boot() must configure SDRAM and call arm_data_initialize()
|
||||
* if CONFIG_ARMV7R_MEMINIT=y.
|
||||
*
|
||||
* This function does not return. It must give control to os_start()
|
||||
* This function does not return. It must give control to nx_start()
|
||||
* at the completion of its initialization.
|
||||
*
|
||||
* Why not just call arm_boot() and branch to os_start() when it returns?
|
||||
* Why not just call arm_boot() and branch to nx_start() when it returns?
|
||||
* If the stack pointer initialized above lies in SDRAM, then that may
|
||||
* not be possible. Also, in the special case of the TMS570, it may
|
||||
* perform a destructive test, losing the pushed content of the stack.
|
||||
|
||||
@@ -99,7 +99,7 @@ const uintptr_t g_idle_topstack = HEAP_BASE;
|
||||
static inline void efm32_fpuconfig(void);
|
||||
#endif
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked,no_instrument_function,noreturn));
|
||||
#endif
|
||||
|
||||
@@ -218,18 +218,18 @@ static inline void efm32_fpuconfig(void)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -253,7 +253,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -339,13 +339,13 @@ void __start(void)
|
||||
showprogress('\n');
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -962,7 +962,7 @@ int up_putc(int ch)
|
||||
|
||||
locked = false;
|
||||
|
||||
if (!up_interrupt_context() && g_os_initstate >= OSINIT_HARDWARE)
|
||||
if (!up_interrupt_context() && g_nx_initstate >= OSINIT_HARDWARE)
|
||||
{
|
||||
ret = nxsem_wait(&g_putc_lock);
|
||||
if (ret < 0)
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
static inline void imxrt_fpuconfig(void);
|
||||
#endif
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
|
||||
@@ -245,18 +245,18 @@ static inline void imxrt_tcmenable(void)
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -280,7 +280,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -390,13 +390,13 @@ void __start(void)
|
||||
/* Then start NuttX */
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ static inline void kinetis_fpuconfig(void);
|
||||
|
||||
#if 0 /* Not used */
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
#endif
|
||||
@@ -216,19 +216,19 @@ static inline void kinetis_fpuconfig(void)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#if 0 /* Not used */
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -252,7 +252,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -362,7 +362,7 @@ void __start(void)
|
||||
|
||||
/* Then start NuttX */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -177,7 +177,7 @@ void __start(void)
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shoulnd't get here */
|
||||
|
||||
|
||||
@@ -138,7 +138,7 @@ static void cpu1_boot(void)
|
||||
|
||||
/* Then transfer control to the IDLE task */
|
||||
|
||||
(void)os_idle_task(0, NULL);
|
||||
(void)nx_idle_task(0, NULL);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ extern uint32_t _stext_sram, _etext_sram, _ftext, _svect;
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
|
||||
@@ -149,18 +149,18 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -184,7 +184,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -401,13 +401,13 @@ void __start(void)
|
||||
CURRENT_REGS = NULL;
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shoulnd't get here */
|
||||
|
||||
|
||||
@@ -168,7 +168,7 @@ void __start(void)
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -290,7 +290,7 @@ void __start(void)
|
||||
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -597,7 +597,7 @@ __start:
|
||||
|
||||
/* Then jump to OS entry */
|
||||
|
||||
b os_start
|
||||
b nx_start
|
||||
|
||||
/* Variables:
|
||||
* _sbss is the start of the BSS region (see ld.script)
|
||||
|
||||
@@ -198,7 +198,7 @@ __start:
|
||||
|
||||
/* Then jump to OS entry */
|
||||
|
||||
b os_start
|
||||
b nx_start
|
||||
|
||||
/* Variables:
|
||||
* _sbss is the start of the BSS region (see ld.script)
|
||||
|
||||
@@ -352,7 +352,7 @@ void __start(void)
|
||||
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -275,7 +275,7 @@ void __start(void)
|
||||
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -281,7 +281,7 @@ void __start(void)
|
||||
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -256,7 +256,7 @@ void __start(void)
|
||||
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ void __start(void)
|
||||
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shoulnd't get here */
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ static void cpu1_boot(void)
|
||||
|
||||
/* Then transfer control to the IDLE task */
|
||||
|
||||
(void)os_idle_task(0, NULL);
|
||||
(void)nx_idle_task(0, NULL);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
||||
@@ -98,7 +98,7 @@ const uintptr_t g_idle_topstack = HEAP_BASE;
|
||||
static inline void sam_fpuconfig(void);
|
||||
#endif
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
|
||||
@@ -217,18 +217,18 @@ static inline void sam_fpuconfig(void)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -252,7 +252,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -368,14 +368,14 @@ void __start(void)
|
||||
showprogress('\n');
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ void __start(void)
|
||||
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shoulnd't get here */
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ const uintptr_t g_idle_topstack = HEAP_BASE;
|
||||
static inline void sam_fpu_configure(void);
|
||||
#endif
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
|
||||
@@ -218,18 +218,18 @@ static inline void sam_fpu_configure(void)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -253,7 +253,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -363,14 +363,14 @@ void __start(void)
|
||||
showprogress('\n');
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ const uintptr_t g_idle_topstack = HEAP_BASE;
|
||||
static inline void sam_fpuconfig(void);
|
||||
#endif
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
|
||||
@@ -258,18 +258,18 @@ static inline void sam_tcmenable(void)
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -293,7 +293,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -404,13 +404,13 @@ void __start(void)
|
||||
/* Then start NuttX */
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ const uintptr_t g_idle_topstack = HEAP_BASE;
|
||||
static inline void stm32_fpuconfig(void);
|
||||
#endif
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
|
||||
@@ -219,18 +219,18 @@ static inline void stm32_fpuconfig(void)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -254,7 +254,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -349,13 +349,13 @@ void __start(void)
|
||||
showprogress('\n');
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shoulnd't get here */
|
||||
|
||||
|
||||
@@ -160,7 +160,7 @@ void __start(void)
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ const uintptr_t g_idle_topstack = HEAP_BASE;
|
||||
static inline void stm32_fpuconfig(void);
|
||||
#endif
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
|
||||
@@ -259,18 +259,18 @@ static inline void stm32_tcmenable(void)
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -294,7 +294,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -395,13 +395,13 @@ void __start(void)
|
||||
/* Then start NuttX */
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ const uintptr_t g_idle_topstack = HEAP_BASE;
|
||||
static inline void stm32_fpuconfig(void);
|
||||
#endif
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
|
||||
@@ -274,18 +274,18 @@ static inline void stm32_tcmenable(void)
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -309,7 +309,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -418,13 +418,13 @@ void __start(void)
|
||||
showprogress('\n');
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ const uintptr_t g_idle_topstack = HEAP_BASE;
|
||||
static inline void stm32l4_fpuconfig(void);
|
||||
#endif
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
|
||||
@@ -227,18 +227,18 @@ static inline void stm32l4_fpuconfig(void)
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -262,7 +262,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -369,13 +369,13 @@ void __start(void)
|
||||
showprogress('\n');
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shoulnd't get here */
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
#ifdef CONFIG_DEBUG_FEATURES
|
||||
.globl up_lowputc /* Low-level debug output */
|
||||
#endif
|
||||
.globl os_start /* NuttX entry point */
|
||||
.globl nx_start /* NuttX entry point */
|
||||
|
||||
/*****************************************************************************
|
||||
* Macros
|
||||
@@ -577,7 +577,7 @@ ctor_end:
|
||||
|
||||
/* Then jump to OS entry */
|
||||
|
||||
b os_start
|
||||
b nx_start
|
||||
|
||||
/* Call destructors -- never get here */
|
||||
|
||||
|
||||
@@ -304,7 +304,7 @@ void __start(void)
|
||||
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -284,7 +284,7 @@ void __start(void)
|
||||
|
||||
showprogress('\r');
|
||||
showprogress('\n');
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ static void tms570_memory_initialize(uint32_t ramset)
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Re-initialize the stack and frame pointers and branch to OS start.
|
||||
@@ -213,13 +213,13 @@ static void tms570_memory_initialize(uint32_t ramset)
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
naked_function noreturn_function;
|
||||
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -245,16 +245,16 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
"\tldr sp, [ip]\n" /* Reset the stack pointer */
|
||||
"\tmov fp, #0\n" /* Reset the frame pointer */
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
|
||||
#else
|
||||
static void go_os_start(void) naked_function noreturn_function;
|
||||
static void go_nx_start(void) naked_function noreturn_function;
|
||||
|
||||
static void go_os_start(void)
|
||||
static void go_nx_start(void)
|
||||
{
|
||||
/* Reset the stack/frame pointer and jump to os_start(). */
|
||||
/* Reset the stack/frame pointer and jump to nx_start(). */
|
||||
|
||||
__asm__ __volatile__
|
||||
(
|
||||
@@ -262,7 +262,7 @@ static void go_os_start(void)
|
||||
"\tldr sp, [ip]\n" /* Reset the stack pointer */
|
||||
"\tmov fp, #0\n" /* Reset the frame pointer */
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -291,7 +291,7 @@ static void go_os_start(void)
|
||||
* things, must initialize SDRAM memory. After initializatino of the
|
||||
* memories, this function will call arm_data_initialize() to
|
||||
* initialize the memory resources
|
||||
* 4. This function will then branch to os_start() to start the operating
|
||||
* 4. This function will then branch to nx_start() to start the operating
|
||||
* system.
|
||||
*
|
||||
****************************************************************************/
|
||||
@@ -471,12 +471,12 @@ void arm_boot(void)
|
||||
/* Then start NuttX */
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
#else
|
||||
/* Branch to os_start(), resetting the stack and frame pointers. */
|
||||
/* Branch to nx_start(), resetting the stack and frame pointers. */
|
||||
|
||||
go_os_start();
|
||||
go_nx_start();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ static inline void xmc4_fpu_config(void);
|
||||
static inline void xmc4_unaligned(void);
|
||||
static inline void xmc4_flash_waitstates(void);
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
__attribute__ ((naked, no_instrument_function, noreturn));
|
||||
#endif
|
||||
|
||||
@@ -256,18 +256,18 @@ static inline void xmc4_flash_waitstates(void)
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: go_os_start
|
||||
* Name: go_nx_start
|
||||
*
|
||||
* Description:
|
||||
* Set the IDLE stack to the coloration value and jump into os_start()
|
||||
* Set the IDLE stack to the coloration value and jump into nx_start()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
static void go_os_start(void *pv, unsigned int nbytes)
|
||||
static void go_nx_start(void *pv, unsigned int nbytes)
|
||||
{
|
||||
/* Set the IDLE stack to the stack coloration value then jump to
|
||||
* os_start(). We take extreme care here because were currently
|
||||
* nx_start(). We take extreme care here because were currently
|
||||
* executing on this stack.
|
||||
*
|
||||
* We want to avoid sneak stack access generated by the compiler.
|
||||
@@ -291,7 +291,7 @@ static void go_os_start(void *pv, unsigned int nbytes)
|
||||
|
||||
"2:\n"
|
||||
"\tmov r14, #0\n" /* LR = return address (none) */
|
||||
"\tb os_start\n" /* Branch to os_start */
|
||||
"\tb nx_start\n" /* Branch to nx_start */
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -397,13 +397,13 @@ void __start(void)
|
||||
/* Then start NuttX */
|
||||
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
/* Set the IDLE stack to the coloration value and jump into os_start() */
|
||||
/* Set the IDLE stack to the coloration value and jump into nx_start() */
|
||||
|
||||
go_os_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
go_nx_start((FAR void *)&_ebss, CONFIG_IDLETHREAD_STACKSIZE);
|
||||
#else
|
||||
/* Call os_start() */
|
||||
/* Call nx_start() */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
.global _eronly /* Start of .data section in FLASH */
|
||||
.global _enoinit /* End of uninitialized data. Defined by ld.script */
|
||||
.global up_lowinit /* Perform low level initialization */
|
||||
.global os_start /* NuttX entry point */
|
||||
.global nx_start /* NuttX entry point */
|
||||
|
||||
.global vectortab
|
||||
.global at90usb_int0 /* External interrupt request 0 */
|
||||
@@ -258,7 +258,7 @@ __do_clear_bss:
|
||||
|
||||
/* Now start NuttX */
|
||||
|
||||
call os_start
|
||||
call nx_start
|
||||
jmp exit
|
||||
.endfunc
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
.global _eronly /* Start of .data section in FLASH */
|
||||
.global _enoinit /* End of uninitilized data. Defined by ld.script */
|
||||
.global up_lowinit /* Perform low level initialization */
|
||||
.global os_start /* NuttX entry point */
|
||||
.global nx_start /* NuttX entry point */
|
||||
|
||||
.global vectortab
|
||||
#if defined(CONFIG_ARCH_CHIP_ATMEGA128)
|
||||
@@ -454,7 +454,7 @@ __do_clear_bss:
|
||||
|
||||
/* Now start NuttX */
|
||||
|
||||
call os_start
|
||||
call nx_start
|
||||
jmp exit
|
||||
.endfunc
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
.global _eronly /* Start of .data section in FLASH */
|
||||
#endif
|
||||
.global up_lowinit /* Perform low level initialization */
|
||||
.global os_start /* NuttX entry point */
|
||||
.global nx_start /* NuttX entry point */
|
||||
.global vectortab /* Vector base address */
|
||||
|
||||
/****************************************************************************
|
||||
@@ -133,7 +133,7 @@ __start:
|
||||
|
||||
/* Then jump to OS entry (will not return) */
|
||||
|
||||
lda.w pc, os_start
|
||||
lda.w pc, nx_start
|
||||
|
||||
.Lstackbase:
|
||||
.word _ebss+CONFIG_IDLETHREAD_STACKSIZE-4
|
||||
|
||||
@@ -142,7 +142,7 @@ void up_addregion(void);
|
||||
#endif
|
||||
|
||||
/* Defined in chip/xxx_lowinit.c. This function is called from the
|
||||
* head.S file just before jumping to os_start(). This function
|
||||
* head.S file just before jumping to nx_start(). This function
|
||||
* performs whatever very low level initialization that is needed
|
||||
* before the OS gets started (clocks, console, LEDs, etc.)
|
||||
*/
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
.file "m9s12_start.S"
|
||||
.globl __start
|
||||
.globl os_start
|
||||
.globl nx_start
|
||||
.globl up_lowsetup
|
||||
.globl hcs12_boardinitialize
|
||||
|
||||
@@ -224,7 +224,7 @@ __start:
|
||||
/* Now, start the OS */
|
||||
|
||||
showprogress '\n'
|
||||
CALL os_start
|
||||
CALL nx_start
|
||||
bra __start
|
||||
|
||||
/* Variables:
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
|
||||
/* Imported symbols */
|
||||
|
||||
.global os_start
|
||||
.global nx_start
|
||||
.global pic32mx_exception
|
||||
.global pic32mx_decodeirq
|
||||
#ifdef CONFIG_PIC32MX_NMIHANDLER
|
||||
@@ -575,9 +575,9 @@ __start_nuttx:
|
||||
jalr ra, t0
|
||||
nop
|
||||
|
||||
/* Call os_start */
|
||||
/* Call nx_start */
|
||||
|
||||
la t0, os_start
|
||||
la t0, nx_start
|
||||
jalr ra, t0
|
||||
nop
|
||||
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
|
||||
/* Imported symbols */
|
||||
|
||||
.global os_start
|
||||
.global nx_start
|
||||
.global pic32mz_exception
|
||||
.global pic32mz_decodeirq
|
||||
#ifdef CONFIG_PIC32MZ_NMIHANDLER
|
||||
@@ -676,9 +676,9 @@ __start_nuttx:
|
||||
jalr ra, t0
|
||||
nop
|
||||
|
||||
/* Call os_start */
|
||||
/* Call nx_start */
|
||||
|
||||
la t0, os_start
|
||||
la t0, nx_start
|
||||
jalr ra, t0
|
||||
nop
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ void up_idle(void)
|
||||
*/
|
||||
|
||||
/* This is a kludge that I still don't understand. The call to kmm_trysemaphore()
|
||||
* in the os_start.c IDLE loop seems necessary for the good health of the IDLE
|
||||
* in the nx_start.c IDLE loop seems necessary for the good health of the IDLE
|
||||
* loop. When the work queue is enabled, this logic is removed from the IDLE
|
||||
* loop and it appears that we are somehow left idling with interrupts non-
|
||||
* functional. The following should be no-op, it just disables then re-enables
|
||||
|
||||
@@ -178,7 +178,7 @@ _do_reset:
|
||||
bi .clearBSS
|
||||
|
||||
.callMain:
|
||||
bi os_start
|
||||
bi nx_start
|
||||
|
||||
.save_all:
|
||||
addi sp, sp, -136
|
||||
|
||||
@@ -131,7 +131,7 @@ void __start(void)
|
||||
|
||||
/* Start NuttX */
|
||||
|
||||
os_start();
|
||||
nx_start();
|
||||
|
||||
/* Shouldn't get here */
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user