⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 startup.c

📁 FreeRTOSV4.1.0 安裝文件 FreeRTOS 是一个源码公开的免费的嵌入式实时操作系统
💻 C
字号:
//*****************************************************************************//// startup.c - Boot code for Stellaris.//// Copyright (c) 2005,2006 Luminary Micro, Inc.  All rights reserved.//// Software License Agreement//// Luminary Micro, Inc. (LMI) is supplying this software for use solely and// exclusively on LMI's Stellaris Family of microcontroller products.//// The software is owned by LMI and/or its suppliers, and is protected under// applicable copyright laws.  All rights are reserved.  Any use in violation// of the foregoing restrictions may subject the user to criminal sanctions// under applicable laws, as well as to civil liability for the breach of the// terms and conditions of this license.//// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.////*****************************************************************************//*****************************************************************************//// Forward declaration of the default fault handlers.////*****************************************************************************void ResetISR(void);static void NmiSR(void);void FaultISR(void);extern void xPortPendSVHandler(void);extern void xPortSysTickHandler(void);extern void vUART_ISR( void );//*****************************************************************************//// The entry point for the application.////*****************************************************************************extern void entry(void);//*****************************************************************************//// Reserve space for the system stack.////*****************************************************************************#ifndef STACK_SIZE#define STACK_SIZE                              51#endifstatic unsigned long pulMainStack[STACK_SIZE];//*****************************************************************************//// The minimal vector table for a Cortex M3.  Note that the proper constructs// must be placed on this to ensure that it ends up at physical address// 0x0000.0000.////*****************************************************************************__attribute__ ((section("vectors")))void (* const g_pfnVectors[])(void) ={    (void (*)(void))((unsigned long)pulMainStack + sizeof(pulMainStack)),    ResetISR,    NmiSR,    FaultISR,								//FAULT    0,                                      // The MPU fault handler    0,                                      // The bus fault handler    0,                                      // The usage fault handler    0,                                      // Reserved    0,                                      // Reserved    0,                                      // Reserved    0,                                      // Reserved    0,                     					// SVCall handler    0,                                      // Debug monitor handler    0,                                      // Reserved    xPortPendSVHandler,                     // The PendSV handler    xPortSysTickHandler,                    // The SysTick handler    0,                      // GPIO Port A    0,                      // GPIO Port B    0,                      // GPIO Port C    0,                      // GPIO Port D    0,                      // GPIO Port E    vUART_ISR                      // UART0 Rx and Tx};//*****************************************************************************//// The following are constructs created by the linker, indicating where the// the "data" and "bss" segments reside in memory.  The initializers for the// for the "data" segment resides immediately following the "text" segment.////*****************************************************************************extern unsigned long _etext;extern unsigned long _data;extern unsigned long _edata;extern unsigned long _bss;extern unsigned long _ebss;//*****************************************************************************//// This is the code that gets called when the processor first starts execution// following a reset event.  Only the absolutely necessary set is performed,// after which the application supplied entry() routine is called.  Any fancy// actions (such as making decisions based on the reset cause register, and// resetting the bits in that register) are left solely in the hands of the// application.////*****************************************************************************voidResetISR(void){    unsigned long *pulSrc, *pulDest;    //    // Copy the data segment initializers from flash to SRAM.    //    pulSrc = &_etext;    for(pulDest = &_data; pulDest < &_edata; )    {        *pulDest++ = *pulSrc++;    }    //    // Zero fill the bss segment.    //    for(pulDest = &_bss; pulDest < &_ebss; )    {        *pulDest++ = 0;    }    //    // Call the application's entry point.    //    Main();}//*****************************************************************************//// This is the code that gets called when the processor receives a NMI.  This// simply enters an infinite loop, preserving the system state for examination// by a debugger.////*****************************************************************************static voidNmiSR(void){    //    // Enter an infinite loop.    //    while(1)    {    }}//*****************************************************************************//// This is the code that gets called when the processor receives a fault// interrupt.  This simply enters an infinite loop, preserving the system state// for examination by a debugger.////*****************************************************************************voidFaultISR(void){    //    // Enter an infinite loop.    //    while(1)    {    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -