9
0
Fork 0

Add kernel mode hooks and reminders for other architectures

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@3484 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2011-04-08 18:42:26 +00:00
parent 3827c27291
commit 64ef7ee5f7
3 changed files with 42 additions and 0 deletions

View File

@ -108,6 +108,17 @@ void up_initial_state(_TCB *tcb)
xcp->regs[REG_PC] = (uint32_t)tcb->start;
/* Set supervisor- or user-mode, depending on how NuttX is configured and
* what kind of thread is being started. Disable FIQs in any event
*
* If the kernel build is not selected, then all threads run in
* supervisor-mode.
*/
#ifdef CONFIG_NUTTX_KERNEL
# error "Missing logic for the CONFIG_NUTTX_KERNEL build"
#endif
/* Enable or disable interrupts, based on user configuration */
# ifdef CONFIG_SUPPRESS_INTERRUPTS

View File

@ -99,8 +99,28 @@ void up_initial_state(_TCB *tcb)
/* Initialize the initial exception register context structure */
memset(xcp, 0, sizeof(struct xcptcontext));
/* Set the initial stack pointer to the "base" of the allocated stack */
xcp->regs[REG_SP] = (uint32_t)tcb->adj_stack_ptr;
/* Save the task entry point */
xcp->regs[REG_PC] = (uint32_t)tcb->start;
/* Set supervisor- or user-mode, depending on how NuttX is configured and
* what kind of thread is being started. Disable FIQs in any event
*
* If the kernel build is not selected, then all threads run in
* supervisor-mode.
*/
#ifdef CONFIG_NUTTX_KERNEL
# error "Missing logic for the CONFIG_NUTTX_KERNEL build"
#endif
/* Enable or disable interrupts, based on user configuration */
#ifdef CONFIG_SUPPRESS_INTERRUPTS
xcp->regs[REG_SR] = up_getsr() | 0x000000f0;
#else

View File

@ -104,6 +104,17 @@ void up_initial_state(_TCB *tcb)
xcp->regs[REG_CS] = up_getcs();
xcp->regs[REG_SS] = up_getss();
/* Set supervisor- or user-mode, depending on how NuttX is configured and
* what kind of thread is being started. Disable FIQs in any event
*
* If the kernel build is not selected, then all threads run in
* supervisor-mode.
*/
#ifdef CONFIG_NUTTX_KERNEL
# error "Missing logic for the CONFIG_NUTTX_KERNEL build"
#endif
/* Enable or disable interrupts, based on user configuration. If the IF
* bit is set, maskable interrupts will be enabled.
*/