mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
PPC405 working but not yet released.
This commit is contained in:
parent
2de068cd70
commit
df711a4a65
707
20080307/Demo/ARM7_AT91FR40008_GCC/AT91R40008.h
Normal file
707
20080307/Demo/ARM7_AT91FR40008_GCC/AT91R40008.h
Normal file
|
@ -0,0 +1,707 @@
|
|||
// ----------------------------------------------------------------------------
|
||||
// ATMEL Microcontroller Software Support - ROUSSET -
|
||||
// ----------------------------------------------------------------------------
|
||||
// The software is delivered "AS IS" without warranty or condition of any
|
||||
// kind, either express, implied or statutory. This includes without
|
||||
// limitation any warranty or condition with respect to merchantability or
|
||||
// fitness for any particular purpose, or against the infringements of
|
||||
// intellectual property rights of others.
|
||||
// ----------------------------------------------------------------------------
|
||||
// File Name : AT91R40008.h
|
||||
// Object : AT91R40008 definitions
|
||||
// Generated : AT91 SW Application Group 02/19/2003 (11:13:31)
|
||||
//
|
||||
// CVS Reference : /AT91R40008.pl/1.3/Tue Nov 12 16:01:52 2002//
|
||||
// CVS Reference : /AIC_1246F.pl/1.4/Mon Nov 04 17:51:00 2002//
|
||||
// CVS Reference : /WD_1241B.pl/1.1/Mon Nov 04 17:51:00 2002//
|
||||
// CVS Reference : /PS_x40.pl/1.2/Tue Nov 12 16:01:52 2002//
|
||||
// CVS Reference : /PIO_1321C.pl/1.5/Tue Oct 29 15:50:24 2002//
|
||||
// CVS Reference : /TC_1243B.pl/1.4/Tue Nov 05 12:43:10 2002//
|
||||
// CVS Reference : /PDC_1363D.pl/1.3/Wed Oct 23 14:49:48 2002//
|
||||
// CVS Reference : /US_1242E.pl/1.5/Thu Nov 21 13:37:56 2002//
|
||||
// CVS Reference : /SF_x40.pl/1.1/Tue Nov 12 13:27:20 2002//
|
||||
// CVS Reference : /EBI_x40.pl/1.5/Wed Feb 19 09:25:22 2003//
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#ifndef AT91R40008_H
|
||||
#define AT91R40008_H
|
||||
|
||||
/* AT91 Register type */
|
||||
typedef volatile unsigned int AT91_REG; // Hardware register definition
|
||||
typedef volatile unsigned int at91_reg;
|
||||
|
||||
// *****************************************************************************
|
||||
// SOFTWARE API DEFINITION FOR Advanced Interrupt Controller
|
||||
// *****************************************************************************
|
||||
typedef struct _AT91S_AIC {
|
||||
AT91_REG AIC_SMR[32]; // Source Mode egister
|
||||
AT91_REG AIC_SVR[32]; // Source Vector egister
|
||||
AT91_REG AIC_IVR; // IRQ Vector Register
|
||||
AT91_REG AIC_FVR; // FIQ Vector Register
|
||||
AT91_REG AIC_ISR; // Interrupt Status Register
|
||||
AT91_REG AIC_IPR; // Interrupt Pending Register
|
||||
AT91_REG AIC_IMR; // Interrupt Mask Register
|
||||
AT91_REG AIC_CISR; // Core Interrupt Status Register
|
||||
AT91_REG Reserved0[2]; //
|
||||
AT91_REG AIC_IECR; // Interrupt Enable Command Register
|
||||
AT91_REG AIC_IDCR; // Interrupt Disable Command egister
|
||||
AT91_REG AIC_ICCR; // Interrupt Clear Command Register
|
||||
AT91_REG AIC_ISCR; // Interrupt Set Command Register
|
||||
AT91_REG AIC_EOICR; // End of Interrupt Command Register
|
||||
AT91_REG AIC_SPU; // Spurious Vector Register
|
||||
} AT91S_AIC, *AT91PS_AIC;
|
||||
|
||||
// -------- AIC_SMR : (AIC Offset: 0x0) Control Register --------
|
||||
#define AT91C_AIC_PRIOR ((unsigned int) 0x7 << 0) // (AIC) Priority Level
|
||||
#define AT91C_AIC_PRIOR_LOWEST ((unsigned int) 0x0) // (AIC) Lowest priority level
|
||||
#define AT91C_AIC_PRIOR_HIGHEST ((unsigned int) 0x7) // (AIC) Highest priority level
|
||||
#define AT91C_AIC_SRCTYPE ((unsigned int) 0x3 << 5) // (AIC) Interrupt Source Type
|
||||
#define AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE ((unsigned int) 0x0 << 5) // (AIC) Internal Sources Code Label Level Sensitive
|
||||
#define AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED ((unsigned int) 0x1 << 5) // (AIC) Internal Sources Code Label Edge triggered
|
||||
#define AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL ((unsigned int) 0x2 << 5) // (AIC) External Sources Code Label High-level Sensitive
|
||||
#define AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE ((unsigned int) 0x3 << 5) // (AIC) External Sources Code Label Positive Edge triggered
|
||||
// -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register --------
|
||||
#define AT91C_AIC_NFIQ ((unsigned int) 0x1 << 0) // (AIC) NFIQ Status
|
||||
#define AT91C_AIC_NIRQ ((unsigned int) 0x1 << 1) // (AIC) NIRQ Status
|
||||
|
||||
// *****************************************************************************
|
||||
// SOFTWARE API DEFINITION FOR Watchdog Timer Interface
|
||||
// *****************************************************************************
|
||||
typedef struct _AT91S_WD {
|
||||
AT91_REG WD_OMR; // Overflow Mode Register
|
||||
AT91_REG WD_CMR; // Clock Mode Register
|
||||
AT91_REG WD_CR; // Control Register
|
||||
AT91_REG WD_SR; // Status Register
|
||||
} AT91S_WD, *AT91PS_WD;
|
||||
|
||||
// -------- WD_OMR : (WD Offset: 0x0) Overflow Mode Register --------
|
||||
#define AT91C_WD_WDEN ((unsigned int) 0x1 << 0) // (WD) Watchdog Enable
|
||||
#define AT91C_WD_RSTEN ((unsigned int) 0x1 << 1) // (WD) Reset Enable
|
||||
#define AT91C_WD_IRQEN ((unsigned int) 0x1 << 2) // (WD) Interrupt Enable
|
||||
#define AT91C_WD_EXTEN ((unsigned int) 0x1 << 3) // (WD) External Signal Enable
|
||||
#define AT91C_WD_OKEY ((unsigned int) 0xFFF << 4) // (WD) Watchdog Enable
|
||||
// -------- WD_CMR : (WD Offset: 0x4) Clock Mode Register --------
|
||||
#define AT91C_WD_WDCLKS ((unsigned int) 0x3 << 0) // (WD) Clock Selection
|
||||
#define AT91C_WD_WDCLKS_MCK32 ((unsigned int) 0x0) // (WD) Master Clock divided by 32
|
||||
#define AT91C_WD_WDCLKS_MCK128 ((unsigned int) 0x1) // (WD) Master Clock divided by 128
|
||||
#define AT91C_WD_WDCLKS_MCK1024 ((unsigned int) 0x2) // (WD) Master Clock divided by 1024
|
||||
#define AT91C_WD_WDCLKS_MCK4096 ((unsigned int) 0x3) // (WD) Master Clock divided by 4096
|
||||
#define AT91C_WD_HPCV ((unsigned int) 0xF << 2) // (WD) High Pre-load Counter Value
|
||||
#define AT91C_WD_CKEY ((unsigned int) 0x1FF << 7) // (WD) Clock Access Key
|
||||
// -------- WD_CR : (WD Offset: 0x8) Control Register --------
|
||||
#define AT91C_WD_RSTKEY ((unsigned int) 0xFFFF << 0) // (WD) Restart Key
|
||||
// -------- WD_SR : (WD Offset: 0xc) Status Register --------
|
||||
#define AT91C_WD_WDOVF ((unsigned int) 0x1 << 0) // (WD) Watchdog Overflow
|
||||
|
||||
// *****************************************************************************
|
||||
// SOFTWARE API DEFINITION FOR Power Saving Controler
|
||||
// *****************************************************************************
|
||||
typedef struct _AT91S_PS {
|
||||
AT91_REG PS_CR; // Control Register
|
||||
AT91_REG PS_PCER; // Peripheral Clock Enable Register
|
||||
AT91_REG PS_PCDR; // Peripheral Clock Disable Register
|
||||
AT91_REG PS_PCSR; // Peripheral Clock Status Register
|
||||
} AT91S_PS, *AT91PS_PS;
|
||||
|
||||
// -------- PS_PCER : (PS Offset: 0x4) Peripheral Clock Enable Register --------
|
||||
#define AT91C_PS_US0 ((unsigned int) 0x1 << 2) // (PS) Usart 0 Clock
|
||||
#define AT91C_PS_US1 ((unsigned int) 0x1 << 3) // (PS) Usart 1 Clock
|
||||
#define AT91C_PS_TC0 ((unsigned int) 0x1 << 4) // (PS) Timer Counter 0 Clock
|
||||
#define AT91C_PS_TC1 ((unsigned int) 0x1 << 5) // (PS) Timer Counter 1 Clock
|
||||
#define AT91C_PS_TC2 ((unsigned int) 0x1 << 6) // (PS) Timer Counter 2 Clock
|
||||
#define AT91C_PS_PIO ((unsigned int) 0x1 << 8) // (PS) PIO Clock
|
||||
// -------- PS_PCDR : (PS Offset: 0x8) Peripheral Clock Disable Register --------
|
||||
// -------- PS_PCSR : (PS Offset: 0xc) Peripheral Clock Satus Register --------
|
||||
|
||||
// *****************************************************************************
|
||||
// SOFTWARE API DEFINITION FOR Parallel Input Output Controler
|
||||
// *****************************************************************************
|
||||
typedef struct _AT91S_PIO {
|
||||
AT91_REG PIO_PER; // PIO Enable Register
|
||||
AT91_REG PIO_PDR; // PIO Disable Register
|
||||
AT91_REG PIO_PSR; // PIO Status Register
|
||||
AT91_REG Reserved0[1]; //
|
||||
AT91_REG PIO_OER; // Output Enable Register
|
||||
AT91_REG PIO_ODR; // Output Disable Registerr
|
||||
AT91_REG PIO_OSR; // Output Status Register
|
||||
AT91_REG Reserved1[1]; //
|
||||
AT91_REG PIO_IFER; // Input Filter Enable Register
|
||||
AT91_REG PIO_IFDR; // Input Filter Disable Register
|
||||
AT91_REG PIO_IFSR; // Input Filter Status Register
|
||||
AT91_REG Reserved2[1]; //
|
||||
AT91_REG PIO_SODR; // Set Output Data Register
|
||||
AT91_REG PIO_CODR; // Clear Output Data Register
|
||||
AT91_REG PIO_ODSR; // Output Data Status Register
|
||||
AT91_REG PIO_PDSR; // Pin Data Status Register
|
||||
AT91_REG PIO_IER; // Interrupt Enable Register
|
||||
AT91_REG PIO_IDR; // Interrupt Disable Register
|
||||
AT91_REG PIO_IMR; // Interrupt Mask Register
|
||||
AT91_REG PIO_ISR; // Interrupt Status Register
|
||||
AT91_REG PIO_MDER; // Multi-driver Enable Register
|
||||
AT91_REG PIO_MDDR; // Multi-driver Disable Register
|
||||
AT91_REG PIO_MDSR; // Multi-driver Status Register
|
||||
} AT91S_PIO, *AT91PS_PIO;
|
||||
|
||||
|
||||
// *****************************************************************************
|
||||
// SOFTWARE API DEFINITION FOR Timer Counter Channel Interface
|
||||
// *****************************************************************************
|
||||
typedef struct _AT91S_TC {
|
||||
AT91_REG TC_CCR; // Channel Control Register
|
||||
AT91_REG TC_CMR; // Channel Mode Register
|
||||
AT91_REG Reserved0[2]; //
|
||||
AT91_REG TC_CV; // Counter Value
|
||||
AT91_REG TC_RA; // Register A
|
||||
AT91_REG TC_RB; // Register B
|
||||
AT91_REG TC_RC; // Register C
|
||||
AT91_REG TC_SR; // Status Register
|
||||
AT91_REG TC_IER; // Interrupt Enable Register
|
||||
AT91_REG TC_IDR; // Interrupt Disable Register
|
||||
AT91_REG TC_IMR; // Interrupt Mask Register
|
||||
} AT91S_TC, *AT91PS_TC;
|
||||
|
||||
// -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register --------
|
||||
#define AT91C_TC_CLKEN ((unsigned int) 0x1 << 0) // (TC) Counter Clock Enable Command
|
||||
#define AT91C_TC_CLKDIS ((unsigned int) 0x1 << 1) // (TC) Counter Clock Disable Command
|
||||
#define AT91C_TC_SWTRG ((unsigned int) 0x1 << 2) // (TC) Software Trigger Command
|
||||
// -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode --------
|
||||
#define AT91C_TC_CPCSTOP ((unsigned int) 0x1 << 6) // (TC) Counter Clock Stopped with RC Compare
|
||||
#define AT91C_TC_CPCDIS ((unsigned int) 0x1 << 7) // (TC) Counter Clock Disable with RC Compare
|
||||
#define AT91C_TC_EEVTEDG ((unsigned int) 0x3 << 8) // (TC) External Event Edge Selection
|
||||
#define AT91C_TC_EEVTEDG_NONE ((unsigned int) 0x0 << 8) // (TC) Edge: None
|
||||
#define AT91C_TC_EEVTEDG_RISING ((unsigned int) 0x1 << 8) // (TC) Edge: rising edge
|
||||
#define AT91C_TC_EEVTEDG_FALLING ((unsigned int) 0x2 << 8) // (TC) Edge: falling edge
|
||||
#define AT91C_TC_EEVTEDG_BOTH ((unsigned int) 0x3 << 8) // (TC) Edge: each edge
|
||||
#define AT91C_TC_EEVT ((unsigned int) 0x3 << 10) // (TC) External Event Selection
|
||||
#define AT91C_TC_EEVT_NONE ((unsigned int) 0x0 << 10) // (TC) Signal selected as external event: TIOB TIOB direction: input
|
||||
#define AT91C_TC_EEVT_RISING ((unsigned int) 0x1 << 10) // (TC) Signal selected as external event: XC0 TIOB direction: output
|
||||
#define AT91C_TC_EEVT_FALLING ((unsigned int) 0x2 << 10) // (TC) Signal selected as external event: XC1 TIOB direction: output
|
||||
#define AT91C_TC_EEVT_BOTH ((unsigned int) 0x3 << 10) // (TC) Signal selected as external event: XC2 TIOB direction: output
|
||||
#define AT91C_TC_ENETRG ((unsigned int) 0x1 << 12) // (TC) External Event Trigger enable
|
||||
#define AT91C_TC_WAVESEL ((unsigned int) 0x3 << 13) // (TC) Waveform Selection
|
||||
#define AT91C_TC_WAVESEL_UP ((unsigned int) 0x0 << 13) // (TC) UP mode without atomatic trigger on RC Compare
|
||||
#define AT91C_TC_WAVESEL_UP_AUTO ((unsigned int) 0x1 << 13) // (TC) UP mode with automatic trigger on RC Compare
|
||||
#define AT91C_TC_WAVESEL_UPDOWN ((unsigned int) 0x2 << 13) // (TC) UPDOWN mode without automatic trigger on RC Compare
|
||||
#define AT91C_TC_WAVESEL_UPDOWN_AUTO ((unsigned int) 0x3 << 13) // (TC) UPDOWN mode with automatic trigger on RC Compare
|
||||
#define AT91C_TC_CPCTRG ((unsigned int) 0x1 << 14) // (TC) RC Compare Trigger Enable
|
||||
#define AT91C_TC_WAVE ((unsigned int) 0x1 << 15) // (TC)
|
||||
#define AT91C_TC_ACPA ((unsigned int) 0x3 << 16) // (TC) RA Compare Effect on TIOA
|
||||
#define AT91C_TC_ACPA_NONE ((unsigned int) 0x0 << 16) // (TC) Effect: none
|
||||
#define AT91C_TC_ACPA_SET ((unsigned int) 0x1 << 16) // (TC) Effect: set
|
||||
#define AT91C_TC_ACPA_CLEAR ((unsigned int) 0x2 << 16) // (TC) Effect: clear
|
||||
#define AT91C_TC_ACPA_TOGGLE ((unsigned int) 0x3 << 16) // (TC) Effect: toggle
|
||||
#define AT91C_TC_ACPC ((unsigned int) 0x3 << 18) // (TC) RC Compare Effect on TIOA
|
||||
#define AT91C_TC_ACPC_NONE ((unsigned int) 0x0 << 18) // (TC) Effect: none
|
||||
#define AT91C_TC_ACPC_SET ((unsigned int) 0x1 << 18) // (TC) Effect: set
|
||||
#define AT91C_TC_ACPC_CLEAR ((unsigned int) 0x2 << 18) // (TC) Effect: clear
|
||||
#define AT91C_TC_ACPC_TOGGLE ((unsigned int) 0x3 << 18) // (TC) Effect: toggle
|
||||
#define AT91C_TC_AEEVT ((unsigned int) 0x3 << 20) // (TC) External Event Effect on TIOA
|
||||
#define AT91C_TC_AEEVT_NONE ((unsigned int) 0x0 << 20) // (TC) Effect: none
|
||||
#define AT91C_TC_AEEVT_SET ((unsigned int) 0x1 << 20) // (TC) Effect: set
|
||||
#define AT91C_TC_AEEVT_CLEAR ((unsigned int) 0x2 << 20) // (TC) Effect: clear
|
||||
#define AT91C_TC_AEEVT_TOGGLE ((unsigned int) 0x3 << 20) // (TC) Effect: toggle
|
||||
#define AT91C_TC_ASWTRG ((unsigned int) 0x3 << 22) // (TC) Software Trigger Effect on TIOA
|
||||
#define AT91C_TC_ASWTRG_NONE ((unsigned int) 0x0 << 22) // (TC) Effect: none
|
||||
#define AT91C_TC_ASWTRG_SET ((unsigned int) 0x1 << 22) // (TC) Effect: set
|
||||
#define AT91C_TC_ASWTRG_CLEAR ((unsigned int) 0x2 << 22) // (TC) Effect: clear
|
||||
#define AT91C_TC_ASWTRG_TOGGLE ((unsigned int) 0x3 << 22) // (TC) Effect: toggle
|
||||
#define AT91C_TC_BCPB ((unsigned int) 0x3 << 24) // (TC) RB Compare Effect on TIOB
|
||||
#define AT91C_TC_BCPB_NONE ((unsigned int) 0x0 << 24) // (TC) Effect: none
|
||||
#define AT91C_TC_BCPB_SET ((unsigned int) 0x1 << 24) // (TC) Effect: set
|
||||
#define AT91C_TC_BCPB_CLEAR ((unsigned int) 0x2 << 24) // (TC) Effect: clear
|
||||
#define AT91C_TC_BCPB_TOGGLE ((unsigned int) 0x3 << 24) // (TC) Effect: toggle
|
||||
#define AT91C_TC_BCPC ((unsigned int) 0x3 << 26) // (TC) RC Compare Effect on TIOB
|
||||
#define AT91C_TC_BCPC_NONE ((unsigned int) 0x0 << 26) // (TC) Effect: none
|
||||
#define AT91C_TC_BCPC_SET ((unsigned int) 0x1 << 26) // (TC) Effect: set
|
||||
#define AT91C_TC_BCPC_CLEAR ((unsigned int) 0x2 << 26) // (TC) Effect: clear
|
||||
#define AT91C_TC_BCPC_TOGGLE ((unsigned int) 0x3 << 26) // (TC) Effect: toggle
|
||||
#define AT91C_TC_BEEVT ((unsigned int) 0x3 << 28) // (TC) External Event Effect on TIOB
|
||||
#define AT91C_TC_BEEVT_NONE ((unsigned int) 0x0 << 28) // (TC) Effect: none
|
||||
#define AT91C_TC_BEEVT_SET ((unsigned int) 0x1 << 28) // (TC) Effect: set
|
||||
#define AT91C_TC_BEEVT_CLEAR ((unsigned int) 0x2 << 28) // (TC) Effect: clear
|
||||
#define AT91C_TC_BEEVT_TOGGLE ((unsigned int) 0x3 << 28) // (TC) Effect: toggle
|
||||
#define AT91C_TC_BSWTRG ((unsigned int) 0x3 << 30) // (TC) Software Trigger Effect on TIOB
|
||||
#define AT91C_TC_BSWTRG_NONE ((unsigned int) 0x0 << 30) // (TC) Effect: none
|
||||
#define AT91C_TC_BSWTRG_SET ((unsigned int) 0x1 << 30) // (TC) Effect: set
|
||||
#define AT91C_TC_BSWTRG_CLEAR ((unsigned int) 0x2 << 30) // (TC) Effect: clear
|
||||
#define AT91C_TC_BSWTRG_TOGGLE ((unsigned int) 0x3 << 30) // (TC) Effect: toggle
|
||||
// -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register --------
|
||||
#define AT91C_TC_COVFS ((unsigned int) 0x1 << 0) // (TC) Counter Overflow
|
||||
#define AT91C_TC_LOVRS ((unsigned int) 0x1 << 1) // (TC) Load Overrun
|
||||
#define AT91C_TC_CPAS ((unsigned int) 0x1 << 2) // (TC) RA Compare
|
||||
#define AT91C_TC_CPBS ((unsigned int) 0x1 << 3) // (TC) RB Compare
|
||||
#define AT91C_TC_CPCS ((unsigned int) 0x1 << 4) // (TC) RC Compare
|
||||
#define AT91C_TC_LDRAS ((unsigned int) 0x1 << 5) // (TC) RA Loading
|
||||
#define AT91C_TC_LDRBS ((unsigned int) 0x1 << 6) // (TC) RB Loading
|
||||
#define AT91C_TC_ETRCS ((unsigned int) 0x1 << 7) // (TC) External Trigger
|
||||
#define AT91C_TC_ETRGS ((unsigned int) 0x1 << 16) // (TC) Clock Enabling
|
||||
#define AT91C_TC_MTIOA ((unsigned int) 0x1 << 17) // (TC) TIOA Mirror
|
||||
#define AT91C_TC_MTIOB ((unsigned int) 0x1 << 18) // (TC) TIOA Mirror
|
||||
// -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register --------
|
||||
// -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register --------
|
||||
// -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register --------
|
||||
|
||||
// *****************************************************************************
|
||||
// SOFTWARE API DEFINITION FOR Timer Counter Interface
|
||||
// *****************************************************************************
|
||||
typedef struct _AT91S_TCB {
|
||||
AT91S_TC TCB_TC0; // TC Channel 0
|
||||
AT91_REG Reserved0[4]; //
|
||||
AT91S_TC TCB_TC1; // TC Channel 1
|
||||
AT91_REG Reserved1[4]; //
|
||||
AT91S_TC TCB_TC2; // TC Channel 2
|
||||
AT91_REG Reserved2[4]; //
|
||||
AT91_REG TCB_BCR; // TC Block Control Register
|
||||
AT91_REG TCB_BMR; // TC Block Mode Register
|
||||
} AT91S_TCB, *AT91PS_TCB;
|
||||
|
||||
// -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register --------
|
||||
#define AT91C_TCB_SYNC ((unsigned int) 0x1 << 0) // (TCB) Synchro Command
|
||||
// -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register --------
|
||||
#define AT91C_TCB_TC0XC0S ((unsigned int) 0x1 << 0) // (TCB) External Clock Signal 0 Selection
|
||||
#define AT91C_TCB_TC0XC0S_TCLK0 ((unsigned int) 0x0) // (TCB) TCLK0 connected to XC0
|
||||
#define AT91C_TCB_TC0XC0S_NONE ((unsigned int) 0x1) // (TCB) None signal connected to XC0
|
||||
#define AT91C_TCB_TC0XC0S_TIOA1 ((unsigned int) 0x2) // (TCB) TIOA1 connected to XC0
|
||||
#define AT91C_TCB_TC0XC0S_TIOA2 ((unsigned int) 0x3) // (TCB) TIOA2 connected to XC0
|
||||
#define AT91C_TCB_TC1XC1S ((unsigned int) 0x1 << 2) // (TCB) External Clock Signal 1 Selection
|
||||
#define AT91C_TCB_TC1XC1S_TCLK1 ((unsigned int) 0x0 << 2) // (TCB) TCLK1 connected to XC1
|
||||
#define AT91C_TCB_TC1XC1S_NONE ((unsigned int) 0x1 << 2) // (TCB) None signal connected to XC1
|
||||
#define AT91C_TCB_TC1XC1S_TIOA0 ((unsigned int) 0x2 << 2) // (TCB) TIOA0 connected to XC1
|
||||
#define AT91C_TCB_TC1XC1S_TIOA2 ((unsigned int) 0x3 << 2) // (TCB) TIOA2 connected to XC1
|
||||
#define AT91C_TCB_TC2XC2S ((unsigned int) 0x1 << 4) // (TCB) External Clock Signal 2 Selection
|
||||
#define AT91C_TCB_TC2XC2S_TCLK2 ((unsigned int) 0x0 << 4) // (TCB) TCLK2 connected to XC2
|
||||
#define AT91C_TCB_TC2XC2S_NONE ((unsigned int) 0x1 << 4) // (TCB) None signal connected to XC2
|
||||
#define AT91C_TCB_TC2XC2S_TIOA0 ((unsigned int) 0x2 << 4) // (TCB) TIOA0 connected to XC2
|
||||
#define AT91C_TCB_TC2XC2S_TIOA2 ((unsigned int) 0x3 << 4) // (TCB) TIOA2 connected to XC2
|
||||
|
||||
// *****************************************************************************
|
||||
// SOFTWARE API DEFINITION FOR Peripheral Data Controller
|
||||
// *****************************************************************************
|
||||
typedef struct _AT91S_PDC {
|
||||
AT91_REG PDC_RPR; // Receive Pointer Register
|
||||
AT91_REG PDC_RCR; // Receive Counter Register
|
||||
AT91_REG PDC_TPR; // Transmit Pointer Register
|
||||
AT91_REG PDC_TCR; // Transmit Counter Register
|
||||
} AT91S_PDC, *AT91PS_PDC;
|
||||
|
||||
|
||||
// *****************************************************************************
|
||||
// SOFTWARE API DEFINITION FOR Usart
|
||||
// *****************************************************************************
|
||||
typedef struct _AT91S_USART {
|
||||
AT91_REG US_CR; // Control Register
|
||||
AT91_REG US_MR; // Mode Register
|
||||
AT91_REG US_IER; // Interrupt Enable Register
|
||||
AT91_REG US_IDR; // Interrupt Disable Register
|
||||
AT91_REG US_IMR; // Interrupt Mask Register
|
||||
AT91_REG US_CSR; // Channel Status Register
|
||||
AT91_REG US_RHR; // Receiver Holding Register
|
||||
AT91_REG US_THR; // Transmitter Holding Register
|
||||
AT91_REG US_BRGR; // Baud Rate Generator Register
|
||||
AT91_REG US_RTOR; // Receiver Time-out Register
|
||||
AT91_REG US_TTGR; // Transmitter Time-guard Register
|
||||
AT91_REG Reserved0[1]; //
|
||||
AT91_REG US_RPR; // Receive Pointer Register
|
||||
AT91_REG US_RCR; // Receive Counter Register
|
||||
AT91_REG US_TPR; // Transmit Pointer Register
|
||||
AT91_REG US_TCR; // Transmit Counter Register
|
||||
} AT91S_USART, *AT91PS_USART;
|
||||
|
||||
// -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register --------
|
||||
#define AT91C_US_RSTRX ((unsigned int) 0x1 << 2) // (USART) Reset Receiver
|
||||
#define AT91C_US_RSTTX ((unsigned int) 0x1 << 3) // (USART) Reset Transmitter
|
||||
#define AT91C_US_RXEN ((unsigned int) 0x1 << 4) // (USART) Receiver Enable
|
||||
#define AT91C_US_RXDIS ((unsigned int) 0x1 << 5) // (USART) Receiver Disable
|
||||
#define AT91C_US_TXEN ((unsigned int) 0x1 << 6) // (USART) Transmitter Enable
|
||||
#define AT91C_US_TXDIS ((unsigned int) 0x1 << 7) // (USART) Transmitter Disable
|
||||
#define AT91C_US_RSTSTA ((unsigned int) 0x1 << 8) // (USART) Reset Status Bits
|
||||
#define AT91C_US_STTBRK ((unsigned int) 0x1 << 9) // (USART) Start Break
|
||||
#define AT91C_US_STPBRK ((unsigned int) 0x1 << 10) // (USART) Stop Break
|
||||
#define AT91C_US_STTTO ((unsigned int) 0x1 << 11) // (USART) Start Time-out
|
||||
#define AT91C_US_SENDA ((unsigned int) 0x1 << 12) // (USART) Send Address
|
||||
// -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register --------
|
||||
#define AT91C_US_CLKS ((unsigned int) 0x3 << 4) // (USART) Clock Selection (Baud Rate generator Input Clock
|
||||
#define AT91C_US_CLKS_CLOCK ((unsigned int) 0x0 << 4) // (USART) Clock
|
||||
#define AT91C_US_CLKS_FDIV1 ((unsigned int) 0x1 << 4) // (USART) fdiv1
|
||||
#define AT91C_US_CLKS_SLOW ((unsigned int) 0x2 << 4) // (USART) slow_clock (ARM)
|
||||
#define AT91C_US_CLKS_EXT ((unsigned int) 0x3 << 4) // (USART) External (SCK)
|
||||
#define AT91C_US_CHRL ((unsigned int) 0x3 << 6) // (USART) Clock Selection (Baud Rate generator Input Clock
|
||||
#define AT91C_US_CHRL_5_BITS ((unsigned int) 0x0 << 6) // (USART) Character Length: 5 bits
|
||||
#define AT91C_US_CHRL_6_BITS ((unsigned int) 0x1 << 6) // (USART) Character Length: 6 bits
|
||||
#define AT91C_US_CHRL_7_BITS ((unsigned int) 0x2 << 6) // (USART) Character Length: 7 bits
|
||||
#define AT91C_US_CHRL_8_BITS ((unsigned int) 0x3 << 6) // (USART) Character Length: 8 bits
|
||||
#define AT91C_US_SYNC ((unsigned int) 0x1 << 8) // (USART) Synchronous Mode Select
|
||||
#define AT91C_US_PAR ((unsigned int) 0x7 << 9) // (USART) Parity type
|
||||
#define AT91C_US_PAR_EVEN ((unsigned int) 0x0 << 9) // (USART) Even Parity
|
||||
#define AT91C_US_PAR_ODD ((unsigned int) 0x1 << 9) // (USART) Odd Parity
|
||||
#define AT91C_US_PAR_SPACE ((unsigned int) 0x2 << 9) // (USART) Parity forced to 0 (Space)
|
||||
#define AT91C_US_PAR_MARK ((unsigned int) 0x3 << 9) // (USART) Parity forced to 1 (Mark)
|
||||
#define AT91C_US_PAR_NONE ((unsigned int) 0x4 << 9) // (USART) No Parity
|
||||
#define AT91C_US_PAR_MULTI_DROP ((unsigned int) 0x6 << 9) // (USART) Multi-drop mode
|
||||
#define AT91C_US_NBSTOP ((unsigned int) 0x3 << 12) // (USART) Number of Stop bits
|
||||
#define AT91C_US_NBSTOP_1_BIT ((unsigned int) 0x0 << 12) // (USART) 1 stop bit
|
||||
#define AT91C_US_NBSTOP_15_BIT ((unsigned int) 0x1 << 12) // (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits
|
||||
#define AT91C_US_NBSTOP_2_BIT ((unsigned int) 0x2 << 12) // (USART) 2 stop bits
|
||||
#define AT91C_US_CHMODE ((unsigned int) 0x3 << 14) // (USART) Channel Mode
|
||||
#define AT91C_US_CHMODE_NORMAL ((unsigned int) 0x0 << 14) // (USART) Normal Mode: The USART channel operates as an RX/TX USART.
|
||||
#define AT91C_US_CHMODE_AUTO ((unsigned int) 0x1 << 14) // (USART) Automatic Echo: Receiver Data Input is connected to the TXD pin.
|
||||
#define AT91C_US_CHMODE_LOCAL ((unsigned int) 0x2 << 14) // (USART) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.
|
||||
#define AT91C_US_CHMODE_REMOTE ((unsigned int) 0x3 << 14) // (USART) Remote Loopback: RXD pin is internally connected to TXD pin.
|
||||
#define AT91C_US_MODE9 ((unsigned int) 0x1 << 17) // (USART) 9-bit Character length
|
||||
#define AT91C_US_CKLO ((unsigned int) 0x1 << 18) // (USART) Clock Output Select
|
||||
// -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register --------
|
||||
#define AT91C_US_RXRDY ((unsigned int) 0x1 << 0) // (USART) RXRDY Interrupt
|
||||
#define AT91C_US_TXRDY ((unsigned int) 0x1 << 1) // (USART) TXRDY Interrupt
|
||||
#define AT91C_US_RXBRK ((unsigned int) 0x1 << 2) // (USART) Break Received/End of Break
|
||||
#define AT91C_US_ENDRX ((unsigned int) 0x1 << 3) // (USART) End of Receive Transfer Interrupt
|
||||
#define AT91C_US_ENDTX ((unsigned int) 0x1 << 4) // (USART) End of Transmit Interrupt
|
||||
#define AT91C_US_OVRE ((unsigned int) 0x1 << 5) // (USART) Overrun Interrupt
|
||||
#define AT91C_US_FRAME ((unsigned int) 0x1 << 6) // (USART) Framing Error Interrupt
|
||||
#define AT91C_US_PARE ((unsigned int) 0x1 << 7) // (USART) Parity Error Interrupt
|
||||
#define AT91C_US_TIMEOUT ((unsigned int) 0x1 << 8) // (USART) Receiver Time-out
|
||||
#define AT91C_US_TXEMPTY ((unsigned int) 0x1 << 9) // (USART) TXEMPTY Interrupt
|
||||
// -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register --------
|
||||
// -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register --------
|
||||
// -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register --------
|
||||
|
||||
// *****************************************************************************
|
||||
// SOFTWARE API DEFINITION FOR Special Function Interface
|
||||
// *****************************************************************************
|
||||
typedef struct _AT91S_SF {
|
||||
AT91_REG SF_CIDR; // Chip ID Register
|
||||
AT91_REG SF_EXID; // Chip ID Extension Register
|
||||
AT91_REG SF_RSR; // Reset Status Register
|
||||
AT91_REG SF_MMR; // Memory Mode Register
|
||||
AT91_REG Reserved0[2]; //
|
||||
AT91_REG SF_PMR; // Protect Mode Register
|
||||
} AT91S_SF, *AT91PS_SF;
|
||||
|
||||
// -------- SF_CIDR : (SF Offset: 0x0) Chip ID Register --------
|
||||
#define AT91C_SF_VERSION ((unsigned int) 0x1F << 0) // (SF) Version of the chip
|
||||
#define AT91C_SF_BIT5 ((unsigned int) 0x1 << 5) // (SF) Hardwired at 0
|
||||
#define AT91C_SF_BIT6 ((unsigned int) 0x1 << 6) // (SF) Hardwired at 1
|
||||
#define AT91C_SF_BIT7 ((unsigned int) 0x1 << 7) // (SF) Hardwired at 0
|
||||
#define AT91C_SF_NVPSIZ ((unsigned int) 0xF << 8) // (SF) Nonvolatile Program Memory Size
|
||||
#define AT91C_SF_NVPSIZ_NONE ((unsigned int) 0x0 << 8) // (SF) None
|
||||
#define AT91C_SF_NVPSIZ_32K ((unsigned int) 0x3 << 8) // (SF) 32K Bytes
|
||||
#define AT91C_SF_NVPSIZ_64K ((unsigned int) 0x5 << 8) // (SF) 64K Bytes
|
||||
#define AT91C_SF_NVPSIZ_128K ((unsigned int) 0x7 << 8) // (SF) 128K Bytes
|
||||
#define AT91C_SF_NVPSIZ_256K ((unsigned int) 0x11 << 8) // (SF) 256K Bytes
|
||||
#define AT91C_SF_NVDSIZ ((unsigned int) 0xF << 12) // (SF) Nonvolatile Data Memory Size
|
||||
#define AT91C_SF_NVDSIZ_NONE ((unsigned int) 0x0 << 12) // (SF) None
|
||||
#define AT91C_SF_VDSIZ ((unsigned int) 0xF << 16) // (SF) Volatile Data Memory Size
|
||||
#define AT91C_SF_VDSIZ_NONE ((unsigned int) 0x0 << 16) // (SF) None
|
||||
#define AT91C_SF_VDSIZ_1K ((unsigned int) 0x3 << 16) // (SF) 1K Bytes
|
||||
#define AT91C_SF_VDSIZ_2K ((unsigned int) 0x5 << 16) // (SF) 2K Bytes
|
||||
#define AT91C_SF_VDSIZ_4K ((unsigned int) 0x7 << 16) // (SF) 4K Bytes
|
||||
#define AT91C_SF_VDSIZ_8K ((unsigned int) 0x11 << 16) // (SF) 8K Bytes
|
||||
#define AT91C_SF_ARCH ((unsigned int) 0xFF << 20) // (SF) Chip Architecture
|
||||
#define AT91C_SF_ARCH_AT91x40 ((unsigned int) 0x28 << 20) // (SF) AT91x40yyy
|
||||
#define AT91C_SF_ARCH_AT91x55 ((unsigned int) 0x37 << 20) // (SF) AT91x55yyy
|
||||
#define AT91C_SF_ARCH_AT91x63 ((unsigned int) 0x3F << 20) // (SF) AT91x63yyy
|
||||
#define AT91C_SF_NVPTYP ((unsigned int) 0x7 << 28) // (SF) Nonvolatile Program Memory Type
|
||||
#define AT91C_SF_NVPTYP_NVPTYP_M ((unsigned int) 0x1 << 28) // (SF) 'M' Series or 'F' Series
|
||||
#define AT91C_SF_NVPTYP_NVPTYP_R ((unsigned int) 0x4 << 28) // (SF) 'R' Series
|
||||
#define AT91C_SF_EXT ((unsigned int) 0x1 << 31) // (SF) Extension Flag
|
||||
// -------- SF_RSR : (SF Offset: 0x8) Reset Status Information --------
|
||||
#define AT91C_SF_RESET ((unsigned int) 0xFF << 0) // (SF) Cause of Reset
|
||||
#define AT91C_SF_RESET_WD ((unsigned int) 0x35) // (SF) Internal Watchdog
|
||||
#define AT91C_SF_RESET_EXT ((unsigned int) 0x6C) // (SF) External Pin
|
||||
// -------- SF_MMR : (SF Offset: 0xc) Memory Mode Register --------
|
||||
#define AT91C_SF_RAMWU ((unsigned int) 0x1 << 0) // (SF) Internal Extended RAM Write Detection
|
||||
// -------- SF_PMR : (SF Offset: 0x18) Protection Mode Register --------
|
||||
#define AT91C_SF_AIC ((unsigned int) 0x1 << 5) // (SF) AIC Protect Mode Enable
|
||||
#define AT91C_SF_PMRKEY ((unsigned int) 0xFFFF << 16) // (SF) Protect Mode Register Key
|
||||
|
||||
// *****************************************************************************
|
||||
// SOFTWARE API DEFINITION FOR External Bus Interface
|
||||
// *****************************************************************************
|
||||
typedef struct _AT91S_EBI {
|
||||
AT91_REG EBI_CSR[8]; // Chip-select Register
|
||||
AT91_REG EBI_RCR; // Remap Control Register
|
||||
AT91_REG EBI_MCR; // Memory Control Register
|
||||
} AT91S_EBI, *AT91PS_EBI;
|
||||
|
||||
// -------- EBI_CSR : (EBI Offset: 0x0) Chip Select Register --------
|
||||
#define AT91C_EBI_DBW ((unsigned int) 0x3 << 0) // (EBI) Data Bus Width
|
||||
#define AT91C_EBI_DBW_16 ((unsigned int) 0x1) // (EBI) 16-bit data bus width
|
||||
#define AT91C_EBI_DBW_8 ((unsigned int) 0x2) // (EBI) 8-bit data bus width
|
||||
#define AT91C_EBI_NWS ((unsigned int) 0x7 << 2) // (EBI) Number of wait states
|
||||
#define AT91C_EBI_NWS_1 ((unsigned int) 0x0 << 2) // (EBI) 1 wait state
|
||||
#define AT91C_EBI_NWS_2 ((unsigned int) 0x1 << 2) // (EBI) 2 wait state
|
||||
#define AT91C_EBI_NWS_3 ((unsigned int) 0x2 << 2) // (EBI) 3 wait state
|
||||
#define AT91C_EBI_NWS_4 ((unsigned int) 0x3 << 2) // (EBI) 4 wait state
|
||||
#define AT91C_EBI_NWS_5 ((unsigned int) 0x4 << 2) // (EBI) 5 wait state
|
||||
#define AT91C_EBI_NWS_6 ((unsigned int) 0x5 << 2) // (EBI) 6 wait state
|
||||
#define AT91C_EBI_NWS_7 ((unsigned int) 0x6 << 2) // (EBI) 7 wait state
|
||||
#define AT91C_EBI_NWS_8 ((unsigned int) 0x7 << 2) // (EBI) 8 wait state
|
||||
#define AT91C_EBI_WSE ((unsigned int) 0x1 << 5) // (EBI) Wait State Enable
|
||||
#define AT91C_EBI_PAGES ((unsigned int) 0x3 << 7) // (EBI) Pages Size
|
||||
#define AT91C_EBI_PAGES_1M ((unsigned int) 0x0 << 7) // (EBI) 1M Byte
|
||||
#define AT91C_EBI_PAGES_4M ((unsigned int) 0x1 << 7) // (EBI) 4M Byte
|
||||
#define AT91C_EBI_PAGES_16M ((unsigned int) 0x2 << 7) // (EBI) 16M Byte
|
||||
#define AT91C_EBI_PAGES_64M ((unsigned int) 0x3 << 7) // (EBI) 64M Byte
|
||||
#define AT91C_EBI_TDF ((unsigned int) 0x7 << 9) // (EBI) Data Float Output Time
|
||||
#define AT91C_EBI_TDF_0 ((unsigned int) 0x0 << 9) // (EBI) 1 TDF
|
||||
#define AT91C_EBI_TDF_1 ((unsigned int) 0x1 << 9) // (EBI) 2 TDF
|
||||
#define AT91C_EBI_TDF_2 ((unsigned int) 0x2 << 9) // (EBI) 3 TDF
|
||||
#define AT91C_EBI_TDF_3 ((unsigned int) 0x3 << 9) // (EBI) 4 TDF
|
||||
#define AT91C_EBI_TDF_4 ((unsigned int) 0x4 << 9) // (EBI) 5 TDF
|
||||
#define AT91C_EBI_TDF_5 ((unsigned int) 0x5 << 9) // (EBI) 6 TDF
|
||||
#define AT91C_EBI_TDF_6 ((unsigned int) 0x6 << 9) // (EBI) 7 TDF
|
||||
#define AT91C_EBI_TDF_7 ((unsigned int) 0x7 << 9) // (EBI) 8 TDF
|
||||
#define AT91C_EBI_BAT ((unsigned int) 0x1 << 12) // (EBI) Byte Access Type
|
||||
#define AT91C_EBI_CSEN ((unsigned int) 0x1 << 13) // (EBI) Chip Select Enable
|
||||
#define AT91C_EBI_BA ((unsigned int) 0xFFF << 20) // (EBI) Base Address
|
||||
// -------- EBI_RCR : (EBI Offset: 0x20) Remap Control Register --------
|
||||
#define AT91C_EBI_RCB ((unsigned int) 0x1 << 0) // (EBI) 0 = No effect. 1 = Cancels the remapping (performed at reset) of the page zero memory devices.
|
||||
// -------- EBI_MCR : (EBI Offset: 0x24) Memory Control Register --------
|
||||
#define AT91C_EBI_ALE ((unsigned int) 0x7 << 0) // (EBI) Address Line Enable
|
||||
#define AT91C_EBI_ALE_16M ((unsigned int) 0x0) // (EBI) Valid Address Bits = A20, A21, A22, A23 Max Addressable Space = 16M Bytes Valid Chip Select=None
|
||||
#define AT91C_EBI_ALE_8M ((unsigned int) 0x4) // (EBI) Valid Address Bits = A20, A21, A22 Max Addressable Space = 8M Bytes Valid Chip Select = CS4
|
||||
#define AT91C_EBI_ALE_4M ((unsigned int) 0x5) // (EBI) Valid Address Bits = A20, A21 Max Addressable Space = 4M Bytes Valid Chip Select = CS4, CS5
|
||||
#define AT91C_EBI_ALE_2M ((unsigned int) 0x6) // (EBI) Valid Address Bits = A20 Max Addressable Space = 2M Bytes Valid Chip Select = CS4, CS5, CS6
|
||||
#define AT91C_EBI_ALE_1M ((unsigned int) 0x7) // (EBI) Valid Address Bits = None Max Addressable Space = 1M Byte Valid Chip Select = CS4, CS5, CS6, CS7
|
||||
#define AT91C_EBI_DRP ((unsigned int) 0x1 << 4) // (EBI)
|
||||
|
||||
// *****************************************************************************
|
||||
// REGISTER ADDRESS DEFINITION FOR AT91R40008
|
||||
// *****************************************************************************
|
||||
// ========== Register definition for AIC peripheral ==========
|
||||
#define AT91C_AIC_EOICR ((AT91_REG *) 0xFFFFF130) // (AIC) End of Interrupt Command Register
|
||||
#define AT91C_AIC_ICCR ((AT91_REG *) 0xFFFFF128) // (AIC) Interrupt Clear Command Register
|
||||
#define AT91C_AIC_IECR ((AT91_REG *) 0xFFFFF120) // (AIC) Interrupt Enable Command Register
|
||||
#define AT91C_AIC_SVR ((AT91_REG *) 0xFFFFF080) // (AIC) Source Vector egister
|
||||
#define AT91C_AIC_SMR ((AT91_REG *) 0xFFFFF000) // (AIC) Source Mode egister
|
||||
#define AT91C_AIC_SPU ((AT91_REG *) 0xFFFFF134) // (AIC) Spurious Vector Register
|
||||
#define AT91C_AIC_FVR ((AT91_REG *) 0xFFFFF104) // (AIC) FIQ Vector Register
|
||||
#define AT91C_AIC_IVR ((AT91_REG *) 0xFFFFF100) // (AIC) IRQ Vector Register
|
||||
#define AT91C_AIC_ISR ((AT91_REG *) 0xFFFFF108) // (AIC) Interrupt Status Register
|
||||
#define AT91C_AIC_IMR ((AT91_REG *) 0xFFFFF110) // (AIC) Interrupt Mask Register
|
||||
#define AT91C_AIC_ISCR ((AT91_REG *) 0xFFFFF12C) // (AIC) Interrupt Set Command Register
|
||||
#define AT91C_AIC_IPR ((AT91_REG *) 0xFFFFF10C) // (AIC) Interrupt Pending Register
|
||||
#define AT91C_AIC_CISR ((AT91_REG *) 0xFFFFF114) // (AIC) Core Interrupt Status Register
|
||||
#define AT91C_AIC_IDCR ((AT91_REG *) 0xFFFFF124) // (AIC) Interrupt Disable Command egister
|
||||
// ========== Register definition for WD peripheral ==========
|
||||
#define AT91C_WD_SR ((AT91_REG *) 0xFFFF800C) // (WD) Status Register
|
||||
#define AT91C_WD_CMR ((AT91_REG *) 0xFFFF8004) // (WD) Clock Mode Register
|
||||
#define AT91C_WD_CR ((AT91_REG *) 0xFFFF8008) // (WD) Control Register
|
||||
#define AT91C_WD_OMR ((AT91_REG *) 0xFFFF8000) // (WD) Overflow Mode Register
|
||||
// ========== Register definition for PS peripheral ==========
|
||||
#define AT91C_PS_PCDR ((AT91_REG *) 0xFFFF4008) // (PS) Peripheral Clock Disable Register
|
||||
#define AT91C_PS_CR ((AT91_REG *) 0xFFFF4000) // (PS) Control Register
|
||||
#define AT91C_PS_PCSR ((AT91_REG *) 0xFFFF400C) // (PS) Peripheral Clock Status Register
|
||||
#define AT91C_PS_PCER ((AT91_REG *) 0xFFFF4004) // (PS) Peripheral Clock Enable Register
|
||||
// ========== Register definition for PIO peripheral ==========
|
||||
#define AT91C_PIO_MDSR ((AT91_REG *) 0xFFFF0058) // (PIO) Multi-driver Status Register
|
||||
#define AT91C_PIO_IFSR ((AT91_REG *) 0xFFFF0028) // (PIO) Input Filter Status Register
|
||||
#define AT91C_PIO_IFER ((AT91_REG *) 0xFFFF0020) // (PIO) Input Filter Enable Register
|
||||
#define AT91C_PIO_OSR ((AT91_REG *) 0xFFFF0018) // (PIO) Output Status Register
|
||||
#define AT91C_PIO_OER ((AT91_REG *) 0xFFFF0010) // (PIO) Output Enable Register
|
||||
#define AT91C_PIO_PSR ((AT91_REG *) 0xFFFF0008) // (PIO) PIO Status Register
|
||||
#define AT91C_PIO_PDSR ((AT91_REG *) 0xFFFF003C) // (PIO) Pin Data Status Register
|
||||
#define AT91C_PIO_CODR ((AT91_REG *) 0xFFFF0034) // (PIO) Clear Output Data Register
|
||||
#define AT91C_PIO_IFDR ((AT91_REG *) 0xFFFF0024) // (PIO) Input Filter Disable Register
|
||||
#define AT91C_PIO_MDER ((AT91_REG *) 0xFFFF0050) // (PIO) Multi-driver Enable Register
|
||||
#define AT91C_PIO_IMR ((AT91_REG *) 0xFFFF0048) // (PIO) Interrupt Mask Register
|
||||
#define AT91C_PIO_IER ((AT91_REG *) 0xFFFF0040) // (PIO) Interrupt Enable Register
|
||||
#define AT91C_PIO_ODSR ((AT91_REG *) 0xFFFF0038) // (PIO) Output Data Status Register
|
||||
#define AT91C_PIO_SODR ((AT91_REG *) 0xFFFF0030) // (PIO) Set Output Data Register
|
||||
#define AT91C_PIO_PER ((AT91_REG *) 0xFFFF0000) // (PIO) PIO Enable Register
|
||||
#define AT91C_PIO_MDDR ((AT91_REG *) 0xFFFF0054) // (PIO) Multi-driver Disable Register
|
||||
#define AT91C_PIO_ISR ((AT91_REG *) 0xFFFF004C) // (PIO) Interrupt Status Register
|
||||
#define AT91C_PIO_IDR ((AT91_REG *) 0xFFFF0044) // (PIO) Interrupt Disable Register
|
||||
#define AT91C_PIO_PDR ((AT91_REG *) 0xFFFF0004) // (PIO) PIO Disable Register
|
||||
#define AT91C_PIO_ODR ((AT91_REG *) 0xFFFF0014) // (PIO) Output Disable Registerr
|
||||
// ========== Register definition for TC2 peripheral ==========
|
||||
#define AT91C_TC2_IDR ((AT91_REG *) 0xFFFE00A8) // (TC2) Interrupt Disable Register
|
||||
#define AT91C_TC2_SR ((AT91_REG *) 0xFFFE00A0) // (TC2) Status Register
|
||||
#define AT91C_TC2_RB ((AT91_REG *) 0xFFFE0098) // (TC2) Register B
|
||||
#define AT91C_TC2_CV ((AT91_REG *) 0xFFFE0090) // (TC2) Counter Value
|
||||
#define AT91C_TC2_CCR ((AT91_REG *) 0xFFFE0080) // (TC2) Channel Control Register
|
||||
#define AT91C_TC2_IMR ((AT91_REG *) 0xFFFE00AC) // (TC2) Interrupt Mask Register
|
||||
#define AT91C_TC2_IER ((AT91_REG *) 0xFFFE00A4) // (TC2) Interrupt Enable Register
|
||||
#define AT91C_TC2_RC ((AT91_REG *) 0xFFFE009C) // (TC2) Register C
|
||||
#define AT91C_TC2_RA ((AT91_REG *) 0xFFFE0094) // (TC2) Register A
|
||||
#define AT91C_TC2_CMR ((AT91_REG *) 0xFFFE0084) // (TC2) Channel Mode Register
|
||||
// ========== Register definition for TC1 peripheral ==========
|
||||
#define AT91C_TC1_IDR ((AT91_REG *) 0xFFFE0068) // (TC1) Interrupt Disable Register
|
||||
#define AT91C_TC1_SR ((AT91_REG *) 0xFFFE0060) // (TC1) Status Register
|
||||
#define AT91C_TC1_RB ((AT91_REG *) 0xFFFE0058) // (TC1) Register B
|
||||
#define AT91C_TC1_CV ((AT91_REG *) 0xFFFE0050) // (TC1) Counter Value
|
||||
#define AT91C_TC1_CCR ((AT91_REG *) 0xFFFE0040) // (TC1) Channel Control Register
|
||||
#define AT91C_TC1_IMR ((AT91_REG *) 0xFFFE006C) // (TC1) Interrupt Mask Register
|
||||
#define AT91C_TC1_IER ((AT91_REG *) 0xFFFE0064) // (TC1) Interrupt Enable Register
|
||||
#define AT91C_TC1_RC ((AT91_REG *) 0xFFFE005C) // (TC1) Register C
|
||||
#define AT91C_TC1_RA ((AT91_REG *) 0xFFFE0054) // (TC1) Register A
|
||||
#define AT91C_TC1_CMR ((AT91_REG *) 0xFFFE0044) // (TC1) Channel Mode Register
|
||||
// ========== Register definition for TC0 peripheral ==========
|
||||
#define AT91C_TC0_IDR ((AT91_REG *) 0xFFFE0028) // (TC0) Interrupt Disable Register
|
||||
#define AT91C_TC0_SR ((AT91_REG *) 0xFFFE0020) // (TC0) Status Register
|
||||
#define AT91C_TC0_RB ((AT91_REG *) 0xFFFE0018) // (TC0) Register B
|
||||
#define AT91C_TC0_CV ((AT91_REG *) 0xFFFE0010) // (TC0) Counter Value
|
||||
#define AT91C_TC0_CCR ((AT91_REG *) 0xFFFE0000) // (TC0) Channel Control Register
|
||||
#define AT91C_TC0_IMR ((AT91_REG *) 0xFFFE002C) // (TC0) Interrupt Mask Register
|
||||
#define AT91C_TC0_IER ((AT91_REG *) 0xFFFE0024) // (TC0) Interrupt Enable Register
|
||||
#define AT91C_TC0_RC ((AT91_REG *) 0xFFFE001C) // (TC0) Register C
|
||||
#define AT91C_TC0_RA ((AT91_REG *) 0xFFFE0014) // (TC0) Register A
|
||||
#define AT91C_TC0_CMR ((AT91_REG *) 0xFFFE0004) // (TC0) Channel Mode Register
|
||||
// ========== Register definition for TCB0 peripheral ==========
|
||||
#define AT91C_TCB0_BCR ((AT91_REG *) 0xFFFE00C0) // (TCB0) TC Block Control Register
|
||||
#define AT91C_TCB0_BMR ((AT91_REG *) 0xFFFE00C4) // (TCB0) TC Block Mode Register
|
||||
// ========== Register definition for PDC_US1 peripheral ==========
|
||||
#define AT91C_US1_TPR ((AT91_REG *) 0xFFFC4038) // (PDC_US1) Transmit Pointer Register
|
||||
#define AT91C_US1_RPR ((AT91_REG *) 0xFFFC4030) // (PDC_US1) Receive Pointer Register
|
||||
#define AT91C_US1_TCR ((AT91_REG *) 0xFFFC403C) // (PDC_US1) Transmit Counter Register
|
||||
#define AT91C_US1_RCR ((AT91_REG *) 0xFFFC4034) // (PDC_US1) Receive Counter Register
|
||||
// ========== Register definition for US1 peripheral ==========
|
||||
#define AT91C_US1_RTOR ((AT91_REG *) 0xFFFCC024) // (US1) Receiver Time-out Register
|
||||
#define AT91C_US1_THR ((AT91_REG *) 0xFFFCC01C) // (US1) Transmitter Holding Register
|
||||
#define AT91C_US1_CSR ((AT91_REG *) 0xFFFCC014) // (US1) Channel Status Register
|
||||
#define AT91C_US1_IDR ((AT91_REG *) 0xFFFCC00C) // (US1) Interrupt Disable Register
|
||||
#define AT91C_US1_MR ((AT91_REG *) 0xFFFCC004) // (US1) Mode Register
|
||||
#define AT91C_US1_TTGR ((AT91_REG *) 0xFFFCC028) // (US1) Transmitter Time-guard Register
|
||||
#define AT91C_US1_BRGR ((AT91_REG *) 0xFFFCC020) // (US1) Baud Rate Generator Register
|
||||
#define AT91C_US1_RHR ((AT91_REG *) 0xFFFCC018) // (US1) Receiver Holding Register
|
||||
#define AT91C_US1_IMR ((AT91_REG *) 0xFFFCC010) // (US1) Interrupt Mask Register
|
||||
#define AT91C_US1_IER ((AT91_REG *) 0xFFFCC008) // (US1) Interrupt Enable Register
|
||||
#define AT91C_US1_CR ((AT91_REG *) 0xFFFCC000) // (US1) Control Register
|
||||
// ========== Register definition for PDC_US0 peripheral ==========
|
||||
#define AT91C_US0_TPR ((AT91_REG *) 0xFFFC0038) // (PDC_US0) Transmit Pointer Register
|
||||
#define AT91C_US0_RPR ((AT91_REG *) 0xFFFC0030) // (PDC_US0) Receive Pointer Register
|
||||
#define AT91C_US0_TCR ((AT91_REG *) 0xFFFC003C) // (PDC_US0) Transmit Counter Register
|
||||
#define AT91C_US0_RCR ((AT91_REG *) 0xFFFC0034) // (PDC_US0) Receive Counter Register
|
||||
// ========== Register definition for US0 peripheral ==========
|
||||
#define AT91C_US0_RTOR ((AT91_REG *) 0xFFFD0024) // (US0) Receiver Time-out Register
|
||||
#define AT91C_US0_THR ((AT91_REG *) 0xFFFD001C) // (US0) Transmitter Holding Register
|
||||
#define AT91C_US0_CSR ((AT91_REG *) 0xFFFD0014) // (US0) Channel Status Register
|
||||
#define AT91C_US0_IDR ((AT91_REG *) 0xFFFD000C) // (US0) Interrupt Disable Register
|
||||
#define AT91C_US0_MR ((AT91_REG *) 0xFFFD0004) // (US0) Mode Register
|
||||
#define AT91C_US0_TTGR ((AT91_REG *) 0xFFFD0028) // (US0) Transmitter Time-guard Register
|
||||
#define AT91C_US0_BRGR ((AT91_REG *) 0xFFFD0020) // (US0) Baud Rate Generator Register
|
||||
#define AT91C_US0_RHR ((AT91_REG *) 0xFFFD0018) // (US0) Receiver Holding Register
|
||||
#define AT91C_US0_IMR ((AT91_REG *) 0xFFFD0010) // (US0) Interrupt Mask Register
|
||||
#define AT91C_US0_IER ((AT91_REG *) 0xFFFD0008) // (US0) Interrupt Enable Register
|
||||
#define AT91C_US0_CR ((AT91_REG *) 0xFFFD0000) // (US0) Control Register
|
||||
// ========== Register definition for SF peripheral ==========
|
||||
#define AT91C_SF_PMR ((AT91_REG *) 0xFFF00018) // (SF) Protect Mode Register
|
||||
#define AT91C_SF_RSR ((AT91_REG *) 0xFFF00008) // (SF) Reset Status Register
|
||||
#define AT91C_SF_CIDR ((AT91_REG *) 0xFFF00000) // (SF) Chip ID Register
|
||||
#define AT91C_SF_MMR ((AT91_REG *) 0xFFF0000C) // (SF) Memory Mode Register
|
||||
#define AT91C_SF_EXID ((AT91_REG *) 0xFFF00004) // (SF) Chip ID Extension Register
|
||||
// ========== Register definition for EBI peripheral ==========
|
||||
#define AT91C_EBI_RCR ((AT91_REG *) 0xFFE00020) // (EBI) Remap Control Register
|
||||
#define AT91C_EBI_CSR ((AT91_REG *) 0xFFE00000) // (EBI) Chip-select Register
|
||||
#define AT91C_EBI_MCR ((AT91_REG *) 0xFFE00024) // (EBI) Memory Control Register
|
||||
|
||||
// *****************************************************************************
|
||||
// PIO DEFINITIONS FOR AT91R40008
|
||||
// *****************************************************************************
|
||||
#define AT91C_PIO_P0 ((unsigned int) 1 << 0) // Pin Controlled by P0
|
||||
#define AT91C_P0_TCLK0 ((unsigned int) AT91C_PIO_P0) // Timer 0 Clock signal
|
||||
#define AT91C_PIO_P1 ((unsigned int) 1 << 1) // Pin Controlled by P1
|
||||
#define AT91C_P1_TIOA0 ((unsigned int) AT91C_PIO_P1) // Timer 0 Signal A
|
||||
#define AT91C_PIO_P10 ((unsigned int) 1 << 10) // Pin Controlled by P10
|
||||
#define AT91C_P10_IRQ1 ((unsigned int) AT91C_PIO_P10) // External Interrupt 1
|
||||
#define AT91C_PIO_P11 ((unsigned int) 1 << 11) // Pin Controlled by P11
|
||||
#define AT91C_P11_IRQ2 ((unsigned int) AT91C_PIO_P11) // External Interrupt 2
|
||||
#define AT91C_PIO_P12 ((unsigned int) 1 << 12) // Pin Controlled by P12
|
||||
#define AT91C_P12_FIQ ((unsigned int) AT91C_PIO_P12) // Fast External Interrupt
|
||||
#define AT91C_PIO_P13 ((unsigned int) 1 << 13) // Pin Controlled by P13
|
||||
#define AT91C_P13_SCK0 ((unsigned int) AT91C_PIO_P13) // USART 0 Serial Clock
|
||||
#define AT91C_PIO_P14 ((unsigned int) 1 << 14) // Pin Controlled by P14
|
||||
#define AT91C_P14_TXD0 ((unsigned int) AT91C_PIO_P14) // USART 0 Transmit Data
|
||||
#define AT91C_PIO_P15 ((unsigned int) 1 << 15) // Pin Controlled by P15
|
||||
#define AT91C_P15_RXD0 ((unsigned int) AT91C_PIO_P15) // USART 0 Receive Data
|
||||
#define AT91C_PIO_P16 ((unsigned int) 1 << 16) // Pin Controlled by P16
|
||||
#define AT91C_PIO_P17 ((unsigned int) 1 << 17) // Pin Controlled by P17
|
||||
#define AT91C_PIO_P18 ((unsigned int) 1 << 18) // Pin Controlled by P18
|
||||
#define AT91C_PIO_P19 ((unsigned int) 1 << 19) // Pin Controlled by P19
|
||||
#define AT91C_PIO_P2 ((unsigned int) 1 << 2) // Pin Controlled by P2
|
||||
#define AT91C_P2_TIOB0 ((unsigned int) AT91C_PIO_P2) // Timer 0 Signal B
|
||||
#define AT91C_PIO_P20 ((unsigned int) 1 << 20) // Pin Controlled by P20
|
||||
#define AT91C_P20_SCK1 ((unsigned int) AT91C_PIO_P20) // USART 1 Serial Clock
|
||||
#define AT91C_PIO_P21 ((unsigned int) 1 << 21) // Pin Controlled by P21
|
||||
#define AT91C_P21_TXD1 ((unsigned int) AT91C_PIO_P21) // USART 1 Transmit Data
|
||||
#define AT91C_P21_NTRI ((unsigned int) AT91C_PIO_P21) // Tri-state Mode
|
||||
#define AT91C_PIO_P22 ((unsigned int) 1 << 22) // Pin Controlled by P22
|
||||
#define AT91C_P22_RXD1 ((unsigned int) AT91C_PIO_P22) // USART 1 Receive Data
|
||||
#define AT91C_PIO_P23 ((unsigned int) 1 << 23) // Pin Controlled by P23
|
||||
#define AT91C_PIO_P24 ((unsigned int) 1 << 24) // Pin Controlled by P24
|
||||
#define AT91C_P24_BMS ((unsigned int) AT91C_PIO_P24) // Boot Mode Select
|
||||
#define AT91C_PIO_P25 ((unsigned int) 1 << 25) // Pin Controlled by P25
|
||||
#define AT91C_P25_MCKO ((unsigned int) AT91C_PIO_P25) // Master Clock Out
|
||||
#define AT91C_PIO_P26 ((unsigned int) 1 << 26) // Pin Controlled by P26
|
||||
#define AT91C_P26_NCS2 ((unsigned int) AT91C_PIO_P26) // Chip Select 2
|
||||
#define AT91C_PIO_P27 ((unsigned int) 1 << 27) // Pin Controlled by P27
|
||||
#define AT91C_P27_NCS3 ((unsigned int) AT91C_PIO_P27) // Chip Select 3
|
||||
#define AT91C_PIO_P28 ((unsigned int) 1 << 28) // Pin Controlled by P28
|
||||
#define AT91C_P28_A20 ((unsigned int) AT91C_PIO_P28) // Address line A20
|
||||
#define AT91C_P28_NCS7 ((unsigned int) AT91C_PIO_P28) // Chip Select 7
|
||||
#define AT91C_PIO_P29 ((unsigned int) 1 << 29) // Pin Controlled by P29
|
||||
#define AT91C_P29_A21 ((unsigned int) AT91C_PIO_P29) // Address line A21
|
||||
#define AT91C_P29_NCS6 ((unsigned int) AT91C_PIO_P29) // Chip Select 6
|
||||
#define AT91C_PIO_P3 ((unsigned int) 1 << 3) // Pin Controlled by P3
|
||||
#define AT91C_P3_TCLK1 ((unsigned int) AT91C_PIO_P3) // Timer 1 Clock signal
|
||||
#define AT91C_PIO_P30 ((unsigned int) 1 << 30) // Pin Controlled by P30
|
||||
#define AT91C_P30_A22 ((unsigned int) AT91C_PIO_P30) // Address line A22
|
||||
#define AT91C_P30_NCS5 ((unsigned int) AT91C_PIO_P30) // Chip Select 5
|
||||
#define AT91C_PIO_P31 ((unsigned int) 1 << 31) // Pin Controlled by P31
|
||||
#define AT91C_P31_A23 ((unsigned int) AT91C_PIO_P31) // Address line A23
|
||||
#define AT91C_P31_NCS4 ((unsigned int) AT91C_PIO_P31) // Chip Select 4
|
||||
#define AT91C_PIO_P4 ((unsigned int) 1 << 4) // Pin Controlled by P4
|
||||
#define AT91C_P4_TIOA1 ((unsigned int) AT91C_PIO_P4) // Timer 1 Signal A
|
||||
#define AT91C_PIO_P5 ((unsigned int) 1 << 5) // Pin Controlled by P5
|
||||
#define AT91C_P5_TIOB1 ((unsigned int) AT91C_PIO_P5) // Timer 1 Signal B
|
||||
#define AT91C_PIO_P6 ((unsigned int) 1 << 6) // Pin Controlled by P6
|
||||
#define AT91C_P6_TCLK2 ((unsigned int) AT91C_PIO_P6) // Timer 2 Clock signal
|
||||
#define AT91C_PIO_P7 ((unsigned int) 1 << 7) // Pin Controlled by P7
|
||||
#define AT91C_P7_TIOA2 ((unsigned int) AT91C_PIO_P7) // Timer 2 Signal A
|
||||
#define AT91C_PIO_P8 ((unsigned int) 1 << 8) // Pin Controlled by P8
|
||||
#define AT91C_P8_TIOB2 ((unsigned int) AT91C_PIO_P8) // Timer 2 Signal B
|
||||
#define AT91C_PIO_P9 ((unsigned int) 1 << 9) // Pin Controlled by P9
|
||||
#define AT91C_P9_IRQ0 ((unsigned int) AT91C_PIO_P9) // External Interrupt 0
|
||||
|
||||
// *****************************************************************************
|
||||
// PERIPHERAL ID DEFINITIONS FOR AT91R40008
|
||||
// *****************************************************************************
|
||||
#define AT91C_ID_FIQ ((unsigned int) 0) // Advanced Interrupt Controller (FIQ)
|
||||
#define AT91C_ID_SYS ((unsigned int) 1) // SWI
|
||||
#define AT91C_ID_US0 ((unsigned int) 2) // USART 0
|
||||
#define AT91C_ID_US1 ((unsigned int) 3) // USART 1
|
||||
#define AT91C_ID_TC0 ((unsigned int) 4) // Timer Counter 0
|
||||
#define AT91C_ID_TC1 ((unsigned int) 5) // Timer Counter 1
|
||||
#define AT91C_ID_TC2 ((unsigned int) 6) // Timer Counter 2
|
||||
#define AT91C_ID_WD ((unsigned int) 7) // Watchdog Timer
|
||||
#define AT91C_ID_PIO ((unsigned int) 8) // Parallel IO Controller
|
||||
#define AT91C_ID_IRQ0 ((unsigned int) 16) // Advanced Interrupt Controller (IRQ0)
|
||||
#define AT91C_ID_IRQ1 ((unsigned int) 17) // Advanced Interrupt Controller (IRQ1)
|
||||
#define AT91C_ID_IRQ2 ((unsigned int) 18) // Advanced Interrupt Controller (IRQ2)
|
||||
|
||||
// *****************************************************************************
|
||||
// BASE ADDRESS DEFINITIONS FOR AT91R40008
|
||||
// *****************************************************************************
|
||||
#define AT91C_BASE_AIC ((AT91PS_AIC) 0xFFFFF000) // (AIC) Base Address
|
||||
#define AT91C_BASE_WD ((AT91PS_WD) 0xFFFF8000) // (WD) Base Address
|
||||
#define AT91C_BASE_PS ((AT91PS_PS) 0xFFFF4000) // (PS) Base Address
|
||||
#define AT91C_BASE_PIO ((AT91PS_PIO) 0xFFFF0000) // (PIO) Base Address
|
||||
#define AT91C_BASE_TC2 ((AT91PS_TC) 0xFFFE0080) // (TC2) Base Address
|
||||
#define AT91C_BASE_TC1 ((AT91PS_TC) 0xFFFE0040) // (TC1) Base Address
|
||||
#define AT91C_BASE_TC0 ((AT91PS_TC) 0xFFFE0000) // (TC0) Base Address
|
||||
#define AT91C_BASE_TCB0 ((AT91PS_TCB) 0xFFFE0000) // (TCB0) Base Address
|
||||
#define AT91C_BASE_PDC_US1 ((AT91PS_PDC) 0xFFFC4030) // (PDC_US1) Base Address
|
||||
#define AT91C_BASE_US1 ((AT91PS_USART) 0xFFFCC000) // (US1) Base Address
|
||||
#define AT91C_BASE_PDC_US0 ((AT91PS_PDC) 0xFFFC0030) // (PDC_US0) Base Address
|
||||
#define AT91C_BASE_US0 ((AT91PS_USART) 0xFFFD0000) // (US0) Base Address
|
||||
#define AT91C_BASE_SF ((AT91PS_SF) 0xFFF00000) // (SF) Base Address
|
||||
#define AT91C_BASE_EBI ((AT91PS_EBI) 0xFFE00000) // (EBI) Base Address
|
||||
|
||||
// *****************************************************************************
|
||||
// MEMORY MAPPING DEFINITIONS FOR AT91R40008
|
||||
// *****************************************************************************
|
||||
#define AT91C_SRAM_BEFORE_REMAP ((char *) 0x00300000) // Internal SRAM before remap base address
|
||||
#define AT91C_SRAM_BEFORE_REMAP_SIZE ((unsigned int) 0x00040000) // Internal SRAM before remap size in byte (256 Kbyte)
|
||||
#define AT91C_SRAM_AFTER_REMAP ((char *) 0x00000000) // Internal SRAM after remap base address
|
||||
#define AT91C_SRAM_AFTER_REMAP_SIZE ((unsigned int) 0x00040000) // Internal SRAM after remap size in byte (256 Kbyte)
|
||||
|
||||
#endif
|
24
20080307/Demo/ARM7_AT91FR40008_GCC/ATEB40x.cfg
Normal file
24
20080307/Demo/ARM7_AT91FR40008_GCC/ATEB40x.cfg
Normal file
|
@ -0,0 +1,24 @@
|
|||
[SETUP]
|
||||
CpuVendor=Atmel
|
||||
CpuChip=AT91R40807
|
||||
FlashVendor=Atmel
|
||||
FlashChip=AT49BV/F1614A
|
||||
RamAddress=$00000000
|
||||
RamSupport=1
|
||||
FlashAddress=$01000000
|
||||
FlashWidth=16
|
||||
FlashChipsPerSector=1
|
||||
LittleEndian=0
|
||||
SectStart=0
|
||||
SectEnd=38
|
||||
AutoErase=0
|
||||
AutoVerify=1
|
||||
CpuEndian=LITTLE
|
||||
SimCount=3
|
||||
MemoryCount=0
|
||||
ProgramFile=E:\temp\embesttest\Demo\ARM7_AT91R40008_GCC_Embest\rtosdemo.hex
|
||||
UploadFile=c:\EB40_Lower.bin
|
||||
Format=Intel Hex
|
||||
Sim3=EBI_RCR:$00000001
|
||||
Sim2=EBI_CSR1:$02002122
|
||||
Sim1=EBI_CSR0:$01002539
|
89
20080307/Demo/ARM7_AT91FR40008_GCC/FreeRTOSConfig.h
Normal file
89
20080307/Demo/ARM7_AT91FR40008_GCC/FreeRTOSConfig.h
Normal file
|
@ -0,0 +1,89 @@
|
|||
/*
|
||||
FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.
|
||||
|
||||
This file is part of the FreeRTOS.org distribution.
|
||||
|
||||
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FreeRTOS.org; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
A special exception to the GPL can be applied should you wish to distribute
|
||||
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||
the source code for any proprietary components. See the licensing section
|
||||
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||
can be applied.
|
||||
|
||||
***************************************************************************
|
||||
|
||||
Please ensure to read the configuration and relevant port sections of the
|
||||
online documentation.
|
||||
|
||||
+++ http://www.FreeRTOS.org +++
|
||||
Documentation, latest information, license and contact details.
|
||||
|
||||
+++ http://www.SafeRTOS.com +++
|
||||
A version that is certified for use in safety critical systems.
|
||||
|
||||
+++ http://www.OpenRTOS.com +++
|
||||
Commercial support, development, porting, licensing and training services.
|
||||
|
||||
***************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef FREERTOS_CONFIG_H
|
||||
#define FREERTOS_CONFIG_H
|
||||
|
||||
#include <AT91R40008.h>
|
||||
|
||||
#define configFLASH_SPEED_NSEC 100 /* External flash access speed (for ROM builds) */
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* Application specific definitions.
|
||||
*
|
||||
* These definitions should be adjusted for your particular hardware and
|
||||
* application requirements.
|
||||
*
|
||||
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
|
||||
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
|
||||
*----------------------------------------------------------*/
|
||||
|
||||
#define configUSE_PREEMPTION 1
|
||||
#define configUSE_IDLE_HOOK 0
|
||||
#define configUSE_TICK_HOOK 0
|
||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 66000000 ) /* = 66.000MHz clk gen */
|
||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 128 )
|
||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 25 * 1024 ) )
|
||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||
#define configUSE_TRACE_FACILITY 0
|
||||
#define configUSE_16_BIT_TICKS 0
|
||||
#define configIDLE_SHOULD_YIELD 1
|
||||
|
||||
/* Co-routine definitions. */
|
||||
#define configUSE_CO_ROUTINES 0
|
||||
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
|
||||
|
||||
/* Set the following definitions to 1 to include the API function, or zero
|
||||
to exclude the API function. */
|
||||
|
||||
#define INCLUDE_vTaskPrioritySet 1
|
||||
#define INCLUDE_uxTaskPriorityGet 1
|
||||
#define INCLUDE_vTaskDelete 1
|
||||
#define INCLUDE_vTaskCleanUpResources 0
|
||||
#define INCLUDE_vTaskSuspend 1
|
||||
#define INCLUDE_vTaskDelayUntil 1
|
||||
#define INCLUDE_vTaskDelay 1
|
||||
|
||||
|
||||
#endif /* FREERTOS_CONFIG_H */
|
99
20080307/Demo/ARM7_AT91FR40008_GCC/Makefile
Normal file
99
20080307/Demo/ARM7_AT91FR40008_GCC/Makefile
Normal file
|
@ -0,0 +1,99 @@
|
|||
# FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.
|
||||
#
|
||||
# This file is part of the FreeRTOS.org distribution.
|
||||
#
|
||||
# FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# FreeRTOS.org is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with FreeRTOS.org; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# A special exception to the GPL can be applied should you wish to distribute
|
||||
# a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||
# the source code for any proprietary components. See the licensing section
|
||||
# of http://www.FreeRTOS.org for full details of how and when the exception
|
||||
# can be applied.
|
||||
#
|
||||
# ***************************************************************************
|
||||
# See http://www.FreeRTOS.org for documentation, latest information, license
|
||||
# and contact details. Please ensure to read the configuration and relevant
|
||||
# port sections of the online documentation.
|
||||
# ***************************************************************************
|
||||
|
||||
CC=arm-elf-gcc
|
||||
OBJCOPY=arm-elf-objcopy
|
||||
ARCH=arm-elf-ar
|
||||
CRT0=boot.s
|
||||
|
||||
#
|
||||
# CFLAGS common to both the THUMB and ARM mode builds
|
||||
#
|
||||
CFLAGS=-Wall -D $(RUN_MODE) -D GCC_AT91FR40008 -I. -I../../Source/include \
|
||||
-I../Common/include $(DEBUG) -mcpu=arm7tdmi -T$(LDSCRIPT) \
|
||||
-Wcast-align $(OPTIM) -fomit-frame-pointer
|
||||
|
||||
ifeq ($(USE_THUMB_MODE),YES)
|
||||
CFLAGS += -mthumb-interwork -D THUMB_INTERWORK
|
||||
THUMB_FLAGS=-mthumb
|
||||
endif
|
||||
|
||||
|
||||
LINKER_FLAGS=-Xlinker -ortosdemo.elf -Xlinker -M -Xlinker -Map=rtosdemo.map
|
||||
|
||||
#
|
||||
# Source files that can be built to THUMB mode.
|
||||
#
|
||||
THUMB_SRC = \
|
||||
main.c \
|
||||
serial/serial.c \
|
||||
ParTest/ParTest.c \
|
||||
../Common/Minimal/integer.c \
|
||||
../Common/Minimal/flash.c \
|
||||
../Common/Minimal/PollQ.c \
|
||||
../Common/Minimal/comtest.c \
|
||||
../Common/Minimal/flop.c \
|
||||
../Common/Minimal/semtest.c \
|
||||
../Common/Minimal/dynamic.c \
|
||||
../Common/Minimal/BlockQ.c \
|
||||
../../Source/tasks.c \
|
||||
../../Source/queue.c \
|
||||
../../Source/list.c \
|
||||
../../Source/portable/MemMang/heap_2.c \
|
||||
../../Source/portable/GCC/ARM7_AT91FR40008/port.c
|
||||
|
||||
#
|
||||
# Source files that must be built to ARM mode.
|
||||
#
|
||||
ARM_SRC = \
|
||||
../../Source/portable/GCC/ARM7_AT91FR40008/portISR.c \
|
||||
serial/serialISR.c
|
||||
|
||||
#
|
||||
# Define all object files.
|
||||
#
|
||||
ARM_OBJ = $(ARM_SRC:.c=.o)
|
||||
THUMB_OBJ = $(THUMB_SRC:.c=.o)
|
||||
|
||||
rtosdemo.hex : rtosdemo.elf
|
||||
$(OBJCOPY) rtosdemo.elf -O ihex rtosdemo.hex
|
||||
|
||||
rtosdemo.elf : $(ARM_OBJ) $(THUMB_OBJ) $(CRT0) Makefile
|
||||
$(CC) $(CFLAGS) $(ARM_OBJ) $(THUMB_OBJ) -nostartfiles $(CRT0) $(LINKER_FLAGS)
|
||||
|
||||
$(THUMB_OBJ) : %.o : %.c $(LDSCRIPT) Makefile
|
||||
$(CC) -c $(THUMB_FLAGS) $(CFLAGS) $< -o $@
|
||||
|
||||
$(ARM_OBJ) : %.o : %.c $(LDSCRIPT) Makefile
|
||||
$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
clean :
|
||||
touch Makefile
|
||||
|
130
20080307/Demo/ARM7_AT91FR40008_GCC/ParTest/ParTest.c
Normal file
130
20080307/Demo/ARM7_AT91FR40008_GCC/ParTest/ParTest.c
Normal file
|
@ -0,0 +1,130 @@
|
|||
/*
|
||||
FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.
|
||||
|
||||
This file is part of the FreeRTOS.org distribution.
|
||||
|
||||
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FreeRTOS.org; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
A special exception to the GPL can be applied should you wish to distribute
|
||||
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||
the source code for any proprietary components. See the licensing section
|
||||
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||
can be applied.
|
||||
|
||||
***************************************************************************
|
||||
|
||||
Please ensure to read the configuration and relevant port sections of the
|
||||
online documentation.
|
||||
|
||||
+++ http://www.FreeRTOS.org +++
|
||||
Documentation, latest information, license and contact details.
|
||||
|
||||
+++ http://www.SafeRTOS.com +++
|
||||
A version that is certified for use in safety critical systems.
|
||||
|
||||
+++ http://www.OpenRTOS.com +++
|
||||
Commercial support, development, porting, licensing and training services.
|
||||
|
||||
***************************************************************************
|
||||
*/
|
||||
|
||||
/* Scheduler includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "portable.h"
|
||||
|
||||
/* Demo app includes. */
|
||||
#include "partest.h"
|
||||
|
||||
/* Hardware specific definitions. */
|
||||
#include "AT91R40008.h"
|
||||
#include "pio.h"
|
||||
#include "aic.h"
|
||||
|
||||
#define partstNUM_LEDS ( 8 )
|
||||
#define partstALL_OUTPUTS_OFF ( ( unsigned portLONG ) ~(0xFFFFFFFF << partstNUM_LEDS) )
|
||||
|
||||
static unsigned portLONG ulLEDReg;
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* Simple parallel port IO routines.
|
||||
*-----------------------------------------------------------*/
|
||||
|
||||
static void SetLeds (unsigned int leds)
|
||||
{
|
||||
unsigned portLONG ulPIOSetReg, ulPIOClearReg;
|
||||
|
||||
/* LEDs are grouped in different port bits: P3-P6 and P16-P19.
|
||||
A port bit set to '0' turns an LED on, '1' turns it off. */
|
||||
|
||||
ulPIOSetReg = ( (leds & 0xF) << 16 ) | ( (leds & 0xF0) >> 1 );
|
||||
ulPIOClearReg = (~ulPIOSetReg) & 0x000F0078;
|
||||
|
||||
AT91C_BASE_PIO->PIO_SODR = ulPIOSetReg;
|
||||
AT91C_BASE_PIO->PIO_CODR = ulPIOClearReg;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vParTestInitialise( void )
|
||||
{
|
||||
/* This is performed from main() as the io bits are shared with other setup
|
||||
functions. Ensure the outputs are off to start. */
|
||||
ulLEDReg = partstALL_OUTPUTS_OFF;
|
||||
|
||||
/* Enable clock to PIO... */
|
||||
AT91C_BASE_PS->PS_PCER = AT91C_PS_PIO;
|
||||
|
||||
/* Enable all 8 LEDs and the four switches to be controlled by PIO... */
|
||||
AT91C_BASE_PIO->PIO_PER = P3 | P4 | P5 | P6 | P16 | P17 | P18 | P19 | P1 | P2 | P9 | P12;
|
||||
|
||||
/* Configure all LED PIO lines for output... */
|
||||
AT91C_BASE_PIO->PIO_OER = P3 | P4 | P5 | P6 | P16 | P17 | P18 | P19;
|
||||
|
||||
/* Configure all switch PIO lines for input... */
|
||||
AT91C_BASE_PIO->PIO_ODR = P1 | P2 | P9 | P12;
|
||||
|
||||
/* Set initial state of LEDs. */
|
||||
SetLeds( ulLEDReg );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||
{
|
||||
/* Switch an LED on or off as requested. */
|
||||
if (uxLED < partstNUM_LEDS)
|
||||
{
|
||||
if( xValue )
|
||||
{
|
||||
ulLEDReg &= ~(1 << uxLED);
|
||||
}
|
||||
else
|
||||
{
|
||||
ulLEDReg |= (1 << uxLED);
|
||||
}
|
||||
|
||||
SetLeds( ulLEDReg );
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||
{
|
||||
/* Toggle the state of the requested LED. */
|
||||
if (uxLED < partstNUM_LEDS)
|
||||
{
|
||||
ulLEDReg ^= ( 1 << uxLED );
|
||||
SetLeds( ulLEDReg );
|
||||
}
|
||||
}
|
||||
|
81
20080307/Demo/ARM7_AT91FR40008_GCC/aic.h
Normal file
81
20080307/Demo/ARM7_AT91FR40008_GCC/aic.h
Normal file
|
@ -0,0 +1,81 @@
|
|||
//*----------------------------------------------------------------------------
|
||||
//* ATMEL Microcontroller Software Support - ROUSSET -
|
||||
//*----------------------------------------------------------------------------
|
||||
//* The software is delivered "AS IS" without warranty or condition of any
|
||||
//* kind, either express, implied or statutory. This includes without
|
||||
//* limitation any warranty or condition with respect to merchantability or
|
||||
//* fitness for any particular purpose, or against the infringements of
|
||||
//* intellectual property rights of others.
|
||||
//*----------------------------------------------------------------------------
|
||||
//* File Name : aic.h
|
||||
//* Object : Advanced Interrupt Controller Definition File.
|
||||
//*
|
||||
//* 1.0 01/04/00 JCZ : Creation
|
||||
//*----------------------------------------------------------------------------
|
||||
|
||||
#ifndef aic_h
|
||||
#define aic_h
|
||||
|
||||
//#include "periph/stdc/std_c.h"
|
||||
|
||||
/*-----------------------------------------*/
|
||||
/* AIC User Interface Structure Definition */
|
||||
/*-----------------------------------------*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
at91_reg AIC_SMR[32] ; /* Source Mode Register */
|
||||
at91_reg AIC_SVR[32] ; /* Source Vector Register */
|
||||
at91_reg AIC_IVR ; /* IRQ Vector Register */
|
||||
at91_reg AIC_FVR ; /* FIQ Vector Register */
|
||||
at91_reg AIC_ISR ; /* Interrupt Status Register */
|
||||
at91_reg AIC_IPR ; /* Interrupt Pending Register */
|
||||
at91_reg AIC_IMR ; /* Interrupt Mask Register */
|
||||
at91_reg AIC_CISR ; /* Core Interrupt Status Register */
|
||||
at91_reg reserved0 ;
|
||||
at91_reg reserved1 ;
|
||||
at91_reg AIC_IECR ; /* Interrupt Enable Command Register */
|
||||
at91_reg AIC_IDCR ; /* Interrupt Disable Command Register */
|
||||
at91_reg AIC_ICCR ; /* Interrupt Clear Command Register */
|
||||
at91_reg AIC_ISCR ; /* Interrupt Set Command Register */
|
||||
at91_reg AIC_EOICR ; /* End of Interrupt Command Register */
|
||||
at91_reg AIC_SPU ; /* Spurious Vector Register */
|
||||
} StructAIC ;
|
||||
|
||||
/*--------------------------------------------*/
|
||||
/* AIC_SMR[]: Interrupt Source Mode Registers */
|
||||
/*--------------------------------------------*/
|
||||
|
||||
#define AIC_PRIOR 0x07 /* Priority */
|
||||
|
||||
#define AIC_SRCTYPE 0x60 /* Source Type Definition */
|
||||
|
||||
/* Internal Interrupts */
|
||||
#define AIC_SRCTYPE_INT_LEVEL_SENSITIVE 0x00 /* Level Sensitive */
|
||||
#define AIC_SRCTYPE_INT_EDGE_TRIGGERED 0x20 /* Edge Triggered */
|
||||
|
||||
/* External Interrupts */
|
||||
#define AIC_SRCTYPE_EXT_LOW_LEVEL 0x00 /* Low Level */
|
||||
#define AIC_SRCTYPE_EXT_NEGATIVE_EDGE 0x20 /* Negative Edge */
|
||||
#define AIC_SRCTYPE_EXT_HIGH_LEVEL 0x40 /* High Level */
|
||||
#define AIC_SRCTYPE_EXT_POSITIVE_EDGE 0x60 /* Positive Edge */
|
||||
|
||||
/*------------------------------------*/
|
||||
/* AIC_ISR: Interrupt Status Register */
|
||||
/*------------------------------------*/
|
||||
|
||||
#define AIC_IRQID 0x1F /* Current source interrupt */
|
||||
|
||||
/*------------------------------------------*/
|
||||
/* AIC_CISR: Interrupt Core Status Register */
|
||||
/*------------------------------------------*/
|
||||
|
||||
#define AIC_NFIQ 0x01 /* Core FIQ Status */
|
||||
#define AIC_NIRQ 0x02 /* Core IRQ Status */
|
||||
|
||||
/*-------------------------------*/
|
||||
/* Advanced Interrupt Controller */
|
||||
/*-------------------------------*/
|
||||
#define AIC_BASE ((StructAIC *)0xFFFFF000)
|
||||
|
||||
#endif /* aic_h */
|
48
20080307/Demo/ARM7_AT91FR40008_GCC/atmel-ram.ld
Normal file
48
20080307/Demo/ARM7_AT91FR40008_GCC/atmel-ram.ld
Normal file
|
@ -0,0 +1,48 @@
|
|||
MEMORY
|
||||
{
|
||||
ram : ORIGIN = 0x00000000, LENGTH = 256K
|
||||
}
|
||||
|
||||
__stack_end__ = 0x00000000 + 256K - 4;
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = 0;
|
||||
startup : { *(.startup)} >ram
|
||||
|
||||
prog :
|
||||
{
|
||||
*(.text)
|
||||
*(.rodata)
|
||||
*(.rodata*)
|
||||
*(.glue_7)
|
||||
*(.glue_7t)
|
||||
} >ram
|
||||
|
||||
__end_of_text__ = .;
|
||||
|
||||
.data :
|
||||
{
|
||||
__data_beg__ = .;
|
||||
__data_beg_src__ = __end_of_text__;
|
||||
*(.data)
|
||||
__data_end__ = .;
|
||||
} >ram
|
||||
|
||||
.bss :
|
||||
{
|
||||
__bss_beg__ = .;
|
||||
*(.bss)
|
||||
} >ram
|
||||
|
||||
/* Align here to ensure that the .bss section occupies space up to
|
||||
_end. Align after .bss to ensure correct alignment even if the
|
||||
.bss section disappears because there are no input sections. */
|
||||
. = ALIGN(32 / 8);
|
||||
}
|
||||
. = ALIGN(32 / 8);
|
||||
_end = .;
|
||||
_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
|
||||
PROVIDE (end = .);
|
||||
|
||||
|
49
20080307/Demo/ARM7_AT91FR40008_GCC/atmel-rom.ld
Normal file
49
20080307/Demo/ARM7_AT91FR40008_GCC/atmel-rom.ld
Normal file
|
@ -0,0 +1,49 @@
|
|||
MEMORY
|
||||
{
|
||||
flash : ORIGIN = 0x00000000, LENGTH = 2048K
|
||||
ram : ORIGIN = 0x00300000, LENGTH = 256K
|
||||
}
|
||||
|
||||
__stack_end__ = 0x00300000 + 256K - 4;
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = 0;
|
||||
startup : { *(.startup)} >flash
|
||||
|
||||
prog :
|
||||
{
|
||||
*(.text)
|
||||
*(.rodata)
|
||||
*(.rodata*)
|
||||
*(.glue_7)
|
||||
*(.glue_7t)
|
||||
} >flash
|
||||
|
||||
__end_of_text__ = .;
|
||||
|
||||
.data :
|
||||
{
|
||||
__data_beg__ = .;
|
||||
__data_beg_src__ = __end_of_text__;
|
||||
*(.data)
|
||||
__data_end__ = .;
|
||||
} >ram AT>flash
|
||||
|
||||
.bss :
|
||||
{
|
||||
__bss_beg__ = .;
|
||||
*(.bss)
|
||||
} >ram
|
||||
|
||||
/* Align here to ensure that the .bss section occupies space up to
|
||||
_end. Align after .bss to ensure correct alignment even if the
|
||||
.bss section disappears because there are no input sections. */
|
||||
. = ALIGN(32 / 8);
|
||||
}
|
||||
. = ALIGN(32 / 8);
|
||||
_end = .;
|
||||
_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
|
||||
PROVIDE (end = .);
|
||||
|
||||
|
157
20080307/Demo/ARM7_AT91FR40008_GCC/boot.s
Normal file
157
20080307/Demo/ARM7_AT91FR40008_GCC/boot.s
Normal file
|
@ -0,0 +1,157 @@
|
|||
/* Sample initialization file */
|
||||
|
||||
.extern main
|
||||
.extern exit
|
||||
|
||||
.text
|
||||
.code 32
|
||||
|
||||
|
||||
.align 0
|
||||
|
||||
.extern __bss_beg__
|
||||
.extern __bss_end__
|
||||
.extern __stack_end__
|
||||
.extern __data_beg__
|
||||
.extern __data_end__
|
||||
.extern __data+beg_src__
|
||||
|
||||
.global start
|
||||
.global endless_loop
|
||||
|
||||
/* Stack Sizes */
|
||||
.set UND_STACK_SIZE, 0x00000004
|
||||
.set ABT_STACK_SIZE, 0x00000004
|
||||
.set FIQ_STACK_SIZE, 0x00000004
|
||||
.set IRQ_STACK_SIZE, 0X00000400
|
||||
.set SVC_STACK_SIZE, 0x00000400
|
||||
|
||||
/* Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs */
|
||||
.set MODE_USR, 0x10 /* User Mode */
|
||||
.set MODE_FIQ, 0x11 /* FIQ Mode */
|
||||
.set MODE_IRQ, 0x12 /* IRQ Mode */
|
||||
.set MODE_SVC, 0x13 /* Supervisor Mode */
|
||||
.set MODE_ABT, 0x17 /* Abort Mode */
|
||||
.set MODE_UND, 0x1B /* Undefined Mode */
|
||||
.set MODE_SYS, 0x1F /* System Mode */
|
||||
|
||||
.equ I_BIT, 0x80 /* when I bit is set, IRQ is disabled */
|
||||
.equ F_BIT, 0x40 /* when F bit is set, FIQ is disabled */
|
||||
|
||||
|
||||
start:
|
||||
_start:
|
||||
_mainCRTStartup:
|
||||
|
||||
/* Setup a stack for each mode - note that this only sets up a usable stack
|
||||
for system/user, SWI and IRQ modes. Also each mode is setup with
|
||||
interrupts initially disabled. */
|
||||
ldr r0, .LC6
|
||||
msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode */
|
||||
mov sp, r0
|
||||
sub r0, r0, #UND_STACK_SIZE
|
||||
msr CPSR_c, #MODE_ABT|I_BIT|F_BIT /* Abort Mode */
|
||||
mov sp, r0
|
||||
sub r0, r0, #ABT_STACK_SIZE
|
||||
msr CPSR_c, #MODE_FIQ|I_BIT|F_BIT /* FIQ Mode */
|
||||
mov sp, r0
|
||||
sub r0, r0, #FIQ_STACK_SIZE
|
||||
msr CPSR_c, #MODE_IRQ|I_BIT|F_BIT /* IRQ Mode */
|
||||
mov sp, r0
|
||||
sub r0, r0, #IRQ_STACK_SIZE
|
||||
msr CPSR_c, #MODE_SVC|I_BIT|F_BIT /* Supervisor Mode */
|
||||
mov sp, r0
|
||||
sub r0, r0, #SVC_STACK_SIZE
|
||||
msr CPSR_c, #MODE_SYS|I_BIT|F_BIT /* System Mode */
|
||||
mov sp, r0
|
||||
|
||||
/* We want to start in supervisor mode. Operation will switch to system
|
||||
mode when the first task starts. */
|
||||
msr CPSR_c, #MODE_SVC|I_BIT|F_BIT
|
||||
|
||||
/* Clear BSS. */
|
||||
|
||||
mov a2, #0 /* Fill value */
|
||||
mov fp, a2 /* Null frame pointer */
|
||||
mov r7, a2 /* Null frame pointer for Thumb */
|
||||
|
||||
ldr r1, .LC1 /* Start of memory block */
|
||||
ldr r3, .LC2 /* End of memory block */
|
||||
subs r3, r3, r1 /* Length of block */
|
||||
beq .end_clear_loop
|
||||
mov r2, #0
|
||||
|
||||
.clear_loop:
|
||||
strb r2, [r1], #1
|
||||
subs r3, r3, #1
|
||||
bgt .clear_loop
|
||||
|
||||
.end_clear_loop:
|
||||
|
||||
/* Initialise data. */
|
||||
|
||||
ldr r1, .LC3 /* Start of memory block */
|
||||
ldr r2, .LC4 /* End of memory block */
|
||||
ldr r3, .LC5
|
||||
subs r3, r3, r1 /* Length of block */
|
||||
beq .end_set_loop
|
||||
|
||||
.set_loop:
|
||||
ldrb r4, [r2], #1
|
||||
strb r4, [r1], #1
|
||||
subs r3, r3, #1
|
||||
bgt .set_loop
|
||||
|
||||
.end_set_loop:
|
||||
|
||||
mov r0, #0 /* no arguments */
|
||||
mov r1, #0 /* no argv either */
|
||||
|
||||
bl main
|
||||
|
||||
endless_loop:
|
||||
b endless_loop
|
||||
|
||||
|
||||
.align 0
|
||||
|
||||
.LC1:
|
||||
.word __bss_beg__
|
||||
.LC2:
|
||||
.word __bss_end__
|
||||
.LC3:
|
||||
.word __data_beg__
|
||||
.LC4:
|
||||
.word __data_beg_src__
|
||||
.LC5:
|
||||
.word __data_end__
|
||||
.LC6:
|
||||
.word __stack_end__
|
||||
|
||||
|
||||
/* Setup vector table. Note that undf, pabt, dabt, fiq just execute
|
||||
a null loop. */
|
||||
|
||||
.section .startup,"ax"
|
||||
.code 32
|
||||
.align 0
|
||||
|
||||
b _start /* reset - _start */
|
||||
ldr pc, _undf /* undefined - _undf */
|
||||
ldr pc, _swi /* SWI - _swi */
|
||||
ldr pc, _pabt /* program abort - _pabt */
|
||||
ldr pc, _dabt /* data abort - _dabt */
|
||||
nop /* reserved */
|
||||
ldr pc, [pc,#-0xF20] /* IRQ - read the AIC */
|
||||
ldr pc, _fiq /* FIQ - _fiq */
|
||||
|
||||
_undf: .word __undf /* undefined */
|
||||
_swi: .word vPortYieldProcessor /* SWI */
|
||||
_pabt: .word __pabt /* program abort */
|
||||
_dabt: .word __dabt /* data abort */
|
||||
_fiq: .word __fiq /* FIQ */
|
||||
|
||||
__undf: b . /* undefined */
|
||||
__pabt: b . /* program abort */
|
||||
__dabt: b . /* data abort */
|
||||
__fiq: b . /* FIQ */
|
121
20080307/Demo/ARM7_AT91FR40008_GCC/ebi.h
Normal file
121
20080307/Demo/ARM7_AT91FR40008_GCC/ebi.h
Normal file
|
@ -0,0 +1,121 @@
|
|||
//*-----------------------------------------------------------------------------
|
||||
//* ATMEL Microcontroller Software Support - ROUSSET -
|
||||
//*-----------------------------------------------------------------------------
|
||||
//* The software is delivered "AS IS" without warranty or condition of any
|
||||
//* kind, either express, implied or statutory. This includes without
|
||||
//* limitation any warranty or condition with respect to merchantability or
|
||||
//* fitness for any particular purpose, or against the infringements of
|
||||
//* intellectual property rights of others.
|
||||
//*-----------------------------------------------------------------------------
|
||||
//* File Name : ebi.h
|
||||
//* Object : External Bus Interface Definition File
|
||||
//* Translator : ARM Software Development Toolkit V2.11a
|
||||
//*
|
||||
//* 1.0 03/11/97 JCZ : Creation
|
||||
//* 2.0 21/10/98 JCZ : Clean up
|
||||
//*-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef ebi_h
|
||||
#define ebi_h
|
||||
|
||||
/*----------------------------------------*/
|
||||
/* Memory Controller Interface Definition */
|
||||
/*----------------------------------------*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
at91_reg EBI_CSR[8] ; /* Chip Select Register */
|
||||
at91_reg EBI_RCR ; /* Remap Control Register */
|
||||
at91_reg EBI_MCR ; /* Memory Control Register */
|
||||
} StructEBI ;
|
||||
|
||||
/*-----------------------*/
|
||||
/* Chip Select Registers */
|
||||
/*-----------------------*/
|
||||
|
||||
/* Data Bus Width */
|
||||
#define DataBus16 (1<<0)
|
||||
#define DataBus8 (2<<0)
|
||||
#define DBW (3<<0)
|
||||
|
||||
/* Number of Wait States */
|
||||
#define B_NWS 2
|
||||
#define WaitState1 (0<<B_NWS)
|
||||
#define WaitState2 (1<<B_NWS)
|
||||
#define WaitState3 (2<<B_NWS)
|
||||
#define WaitState4 (3<<B_NWS)
|
||||
#define WaitState5 (4<<B_NWS)
|
||||
#define WaitState6 (5<<B_NWS)
|
||||
#define WaitState7 (6<<B_NWS)
|
||||
#define WaitState8 (7<<B_NWS)
|
||||
#define NWS (7<<B_NWS)
|
||||
|
||||
/* Wait State Enable */
|
||||
#define WaitStateDisable (0<<5)
|
||||
#define WaitStateEnable (1<<5)
|
||||
#define WSE (1<<5)
|
||||
|
||||
/* Page size */
|
||||
#define PageSize1M (0<<7)
|
||||
#define PageSize4M (1<<7)
|
||||
#define PageSize16M (2<<7)
|
||||
#define PageSize64M (3<<7)
|
||||
#define PAGES (3<<7)
|
||||
|
||||
/* Number of Data Float Output Time Clock Cycle */
|
||||
#define B_TDF 9
|
||||
#define tDF_0cycle (0<<B_TDF)
|
||||
#define tDF_1cycle (1<<B_TDF)
|
||||
#define tDF_2cycle (2<<B_TDF)
|
||||
#define tDF_3cycle (3<<B_TDF)
|
||||
#define tDF_4cycle (4<<B_TDF)
|
||||
#define tDF_5cycle (5<<B_TDF)
|
||||
#define tDF_6cycle (6<<B_TDF)
|
||||
#define tDF_7cycle (7<<B_TDF)
|
||||
#define TDF (7<<B_TDF)
|
||||
|
||||
/* Byte Access Type */
|
||||
#define ByteWriteAccessType (0<<12)
|
||||
#define ByteSelectAccessType (1<<12)
|
||||
#define BAT 1<<12)
|
||||
|
||||
/* Chip Select Enable */
|
||||
#define CSEnable (1<<13)
|
||||
#define CSDisable (0<<13)
|
||||
#define CSE (1<<13)
|
||||
|
||||
#define BA ((u_int)(0xFFF)<<20)
|
||||
|
||||
/*-------------------------*/
|
||||
/* Memory Control Register */
|
||||
/*-------------------------*/
|
||||
|
||||
/* Address Line Enable */
|
||||
#define ALE (7<<0)
|
||||
#define BankSize16M (0<<0)
|
||||
#define BankSize8M (4<<0)
|
||||
#define BankSize4M (5<<0)
|
||||
#define BankSize2M (6<<0)
|
||||
#define BankSize1M (7<<0)
|
||||
|
||||
/* Data Read Protocol */
|
||||
#define StandardReadProtocol (0<<4)
|
||||
#define EarlyReadProtocol (1<<4)
|
||||
#define DRP (1<<4)
|
||||
|
||||
/*------------------------*/
|
||||
/* Remap Control Register */
|
||||
/*------------------------*/
|
||||
|
||||
#define RCB (1<<0)
|
||||
|
||||
/*--------------------------------*/
|
||||
/* Device Dependancies Definition */
|
||||
/*--------------------------------*/
|
||||
|
||||
#ifdef AT91M40400
|
||||
/* External Bus Interface User Interface BAse Address */
|
||||
#define EBI_BASE ((StructEBI *) 0xFFE00000)
|
||||
#endif
|
||||
|
||||
#endif /* ebi_h */
|
479
20080307/Demo/ARM7_AT91FR40008_GCC/main.c
Normal file
479
20080307/Demo/ARM7_AT91FR40008_GCC/main.c
Normal file
|
@ -0,0 +1,479 @@
|
|||
/*
|
||||
FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.
|
||||
|
||||
This file is part of the FreeRTOS.org distribution.
|
||||
|
||||
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FreeRTOS.org; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
A special exception to the GPL can be applied should you wish to distribute
|
||||
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||
the source code for any proprietary components. See the licensing section
|
||||
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||
can be applied.
|
||||
|
||||
***************************************************************************
|
||||
|
||||
Please ensure to read the configuration and relevant port sections of the
|
||||
online documentation.
|
||||
|
||||
+++ http://www.FreeRTOS.org +++
|
||||
Documentation, latest information, license and contact details.
|
||||
|
||||
+++ http://www.SafeRTOS.com +++
|
||||
A version that is certified for use in safety critical systems.
|
||||
|
||||
+++ http://www.OpenRTOS.com +++
|
||||
Commercial support, development, porting, licensing and training services.
|
||||
|
||||
***************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
NOTE : Tasks run in system mode and the scheduler runs in Supervisor mode.
|
||||
The processor MUST be in supervisor mode when vTaskStartScheduler is
|
||||
called. The demo applications included in the FreeRTOS.org download switch
|
||||
to supervisor mode prior to main being called. If you are not using one of
|
||||
these demo application projects then ensure Supervisor mode is used.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Creates all the demo application tasks, then starts the scheduler. The WEB
|
||||
* documentation provides more details of the demo application tasks.
|
||||
*
|
||||
* Main.c also creates a task called "Check". This only executes every three
|
||||
* seconds but has the highest priority so is guaranteed to get processor time.
|
||||
* Its main function is to check that all the other tasks are still operational.
|
||||
* Each task (other than the "flash" tasks) maintains a unique count that is
|
||||
* incremented each time the task successfully completes its function. Should
|
||||
* any error occur within such a task the count is permanently halted. The
|
||||
* check task inspects the count of each task to ensure it has changed since
|
||||
* the last time the check task executed. If all the count variables have
|
||||
* changed all the tasks are still executing error free, and the check task
|
||||
* toggles the onboard LED. Should any task contain an error at any time
|
||||
* the LED toggle rate will change from 3 seconds to 500ms.
|
||||
*
|
||||
* To check the operation of the memory allocator the check task also
|
||||
* dynamically creates a task before delaying, and deletes it again when it
|
||||
* wakes. If memory cannot be allocated for the new task the call to xTaskCreate
|
||||
* will fail and an error is signalled. The dynamically created task itself
|
||||
* allocates and frees memory just to give the allocator a bit more exercise.
|
||||
*
|
||||
*/
|
||||
|
||||
/* Standard includes. */
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
/* Scheduler includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
|
||||
/* Demo application includes. */
|
||||
#include "partest.h"
|
||||
#include "flash.h"
|
||||
#include "integer.h"
|
||||
#include "PollQ.h"
|
||||
#include "comtest2.h"
|
||||
#include "semtest.h"
|
||||
#include "flop.h"
|
||||
#include "dynamic.h"
|
||||
#include "BlockQ.h"
|
||||
#include "serial.h"
|
||||
|
||||
/* Hardware specific definitions. */
|
||||
#include "aic.h"
|
||||
#include "ebi.h"
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Constants for the ComTest tasks. */
|
||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 115200 )
|
||||
#define mainCOM_TEST_LED ( 5 )
|
||||
|
||||
/* Priorities for the demo application tasks. */
|
||||
#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
|
||||
#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||
#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 )
|
||||
#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||
#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||
|
||||
/* The rate at which the on board LED will toggle when there is/is not an
|
||||
error. */
|
||||
#define mainNO_ERROR_FLASH_PERIOD ( ( portTickType ) 3000 / portTICK_RATE_MS )
|
||||
#define mainERROR_FLASH_PERIOD ( ( portTickType ) 500 / portTICK_RATE_MS )
|
||||
#define mainON_BOARD_LED_BIT ( ( unsigned portLONG ) 7 )
|
||||
|
||||
/* Constants used by the vMemCheckTask() task. */
|
||||
#define mainCOUNT_INITIAL_VALUE ( ( unsigned portLONG ) 0 )
|
||||
#define mainNO_TASK ( 0 )
|
||||
|
||||
/* The size of the memory blocks allocated by the vMemCheckTask() task. */
|
||||
#define mainMEM_CHECK_SIZE_1 ( ( size_t ) 51 )
|
||||
#define mainMEM_CHECK_SIZE_2 ( ( size_t ) 52 )
|
||||
#define mainMEM_CHECK_SIZE_3 ( ( size_t ) 151 )
|
||||
|
||||
#define MAX_WAIT_STATES 8
|
||||
static const unsigned portLONG ululCSRWaitValues[ MAX_WAIT_STATES + 1 ] =
|
||||
{
|
||||
WaitState1,/* There is no "zero wait state" value, so use one wait state */
|
||||
WaitState1,
|
||||
WaitState2,
|
||||
WaitState3,
|
||||
WaitState4,
|
||||
WaitState5,
|
||||
WaitState6,
|
||||
WaitState7,
|
||||
WaitState8
|
||||
};
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Checks that all the demo application tasks are still executing without error
|
||||
* - as described at the top of the file.
|
||||
*/
|
||||
static portLONG prvCheckOtherTasksAreStillRunning( unsigned portLONG ulMemCheckTaskCount );
|
||||
|
||||
/*
|
||||
* The task that executes at the highest priority and calls
|
||||
* prvCheckOtherTasksAreStillRunning(). See the description at the top
|
||||
* of the file.
|
||||
*/
|
||||
static void vErrorChecks( void *pvParameters );
|
||||
|
||||
/*
|
||||
* Dynamically created and deleted during each cycle of the vErrorChecks()
|
||||
* task. This is done to check the operation of the memory allocator.
|
||||
* See the top of vErrorChecks for more details.
|
||||
*/
|
||||
static void vMemCheckTask( void *pvParameters );
|
||||
|
||||
/*
|
||||
* Configure the processor for use with the Olimex demo board. This includes
|
||||
* setup for the I/O, system clock, and access timings.
|
||||
*/
|
||||
static void prvSetupHardware( void );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Starts all the other tasks, then starts the scheduler.
|
||||
*/
|
||||
int main( void )
|
||||
{
|
||||
/* Setup the hardware for use with the Olimex demo board. */
|
||||
prvSetupHardware();
|
||||
|
||||
/* Start the demo/test application tasks. */
|
||||
vStartIntegerMathTasks( tskIDLE_PRIORITY );
|
||||
vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainCOM_TEST_BAUD_RATE, mainCOM_TEST_LED );
|
||||
vStartLEDFlashTasks( mainLED_TASK_PRIORITY );
|
||||
vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );
|
||||
vStartMathTasks( tskIDLE_PRIORITY );
|
||||
vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );
|
||||
vStartDynamicPriorityTasks();
|
||||
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
|
||||
|
||||
/* Start the check task - which is defined in this file. */
|
||||
xTaskCreate( vErrorChecks, ( signed portCHAR * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
||||
|
||||
/* Now all the tasks have been started - start the scheduler.
|
||||
|
||||
NOTE : Tasks run in system mode and the scheduler runs in Supervisor mode.
|
||||
The processor MUST be in supervisor mode when vTaskStartScheduler is
|
||||
called. The demo applications included in the FreeRTOS.org download switch
|
||||
to supervisor mode prior to main being called. If you are not using one of
|
||||
these demo application projects then ensure Supervisor mode is used here. */
|
||||
vTaskStartScheduler();
|
||||
|
||||
/* Should never reach here! */
|
||||
return 0;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void vErrorChecks( void *pvParameters )
|
||||
{
|
||||
portTickType xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;
|
||||
unsigned portLONG ulMemCheckTaskRunningCount;
|
||||
xTaskHandle xCreatedTask;
|
||||
|
||||
/* Cycle for ever, delaying then checking all the other tasks are still
|
||||
operating without error. If an error is detected then the delay period
|
||||
is decreased from mainNO_ERROR_FLASH_PERIOD to mainERROR_FLASH_PERIOD so
|
||||
the on board LED flash rate will increase.
|
||||
|
||||
In addition to the standard tests the memory allocator is tested through
|
||||
the dynamic creation and deletion of a task each cycle. Each time the
|
||||
task is created memory must be allocated for its stack. When the task is
|
||||
deleted this memory is returned to the heap. If the task cannot be created
|
||||
then it is likely that the memory allocation failed. */
|
||||
|
||||
for( ;; )
|
||||
{
|
||||
/* Reset xCreatedTask. This is modified by the task about to be
|
||||
created so we can tell if it is executing correctly or not. */
|
||||
xCreatedTask = mainNO_TASK;
|
||||
|
||||
/* Dynamically create a task - passing ulMemCheckTaskRunningCount as a
|
||||
parameter. */
|
||||
ulMemCheckTaskRunningCount = mainCOUNT_INITIAL_VALUE;
|
||||
if( xTaskCreate( vMemCheckTask, ( signed portCHAR * ) "MEM_CHECK", configMINIMAL_STACK_SIZE, ( void * ) &ulMemCheckTaskRunningCount, tskIDLE_PRIORITY, &xCreatedTask ) != pdPASS )
|
||||
{
|
||||
/* Could not create the task - we have probably run out of heap. */
|
||||
xDelayPeriod = mainERROR_FLASH_PERIOD;
|
||||
}
|
||||
|
||||
/* Delay until it is time to execute again. */
|
||||
vTaskDelay( xDelayPeriod );
|
||||
|
||||
/* Delete the dynamically created task. */
|
||||
if( xCreatedTask != mainNO_TASK )
|
||||
{
|
||||
vTaskDelete( xCreatedTask );
|
||||
}
|
||||
|
||||
/* Check all the standard demo application tasks are executing without
|
||||
error. ulMemCheckTaskRunningCount is checked to ensure it was
|
||||
modified by the task just deleted. */
|
||||
if( prvCheckOtherTasksAreStillRunning( ulMemCheckTaskRunningCount ) != pdPASS )
|
||||
{
|
||||
/* An error has been detected in one of the tasks - flash faster. */
|
||||
xDelayPeriod = mainERROR_FLASH_PERIOD;
|
||||
}
|
||||
|
||||
/* The toggle rate of the LED depends on how long this task delays for.
|
||||
An error reduces the delay period and so increases the toggle rate. */
|
||||
vParTestToggleLED( mainON_BOARD_LED_BIT );
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvSetupHardware( void )
|
||||
{
|
||||
portLONG lCount;
|
||||
|
||||
#ifdef RUN_FROM_ROM
|
||||
{
|
||||
portFLOAT nsecsPerClockTick;
|
||||
portLONG lNumWaitStates;
|
||||
unsigned portLONG ulCSRWaitValue;
|
||||
|
||||
/* We are compiling to run from ROM (either on-chip or off-chip flash).
|
||||
Leave the RAM/flash mapped the way they are on reset
|
||||
(flash @ 0x00000000, RAM @ 0x00300000), and set up the
|
||||
proper flash wait states (starts out at the maximum number
|
||||
of wait states on reset, so we should be able to reduce it).
|
||||
Most of this code will probably get removed by the compiler
|
||||
if optimization is enabled, since these calculations are
|
||||
based on constants. But the compiler should still produce
|
||||
a correct wait state register value. */
|
||||
nsecsPerClockTick = ( portFLOAT ) 1000000000 / configCPU_CLOCK_HZ;
|
||||
lNumWaitStates = ( portLONG )( ( configFLASH_SPEED_NSEC / nsecsPerClockTick ) + 0.5 ) - 1;
|
||||
|
||||
if( lNumWaitStates < 0 )
|
||||
{
|
||||
lNumWaitStates = 0;
|
||||
}
|
||||
|
||||
if( lNumWaitStates > MAX_WAIT_STATES )
|
||||
{
|
||||
lNumWaitStates = MAX_WAIT_STATES;
|
||||
}
|
||||
|
||||
ulCSRWaitValue = ululCSRWaitValues[ lNumWaitStates ];
|
||||
ulCSRWaitValue = WaitState5;
|
||||
|
||||
AT91C_BASE_EBI->EBI_CSR[ 0 ] = ulCSRWaitValue | DataBus16 | WaitStateEnable
|
||||
| PageSize1M | tDF_0cycle
|
||||
| ByteWriteAccessType | CSEnable
|
||||
| 0x00000000 /* Base Address */;
|
||||
}
|
||||
#else /* else we are compiling to run from on-chip RAM */
|
||||
{
|
||||
/* If compiling to run from RAM, we expect the on-chip RAM to already
|
||||
be mapped at 0x00000000. This is typically done with an initialization
|
||||
script for the JTAG emulator you are using to download and run the
|
||||
demo application. So there is nothing to do here in this case. */
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Disable all interrupts at the AIC level initially... */
|
||||
AT91C_BASE_AIC->AIC_IDCR = 0xFFFFFFFF;
|
||||
|
||||
/* Set all SVR and SMR entries to default values (start with a clean slate)... */
|
||||
for( lCount = 0; lCount < 32; lCount++ )
|
||||
{
|
||||
AT91C_BASE_AIC->AIC_SVR[ lCount ] = (unsigned long) 0;
|
||||
AT91C_BASE_AIC->AIC_SMR[ lCount ] = AIC_SRCTYPE_INT_EDGE_TRIGGERED;
|
||||
}
|
||||
|
||||
/* Disable clocks to all peripherals initially... */
|
||||
AT91C_BASE_PS->PS_PCDR = 0xFFFFFFFF;
|
||||
|
||||
/* Clear all interrupts at the AIC level initially... */
|
||||
AT91C_BASE_AIC->AIC_ICCR = 0xFFFFFFFF;
|
||||
|
||||
/* Perform 8 "End Of Interrupt" cmds to make sure AIC will not Lock out
|
||||
nIRQ */
|
||||
for( lCount = 0; lCount < 8; lCount++ )
|
||||
{
|
||||
AT91C_BASE_AIC->AIC_EOICR = 0;
|
||||
}
|
||||
|
||||
/* Initialise LED outputs. */
|
||||
vParTestInitialise();
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static portLONG prvCheckOtherTasksAreStillRunning( unsigned portLONG ulMemCheckTaskCount )
|
||||
{
|
||||
portLONG lReturn = ( portLONG ) pdPASS;
|
||||
|
||||
/* Check all the demo tasks (other than the flash tasks) to ensure
|
||||
that they are all still running, and that none of them have detected
|
||||
an error. */
|
||||
|
||||
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xAreComTestTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xArePollingQueuesStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xAreMathsTaskStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( ulMemCheckTaskCount == mainCOUNT_INITIAL_VALUE )
|
||||
{
|
||||
/* The vMemCheckTask did not increment the counter - it must
|
||||
have failed. */
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
return lReturn;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void vMemCheckTask( void *pvParameters )
|
||||
{
|
||||
unsigned portLONG *pulMemCheckTaskRunningCounter;
|
||||
void *pvMem1, *pvMem2, *pvMem3;
|
||||
static portLONG lErrorOccurred = pdFALSE;
|
||||
|
||||
/* This task is dynamically created then deleted during each cycle of the
|
||||
vErrorChecks task to check the operation of the memory allocator. Each time
|
||||
the task is created memory is allocated for the stack and TCB. Each time
|
||||
the task is deleted this memory is returned to the heap. This task itself
|
||||
exercises the allocator by allocating and freeing blocks.
|
||||
|
||||
The task executes at the idle priority so does not require a delay.
|
||||
|
||||
pulMemCheckTaskRunningCounter is incremented each cycle to indicate to the
|
||||
vErrorChecks() task that this task is still executing without error. */
|
||||
|
||||
pulMemCheckTaskRunningCounter = ( unsigned portLONG * ) pvParameters;
|
||||
|
||||
for( ;; )
|
||||
{
|
||||
if( lErrorOccurred == pdFALSE )
|
||||
{
|
||||
/* We have never seen an error so increment the counter. */
|
||||
( *pulMemCheckTaskRunningCounter )++;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* There has been an error so reset the counter so the check task
|
||||
can tell that an error occurred. */
|
||||
*pulMemCheckTaskRunningCounter = mainCOUNT_INITIAL_VALUE;
|
||||
}
|
||||
|
||||
/* Allocate some memory - just to give the allocator some extra
|
||||
exercise. This has to be in a critical section to ensure the
|
||||
task does not get deleted while it has memory allocated. */
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
pvMem1 = pvPortMalloc( mainMEM_CHECK_SIZE_1 );
|
||||
if( pvMem1 == NULL )
|
||||
{
|
||||
lErrorOccurred = pdTRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
memset( pvMem1, 0xaa, mainMEM_CHECK_SIZE_1 );
|
||||
vPortFree( pvMem1 );
|
||||
}
|
||||
}
|
||||
xTaskResumeAll();
|
||||
|
||||
/* Again - with a different size block. */
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
pvMem2 = pvPortMalloc( mainMEM_CHECK_SIZE_2 );
|
||||
if( pvMem2 == NULL )
|
||||
{
|
||||
lErrorOccurred = pdTRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
memset( pvMem2, 0xaa, mainMEM_CHECK_SIZE_2 );
|
||||
vPortFree( pvMem2 );
|
||||
}
|
||||
}
|
||||
xTaskResumeAll();
|
||||
|
||||
/* Again - with a different size block. */
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
pvMem3 = pvPortMalloc( mainMEM_CHECK_SIZE_3 );
|
||||
if( pvMem3 == NULL )
|
||||
{
|
||||
lErrorOccurred = pdTRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
memset( pvMem3, 0xaa, mainMEM_CHECK_SIZE_3 );
|
||||
vPortFree( pvMem3 );
|
||||
}
|
||||
}
|
||||
xTaskResumeAll();
|
||||
}
|
||||
}
|
||||
|
149
20080307/Demo/ARM7_AT91FR40008_GCC/pio.h
Normal file
149
20080307/Demo/ARM7_AT91FR40008_GCC/pio.h
Normal file
|
@ -0,0 +1,149 @@
|
|||
//*---------------------------------------------------------------------------
|
||||
//* ATMEL Microcontroller Software Support - ROUSSET -
|
||||
//*---------------------------------------------------------------------------
|
||||
//* The software is delivered "AS IS" without warranty or condition of any
|
||||
//* kind, either express, implied or statutory. This includes without
|
||||
//* limitation any warranty or condition with respect to merchantability or
|
||||
//* fitness for any particular purpose, or against the infringements of
|
||||
//* intellectual property rights of others.
|
||||
//*-----------------------------------------------------------------------------
|
||||
//* File Name : pio.h
|
||||
//* Object : Parallel I/O Definition File
|
||||
//* Translator : ARM Software Development Toolkit V2.11a
|
||||
//*
|
||||
//* 1.0 20/10/97 JCZ : Creation
|
||||
//* 2.0 21/10/98 JCZ : Clean up
|
||||
//*---------------------------------------------------------------------------
|
||||
|
||||
#ifndef pio_h
|
||||
#define pio_h
|
||||
|
||||
/*---------------------------------------------*/
|
||||
/* Parallel I/O Interface Structure Definition */
|
||||
/*---------------------------------------------*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
at91_reg PIO_PER ; /* PIO Enable Register */
|
||||
at91_reg PIO_PDR ; /* PIO Disable Register */
|
||||
at91_reg PIO_PSR ; /* PIO Status Register */
|
||||
at91_reg Reserved0 ;
|
||||
at91_reg PIO_OER ; /* Output Enable Register */
|
||||
at91_reg PIO_ODR ; /* Output Disable Register */
|
||||
at91_reg PIO_OSR ; /* Output Status Register */
|
||||
at91_reg Reserved1 ;
|
||||
at91_reg PIO_IFER ; /* Input Filter Enable Register */
|
||||
at91_reg PIO_IFDR ; /* Input Filter Disable Register */
|
||||
at91_reg PIO_IFSR ; /* Input Filter Status Register */
|
||||
at91_reg Reserved2 ;
|
||||
at91_reg PIO_SODR ; /* Set Output Data Register */
|
||||
at91_reg PIO_CODR ; /* Clear Output Data Register */
|
||||
at91_reg PIO_ODSR ; /* Output Data Status Register */
|
||||
at91_reg PIO_PDSR ; /* Pin Data Status Register */
|
||||
at91_reg PIO_IER ; /* Interrupt Enable Register */
|
||||
at91_reg PIO_IDR ; /* Interrupt Disable Register */
|
||||
at91_reg PIO_IMR ; /* Interrupt Mask Register */
|
||||
at91_reg PIO_ISR ; /* Interrupt Status Register */
|
||||
} StructPIO ;
|
||||
|
||||
/*-----------------------------*/
|
||||
/* PIO Handler type definition */
|
||||
/*-----------------------------*/
|
||||
|
||||
//typedef void (*TypePIOHandler) ( StructPIO *pio_pt, u_int pio_mask ) ;
|
||||
|
||||
/*--------------------------------*/
|
||||
/* Device Dependancies Definition */
|
||||
/*--------------------------------*/
|
||||
|
||||
/* Number of PIO Controller */
|
||||
#define NB_PIO_CTRL 1
|
||||
/* Base Address */
|
||||
#define PIO_BASE ((StructPIO *) 0xFFFF0000 )
|
||||
/* Number of PIO Lines */
|
||||
#define NB_PIO 32
|
||||
|
||||
/* Parallel I/O Bits Definition */
|
||||
#define P0 (1<<0)
|
||||
#define P1 (1<<1)
|
||||
#define P2 (1<<2)
|
||||
#define P3 (1<<3)
|
||||
#define P4 (1<<4)
|
||||
#define P5 (1<<5)
|
||||
#define P6 (1<<6)
|
||||
#define P7 (1<<7)
|
||||
#define P8 (1<<8)
|
||||
#define P9 (1<<9)
|
||||
#define P10 (1<<10)
|
||||
#define P11 (1<<11)
|
||||
#define P12 (1<<12)
|
||||
#define P13 (1<<13)
|
||||
#define P14 (1<<14)
|
||||
#define P15 (1<<15)
|
||||
#define P16 (1<<16)
|
||||
#define P17 (1<<17)
|
||||
#define P18 (1<<18)
|
||||
#define P19 (1<<19)
|
||||
#define P20 (1<<20)
|
||||
#define P21 (1<<21)
|
||||
#define P22 (1<<22)
|
||||
#define P23 (1<<23)
|
||||
#define P24 (1<<24)
|
||||
#define P25 (1<<25)
|
||||
#define P26 (1<<26)
|
||||
#define P27 (1<<27)
|
||||
#define P28 (1<<28)
|
||||
#define P29 (1<<29)
|
||||
#define P30 (1<<30)
|
||||
#define P31 (1<<31)
|
||||
|
||||
/* PIO Multiplexing Definition */
|
||||
|
||||
/* There is only one PIO Controller */
|
||||
#define PIO_CTRL 0
|
||||
|
||||
#define PIO_TC0 PIO_CTRL
|
||||
#define TCLK0 P0
|
||||
#define TIOA0 P1
|
||||
#define TIOB0 P2
|
||||
#define PIN_TC0 (TIOA0|TIOB0|TCLK0)
|
||||
|
||||
#define PIO_TC1 PIO_CTRL
|
||||
#define TCLK1 P3
|
||||
#define TIOA1 P4
|
||||
#define TIOB1 P5
|
||||
#define PIN_TC1 (TIOA1|TIOB1|TCLK1)
|
||||
|
||||
#define PIO_TC2 PIO_CTRL
|
||||
#define TCLK2 P6
|
||||
#define TIOA2 P7
|
||||
#define TIOB2 P8
|
||||
#define PIN_TC2 (TIOA2|TIOB2|TCLK2)
|
||||
|
||||
#define PIO_EXT_IRQ PIO_CTRL
|
||||
#define PIN_IRQ0 P9
|
||||
#define PIN_IRQ1 P10
|
||||
#define PIN_IRQ2 P11
|
||||
#define PIN_FIQ P12
|
||||
|
||||
#define PIO_USART0 PIO_CTRL
|
||||
#define SCK0 P13
|
||||
#define TXD0 P14
|
||||
#define RXD0 P15
|
||||
#define PIN_USART0 (SCK0|TXD0|RXD0)
|
||||
|
||||
#define PIO_USART1 PIO_CTRL
|
||||
#define SCK1 P20
|
||||
#define TXD1 P21
|
||||
#define RXD1 P22
|
||||
#define PIN_USART1 (SCK1|TXD1|RXD1)
|
||||
|
||||
#define MCKO P25
|
||||
#define CS2 P26
|
||||
#define CS3 P27
|
||||
#define CS4 P31
|
||||
#define CS5 P30
|
||||
#define CS6 P29
|
||||
#define CS7 P28
|
||||
|
||||
#endif /* pio_h */
|
6
20080307/Demo/ARM7_AT91FR40008_GCC/ram_arm.bat
Normal file
6
20080307/Demo/ARM7_AT91FR40008_GCC/ram_arm.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
set USE_THUMB_MODE=NO
|
||||
set DEBUG=-g
|
||||
set OPTIM=-O0
|
||||
set RUN_MODE=RUN_FROM_RAM
|
||||
set LDSCRIPT=atmel-ram.ld
|
||||
make
|
6
20080307/Demo/ARM7_AT91FR40008_GCC/ram_thumb.bat
Normal file
6
20080307/Demo/ARM7_AT91FR40008_GCC/ram_thumb.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
set USE_THUMB_MODE=YES
|
||||
set DEBUG=-g
|
||||
set OPTIM=-O0
|
||||
set RUN_MODE=RUN_FROM_RAM
|
||||
set LDSCRIPT=atmel-ram.ld
|
||||
make
|
6
20080307/Demo/ARM7_AT91FR40008_GCC/rom_arm.bat
Normal file
6
20080307/Demo/ARM7_AT91FR40008_GCC/rom_arm.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
set USE_THUMB_MODE=NO
|
||||
set DEBUG=-g
|
||||
set OPTIM=-O2
|
||||
set RUN_MODE=RUN_FROM_ROM
|
||||
set LDSCRIPT=atmel-rom.ld
|
||||
make
|
6
20080307/Demo/ARM7_AT91FR40008_GCC/rom_thumb.bat
Normal file
6
20080307/Demo/ARM7_AT91FR40008_GCC/rom_thumb.bat
Normal file
|
@ -0,0 +1,6 @@
|
|||
set USE_THUMB_MODE=YES
|
||||
set DEBUG=-g
|
||||
set OPTIM=-O2
|
||||
set RUN_MODE=RUN_FROM_ROM
|
||||
set LDSCRIPT=atmel-rom.ld
|
||||
make
|
238
20080307/Demo/ARM7_AT91FR40008_GCC/serial/serial.c
Normal file
238
20080307/Demo/ARM7_AT91FR40008_GCC/serial/serial.c
Normal file
|
@ -0,0 +1,238 @@
|
|||
/*
|
||||
FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.
|
||||
|
||||
This file is part of the FreeRTOS.org distribution.
|
||||
|
||||
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FreeRTOS.org; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
A special exception to the GPL can be applied should you wish to distribute
|
||||
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||
the source code for any proprietary components. See the licensing section
|
||||
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||
can be applied.
|
||||
|
||||
***************************************************************************
|
||||
|
||||
Please ensure to read the configuration and relevant port sections of the
|
||||
online documentation.
|
||||
|
||||
+++ http://www.FreeRTOS.org +++
|
||||
Documentation, latest information, license and contact details.
|
||||
|
||||
+++ http://www.SafeRTOS.com +++
|
||||
A version that is certified for use in safety critical systems.
|
||||
|
||||
+++ http://www.OpenRTOS.com +++
|
||||
Commercial support, development, porting, licensing and training services.
|
||||
|
||||
***************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR USART0.
|
||||
|
||||
This file contains all the serial port components that can be compiled to
|
||||
either ARM or THUMB mode. Components that must be compiled to ARM mode are
|
||||
contained in serialISR.c.
|
||||
*/
|
||||
|
||||
/* Standard includes. */
|
||||
#include <stdlib.h>
|
||||
|
||||
/* Scheduler includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "queue.h"
|
||||
#include "task.h"
|
||||
|
||||
/* Demo application includes. */
|
||||
#include "serial.h"
|
||||
#include "AT91R40008.h"
|
||||
#include "usart.h"
|
||||
#include "pio.h"
|
||||
#include "aic.h"
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Constants to setup and access the UART. */
|
||||
#define portUSART0_AIC_CHANNEL ( ( unsigned portLONG ) 2 )
|
||||
|
||||
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
||||
#define serHANDLE ( ( xComPortHandle ) 1 )
|
||||
#define serNO_BLOCK ( ( portTickType ) 0 )
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Queues used to hold received characters, and characters waiting to be
|
||||
transmitted. */
|
||||
static xQueueHandle xRxedChars;
|
||||
static xQueueHandle xCharsForTx;
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* The queues are created in serialISR.c as they are used from the ISR.
|
||||
* Obtain references to the queues and THRE Empty flag.
|
||||
*/
|
||||
extern void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars, xQueueHandle *pxCharsForTx );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||
{
|
||||
unsigned portLONG ulSpeed;
|
||||
unsigned portLONG ulCD;
|
||||
xComPortHandle xReturn = serHANDLE;
|
||||
extern void ( vUART_ISR_Wrapper )( void );
|
||||
|
||||
/* The queues are used in the serial ISR routine, so are created from
|
||||
serialISR.c (which is always compiled to ARM mode. */
|
||||
vSerialISRCreateQueues( uxQueueLength, &xRxedChars, &xCharsForTx );
|
||||
|
||||
if(
|
||||
( xRxedChars != serINVALID_QUEUE ) &&
|
||||
( xCharsForTx != serINVALID_QUEUE ) &&
|
||||
( ulWantedBaud != ( unsigned portLONG ) 0 )
|
||||
)
|
||||
{
|
||||
portENTER_CRITICAL();
|
||||
{
|
||||
/* Enable clock to USART0... */
|
||||
AT91C_BASE_PS->PS_PCER = AT91C_PS_US0;
|
||||
|
||||
/* Disable all USART0 interrupt sources to begin... */
|
||||
AT91C_BASE_US0->US_IDR = 0xFFFFFFFF;
|
||||
|
||||
/* Reset various status bits (just in case)... */
|
||||
AT91C_BASE_US0->US_CR = US_RSTSTA;
|
||||
|
||||
AT91C_BASE_PIO->PIO_PDR = TXD0 | RXD0; /* Enable RXD and TXD pins */
|
||||
AT91C_BASE_US0->US_CR = US_RSTRX | US_RSTTX | US_RXDIS | US_TXDIS;
|
||||
|
||||
/* Clear Transmit and Receive Counters */
|
||||
AT91C_BASE_US0->US_RCR = 0;
|
||||
AT91C_BASE_US0->US_TCR = 0;
|
||||
|
||||
/* Input clock to baud rate generator is MCK */
|
||||
ulSpeed = configCPU_CLOCK_HZ * 10;
|
||||
ulSpeed = ulSpeed / 16;
|
||||
ulSpeed = ulSpeed / ulWantedBaud;
|
||||
|
||||
/* compute the error */
|
||||
ulCD = ulSpeed / 10;
|
||||
if ((ulSpeed - (ulCD * 10)) >= 5)
|
||||
ulCD++;
|
||||
|
||||
/* Define the baud rate divisor register */
|
||||
AT91C_BASE_US0->US_BRGR = ulCD;
|
||||
|
||||
/* Define the USART mode */
|
||||
AT91C_BASE_US0->US_MR = US_CLKS_MCK | US_CHRL_8 | US_PAR_NO | US_NBSTOP_1 | US_CHMODE_NORMAL;
|
||||
|
||||
/* Write the Timeguard Register */
|
||||
AT91C_BASE_US0->US_TTGR = 0;
|
||||
|
||||
/* Setup the interrupt for USART0.
|
||||
|
||||
Store interrupt handler function address in USART0 vector register... */
|
||||
AT91C_BASE_AIC->AIC_SVR[ portUSART0_AIC_CHANNEL ] = (unsigned long)vUART_ISR_Wrapper;
|
||||
|
||||
/* USART0 interrupt level-sensitive, priority 1... */
|
||||
AT91C_BASE_AIC->AIC_SMR[ portUSART0_AIC_CHANNEL ] = AIC_SRCTYPE_INT_LEVEL_SENSITIVE | 1;
|
||||
|
||||
/* Clear some pending USART0 interrupts (just in case)... */
|
||||
AT91C_BASE_US0->US_CR = US_RSTSTA;
|
||||
|
||||
/* Enable USART0 interrupt sources (but not Tx for now)... */
|
||||
AT91C_BASE_US0->US_IER = US_RXRDY;
|
||||
|
||||
/* Enable USART0 interrupts in the AIC... */
|
||||
AT91C_BASE_AIC->AIC_IECR = ( 1 << portUSART0_AIC_CHANNEL );
|
||||
|
||||
/* Enable receiver and transmitter... */
|
||||
AT91C_BASE_US0->US_CR = US_RXEN | US_TXEN;
|
||||
}
|
||||
portEXIT_CRITICAL();
|
||||
}
|
||||
else
|
||||
{
|
||||
xReturn = ( xComPortHandle ) 0;
|
||||
}
|
||||
|
||||
return xReturn;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
||||
{
|
||||
/* The port handle is not required as this driver only supports UART0. */
|
||||
( void ) pxPort;
|
||||
|
||||
/* Get the next character from the buffer. Return false if no characters
|
||||
are available, or arrive before xBlockTime expires. */
|
||||
if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )
|
||||
{
|
||||
return pdTRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return pdFALSE;
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
||||
{
|
||||
signed portCHAR *pxNext;
|
||||
|
||||
/* NOTE: This implementation does not handle the queue being full as no
|
||||
block time is used! */
|
||||
|
||||
/* The port handle is not required as this driver only supports UART0. */
|
||||
( void ) pxPort;
|
||||
|
||||
/* Send each character in the string, one at a time. */
|
||||
pxNext = ( signed portCHAR * ) pcString;
|
||||
while( *pxNext )
|
||||
{
|
||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||
pxNext++;
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
||||
{
|
||||
/* Place the character in the queue of characters to be transmitted. */
|
||||
if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
|
||||
{
|
||||
return pdFAIL;
|
||||
}
|
||||
|
||||
/* Turn on the Tx interrupt so the ISR will remove the character from the
|
||||
queue and send it. This does not need to be in a critical section as
|
||||
if the interrupt has already removed the character the next interrupt
|
||||
will simply turn off the Tx interrupt again. */
|
||||
AT91C_BASE_US0->US_IER = US_TXRDY;
|
||||
|
||||
return pdPASS;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vSerialClose( xComPortHandle xPort )
|
||||
{
|
||||
/* Not supported as not required by the demo application. */
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
162
20080307/Demo/ARM7_AT91FR40008_GCC/serial/serialISR.c
Normal file
162
20080307/Demo/ARM7_AT91FR40008_GCC/serial/serialISR.c
Normal file
|
@ -0,0 +1,162 @@
|
|||
/*
|
||||
FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.
|
||||
|
||||
This file is part of the FreeRTOS.org distribution.
|
||||
|
||||
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FreeRTOS.org; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
A special exception to the GPL can be applied should you wish to distribute
|
||||
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||
the source code for any proprietary components. See the licensing section
|
||||
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||
can be applied.
|
||||
|
||||
***************************************************************************
|
||||
See http://www.FreeRTOS.org for documentation, latest information, license
|
||||
and contact details. Please ensure to read the configuration and relevant
|
||||
port sections of the online documentation.
|
||||
***************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR USART0.
|
||||
|
||||
This file contains all the serial port components that must be compiled
|
||||
to ARM mode. The components that can be compiled to either ARM or THUMB
|
||||
mode are contained in serial.c.
|
||||
|
||||
*/
|
||||
|
||||
/* Standard includes. */
|
||||
#include <stdlib.h>
|
||||
|
||||
/* Scheduler includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "queue.h"
|
||||
#include "task.h"
|
||||
|
||||
/* Demo application includes. */
|
||||
#include "serial.h"
|
||||
#include "AT91R40008.h"
|
||||
#include "usart.h"
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Constant to access the AIC. */
|
||||
#define serCLEAR_AIC_INTERRUPT ( ( unsigned portLONG ) 0 )
|
||||
|
||||
/* Constants to determine the ISR source. */
|
||||
#define serSOURCE_THRE ( ( unsigned portCHAR ) 0x02 )
|
||||
#define serSOURCE_RX_TIMEOUT ( ( unsigned portCHAR ) 0x0c )
|
||||
#define serSOURCE_ERROR ( ( unsigned portCHAR ) 0x06 )
|
||||
#define serSOURCE_RX ( ( unsigned portCHAR ) 0x04 )
|
||||
#define serINTERRUPT_SOURCE_MASK ( ( unsigned portLONG ) (US_RXRDY | US_TXRDY | US_RXBRK | US_OVRE | US_FRAME | US_PARE) )
|
||||
|
||||
/* Queues used to hold received characters, and characters waiting to be
|
||||
transmitted. */
|
||||
static xQueueHandle xRxedChars;
|
||||
static xQueueHandle xCharsForTx;
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* UART0 interrupt service routine. This can cause a context switch so MUST
|
||||
be declared "naked". */
|
||||
void vUART_ISR_Wrapper( void ) __attribute__ ((naked));
|
||||
|
||||
/* The ISR function that actually performs the work. This must be separate
|
||||
from the wrapper to ensure the correct stack frame is set up. */
|
||||
void vUART_ISR_Handler( void );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars, xQueueHandle *pxCharsForTx )
|
||||
{
|
||||
/* Create the queues used to hold Rx and Tx characters. */
|
||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
||||
|
||||
/* Pass back a reference to the queues so the serial API file can
|
||||
post/receive characters. */
|
||||
*pxRxedChars = xRxedChars;
|
||||
*pxCharsForTx = xCharsForTx;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vUART_ISR_Wrapper( void )
|
||||
{
|
||||
/* Save the context of the interrupted task. */
|
||||
portSAVE_CONTEXT();
|
||||
|
||||
/* Call the handler. This must be a separate function to ensure the
|
||||
stack frame is correctly set up. */
|
||||
vUART_ISR_Handler();
|
||||
|
||||
/* Restore the context of whichever task will run next. */
|
||||
portRESTORE_CONTEXT();
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vUART_ISR_Handler( void )
|
||||
{
|
||||
/* Now we can declare the local variables. These must be static. */
|
||||
signed portCHAR cChar;
|
||||
portBASE_TYPE xTaskWokenByTx = pdFALSE, xTaskWokenByRx = pdFALSE;
|
||||
unsigned portLONG ulStatus;
|
||||
|
||||
/* What caused the interrupt? */
|
||||
ulStatus = AT91C_BASE_US0->US_CSR & AT91C_BASE_US0->US_IMR;
|
||||
|
||||
if (ulStatus & US_TXRDY)
|
||||
{
|
||||
/* The interrupt was caused by the THR becoming empty. Are there any
|
||||
more characters to transmit? */
|
||||
if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xTaskWokenByTx ) == pdTRUE )
|
||||
{
|
||||
/* A character was retrieved from the queue so can be sent to the
|
||||
THR now. */
|
||||
AT91C_BASE_US0->US_THR = cChar;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Queue empty, nothing to send so turn off the Tx interrupt. */
|
||||
AT91C_BASE_US0->US_IDR = US_TXRDY;
|
||||
}
|
||||
}
|
||||
|
||||
if (ulStatus & US_RXRDY)
|
||||
{
|
||||
/* The interrupt was caused by the receiver getting data. */
|
||||
cChar = AT91C_BASE_US0->US_RHR;
|
||||
|
||||
if (xQueueSendFromISR(xRxedChars, &cChar, pdFALSE))
|
||||
{
|
||||
xTaskWokenByRx = pdTRUE;
|
||||
}
|
||||
}
|
||||
|
||||
/* Acknowledge the interrupt at AIC level... */
|
||||
AT91C_BASE_AIC->AIC_EOICR = serCLEAR_AIC_INTERRUPT;
|
||||
|
||||
/* If an event caused a task to unblock then we call "Yield from ISR" to
|
||||
ensure that the unblocked task is the task that executes when the interrupt
|
||||
completes if the unblocked task has a priority higher than the interrupted
|
||||
task. */
|
||||
if( xTaskWokenByTx || xTaskWokenByRx )
|
||||
{
|
||||
portYIELD_FROM_ISR();
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
301
20080307/Demo/ARM7_AT91FR40008_GCC/tc.h
Normal file
301
20080307/Demo/ARM7_AT91FR40008_GCC/tc.h
Normal file
|
@ -0,0 +1,301 @@
|
|||
//*----------------------------------------------------------------------------
|
||||
//* ATMEL Microcontroller Software Support - ROUSSET -
|
||||
//*----------------------------------------------------------------------------
|
||||
//* The software is delivered "AS IS" without warranty or condition of any
|
||||
//* kind, either express, implied or statutory. This includes without
|
||||
//* limitation any warranty or condition with respect to merchantability or
|
||||
//* fitness for any particular purpose, or against the infringements of
|
||||
//* intellectual property rights of others.
|
||||
//*-----------------------------------------------------------------------------
|
||||
//* File Name : tc.h
|
||||
//* Object : Timer Counter Header File
|
||||
//*
|
||||
//* 1.0 01/04/00 JCZ : Creation
|
||||
//* 1.0 01/09/00 JPP : modification TC_BEEVT, TC_BEEVT_SET_OUTPUT,
|
||||
//* TC_BEEVT_CLEAR_OUTPUT, TC_BEEVT_TOGGLE_OUTPUT
|
||||
//*-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef tc_h
|
||||
#define tc_h
|
||||
|
||||
//#include "periph/stdc/std_c.h"
|
||||
//#include "periph/pio/lib_pio.h"
|
||||
|
||||
/*-------------------------------------------*/
|
||||
/* Timer User Interface Structure Definition */
|
||||
/*-------------------------------------------*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
at91_reg TC_CCR ; /* Control Register */
|
||||
at91_reg TC_CMR ; /* Mode Register */
|
||||
at91_reg Reserved0 ;
|
||||
at91_reg Reserved1 ;
|
||||
at91_reg TC_CV ; /* Counter value */
|
||||
at91_reg TC_RA ; /* Register A */
|
||||
at91_reg TC_RB ; /* Register B */
|
||||
at91_reg TC_RC ; /* Register C */
|
||||
at91_reg TC_SR ; /* Status Register */
|
||||
at91_reg TC_IER ; /* Interrupt Enable Register */
|
||||
at91_reg TC_IDR ; /* Interrupt Disable Register */
|
||||
at91_reg TC_IMR ; /* Interrupt Mask Register */
|
||||
at91_reg Reserved2 ;
|
||||
at91_reg Reserved3 ;
|
||||
at91_reg Reserved4 ;
|
||||
at91_reg Reserved5 ;
|
||||
} StructTC ;
|
||||
|
||||
#define NB_TC_CHANNEL 3
|
||||
|
||||
typedef struct
|
||||
{
|
||||
StructTC TC[NB_TC_CHANNEL] ;
|
||||
at91_reg TC_BCR ; /* Block Control Register */
|
||||
at91_reg TC_BMR ; /* Block Mode Register */
|
||||
} StructTCBlock ;
|
||||
|
||||
/*--------------------------------------------------------*/
|
||||
/* TC_CCR: Timer Counter Control Register Bits Definition */
|
||||
/*--------------------------------------------------------*/
|
||||
#define TC_CLKEN 0x1
|
||||
#define TC_CLKDIS 0x2
|
||||
#define TC_SWTRG 0x4
|
||||
|
||||
/*---------------------------------------------------------------*/
|
||||
/* TC_CMR: Timer Counter Channel Mode Register Bits Definition */
|
||||
/*---------------------------------------------------------------*/
|
||||
|
||||
/*-----------------*/
|
||||
/* Clock Selection */
|
||||
/*-----------------*/
|
||||
#define TC_CLKS 0x7
|
||||
#define TC_CLKS_MCK2 0x0
|
||||
#define TC_CLKS_MCK8 0x1
|
||||
#define TC_CLKS_MCK32 0x2
|
||||
#define TC_CLKS_MCK128 0x3
|
||||
#define TC_CLKS_MCK1024 0x4
|
||||
|
||||
#define TC_CLKS_SLCK 0x4
|
||||
|
||||
#define TC_CLKS_XC0 0x5
|
||||
#define TC_CLKS_XC1 0x6
|
||||
#define TC_CLKS_XC2 0x7
|
||||
|
||||
|
||||
/*-----------------*/
|
||||
/* Clock Inversion */
|
||||
/*-----------------*/
|
||||
#define TC_CLKI 0x8
|
||||
|
||||
/*------------------------*/
|
||||
/* Burst Signal Selection */
|
||||
/*------------------------*/
|
||||
#define TC_BURST 0x30
|
||||
#define TC_BURST_NONE 0x0
|
||||
#define TC_BUSRT_XC0 0x10
|
||||
#define TC_BURST_XC1 0x20
|
||||
#define TC_BURST_XC2 0x30
|
||||
|
||||
/*------------------------------------------------------*/
|
||||
/* Capture Mode : Counter Clock Stopped with RB Loading */
|
||||
/*------------------------------------------------------*/
|
||||
#define TC_LDBSTOP 0x40
|
||||
|
||||
/*-------------------------------------------------------*/
|
||||
/* Waveform Mode : Counter Clock Stopped with RC Compare */
|
||||
/*-------------------------------------------------------*/
|
||||
#define TC_CPCSTOP 0x40
|
||||
|
||||
/*-------------------------------------------------------*/
|
||||
/* Capture Mode : Counter Clock Disabled with RB Loading */
|
||||
/*--------------------------------------------------------*/
|
||||
#define TC_LDBDIS 0x80
|
||||
|
||||
/*--------------------------------------------------------*/
|
||||
/* Waveform Mode : Counter Clock Disabled with RC Compare */
|
||||
/*--------------------------------------------------------*/
|
||||
#define TC_CPCDIS 0x80
|
||||
|
||||
/*------------------------------------------------*/
|
||||
/* Capture Mode : External Trigger Edge Selection */
|
||||
/*------------------------------------------------*/
|
||||
#define TC_ETRGEDG 0x300
|
||||
#define TC_ETRGEDG_EDGE_NONE 0x0
|
||||
#define TC_ETRGEDG_RISING_EDGE 0x100
|
||||
#define TC_ETRGEDG_FALLING_EDGE 0x200
|
||||
#define TC_ETRGEDG_BOTH_EDGE 0x300
|
||||
|
||||
/*-----------------------------------------------*/
|
||||
/* Waveform Mode : External Event Edge Selection */
|
||||
/*-----------------------------------------------*/
|
||||
#define TC_EEVTEDG 0x300
|
||||
#define TC_EEVTEDG_EDGE_NONE 0x0
|
||||
#define TC_EEVTEDG_RISING_EDGE 0x100
|
||||
#define TC_EEVTEDG_FALLING_EDGE 0x200
|
||||
#define TC_EEVTEDG_BOTH_EDGE 0x300
|
||||
|
||||
/*--------------------------------------------------------*/
|
||||
/* Capture Mode : TIOA or TIOB External Trigger Selection */
|
||||
/*--------------------------------------------------------*/
|
||||
#define TC_ABETRG 0x400
|
||||
#define TC_ABETRG_TIOB 0x0
|
||||
#define TC_ABETRG_TIOA 0x400
|
||||
|
||||
/*------------------------------------------*/
|
||||
/* Waveform Mode : External Event Selection */
|
||||
/*------------------------------------------*/
|
||||
#define TC_EEVT 0xC00
|
||||
#define TC_EEVT_TIOB 0x0
|
||||
#define TC_EEVT_XC0 0x400
|
||||
#define TC_EEVT_XC1 0x800
|
||||
#define TC_EEVT_XC2 0xC00
|
||||
|
||||
/*--------------------------------------------------*/
|
||||
/* Waveform Mode : Enable Trigger on External Event */
|
||||
/*--------------------------------------------------*/
|
||||
#define TC_ENETRG 0x1000
|
||||
|
||||
/*----------------------------------*/
|
||||
/* RC Compare Enable Trigger Enable */
|
||||
/*----------------------------------*/
|
||||
#define TC_CPCTRG 0x4000
|
||||
|
||||
/*----------------*/
|
||||
/* Mode Selection */
|
||||
/*----------------*/
|
||||
#define TC_WAVE 0x8000
|
||||
#define TC_CAPT 0x0
|
||||
|
||||
/*-------------------------------------*/
|
||||
/* Capture Mode : RA Loading Selection */
|
||||
/*-------------------------------------*/
|
||||
#define TC_LDRA 0x30000
|
||||
#define TC_LDRA_EDGE_NONE 0x0
|
||||
#define TC_LDRA_RISING_EDGE 0x10000
|
||||
#define TC_LDRA_FALLING_EDGE 0x20000
|
||||
#define TC_LDRA_BOTH_EDGE 0x30000
|
||||
|
||||
/*-------------------------------------------*/
|
||||
/* Waveform Mode : RA Compare Effect on TIOA */
|
||||
/*-------------------------------------------*/
|
||||
#define TC_ACPA 0x30000
|
||||
#define TC_ACPA_OUTPUT_NONE 0x0
|
||||
#define TC_ACPA_SET_OUTPUT 0x10000
|
||||
#define TC_ACPA_CLEAR_OUTPUT 0x20000
|
||||
#define TC_ACPA_TOGGLE_OUTPUT 0x30000
|
||||
|
||||
/*-------------------------------------*/
|
||||
/* Capture Mode : RB Loading Selection */
|
||||
/*-------------------------------------*/
|
||||
#define TC_LDRB 0xC0000
|
||||
#define TC_LDRB_EDGE_NONE 0x0
|
||||
#define TC_LDRB_RISING_EDGE 0x40000
|
||||
#define TC_LDRB_FALLING_EDGE 0x80000
|
||||
#define TC_LDRB_BOTH_EDGE 0xC0000
|
||||
|
||||
/*-------------------------------------------*/
|
||||
/* Waveform Mode : RC Compare Effect on TIOA */
|
||||
/*-------------------------------------------*/
|
||||
#define TC_ACPC 0xC0000
|
||||
#define TC_ACPC_OUTPUT_NONE 0x0
|
||||
#define TC_ACPC_SET_OUTPUT 0x40000
|
||||
#define TC_ACPC_CLEAR_OUTPUT 0x80000
|
||||
#define TC_ACPC_TOGGLE_OUTPUT 0xC0000
|
||||
|
||||
/*-----------------------------------------------*/
|
||||
/* Waveform Mode : External Event Effect on TIOA */
|
||||
/*-----------------------------------------------*/
|
||||
#define TC_AEEVT 0x300000
|
||||
#define TC_AEEVT_OUTPUT_NONE 0x0
|
||||
#define TC_AEEVT_SET_OUTPUT 0x100000
|
||||
#define TC_AEEVT_CLEAR_OUTPUT 0x200000
|
||||
#define TC_AEEVT_TOGGLE_OUTPUT 0x300000
|
||||
|
||||
/*-------------------------------------------------*/
|
||||
/* Waveform Mode : Software Trigger Effect on TIOA */
|
||||
/*-------------------------------------------------*/
|
||||
#define TC_ASWTRG 0xC00000
|
||||
#define TC_ASWTRG_OUTPUT_NONE 0x0
|
||||
#define TC_ASWTRG_SET_OUTPUT 0x400000
|
||||
#define TC_ASWTRG_CLEAR_OUTPUT 0x800000
|
||||
#define TC_ASWTRG_TOGGLE_OUTPUT 0xC00000
|
||||
|
||||
/*-------------------------------------------*/
|
||||
/* Waveform Mode : RB Compare Effect on TIOB */
|
||||
/*-------------------------------------------*/
|
||||
#define TC_BCPB 0x1000000
|
||||
#define TC_BCPB_OUTPUT_NONE 0x0
|
||||
#define TC_BCPB_SET_OUTPUT 0x1000000
|
||||
#define TC_BCPB_CLEAR_OUTPUT 0x2000000
|
||||
#define TC_BCPB_TOGGLE_OUTPUT 0x3000000
|
||||
|
||||
/*-------------------------------------------*/
|
||||
/* Waveform Mode : RC Compare Effect on TIOB */
|
||||
/*-------------------------------------------*/
|
||||
#define TC_BCPC 0xC000000
|
||||
#define TC_BCPC_OUTPUT_NONE 0x0
|
||||
#define TC_BCPC_SET_OUTPUT 0x4000000
|
||||
#define TC_BCPC_CLEAR_OUTPUT 0x8000000
|
||||
#define TC_BCPC_TOGGLE_OUTPUT 0xC000000
|
||||
|
||||
/*-----------------------------------------------*/
|
||||
/* Waveform Mode : External Event Effect on TIOB */
|
||||
/*-----------------------------------------------*/
|
||||
#define TC_BEEVT 0x30000000 //* bit 29-28
|
||||
#define TC_BEEVT_OUTPUT_NONE 0x0
|
||||
#define TC_BEEVT_SET_OUTPUT 0x10000000 //* bit 29-28 01
|
||||
#define TC_BEEVT_CLEAR_OUTPUT 0x20000000 //* bit 29-28 10
|
||||
#define TC_BEEVT_TOGGLE_OUTPUT 0x30000000 //* bit 29-28 11
|
||||
|
||||
/*- -----------------------------------------------*/
|
||||
/* Waveform Mode : Software Trigger Effect on TIOB */
|
||||
/*-------------------------------------------------*/
|
||||
#define TC_BSWTRG 0xC0000000
|
||||
#define TC_BSWTRG_OUTPUT_NONE 0x0
|
||||
#define TC_BSWTRG_SET_OUTPUT 0x40000000
|
||||
#define TC_BSWTRG_CLEAR_OUTPUT 0x80000000
|
||||
#define TC_BSWTRG_TOGGLE_OUTPUT 0xC0000000
|
||||
|
||||
/*------------------------------------------------------*/
|
||||
/* TC_SR: Timer Counter Status Register Bits Definition */
|
||||
/*------------------------------------------------------*/
|
||||
#define TC_COVFS 0x1 /* Counter Overflow Status */
|
||||
#define TC_LOVRS 0x2 /* Load Overrun Status */
|
||||
#define TC_CPAS 0x4 /* RA Compare Status */
|
||||
#define TC_CPBS 0x8 /* RB Compare Status */
|
||||
#define TC_CPCS 0x10 /* RC Compare Status */
|
||||
#define TC_LDRAS 0x20 /* RA Loading Status */
|
||||
#define TC_LDRBS 0x40 /* RB Loading Status */
|
||||
#define TC_ETRGS 0x80 /* External Trigger Status */
|
||||
#define TC_CLKSTA 0x10000 /* Clock Status */
|
||||
#define TC_MTIOA 0x20000 /* TIOA Mirror */
|
||||
#define TC_MTIOB 0x40000 /* TIOB Status */
|
||||
|
||||
/*--------------------------------------------------------------*/
|
||||
/* TC_BCR: Timer Counter Block Control Register Bits Definition */
|
||||
/*--------------------------------------------------------------*/
|
||||
#define TC_SYNC 0x1 /* Synchronisation Trigger */
|
||||
|
||||
/*------------------------------------------------------------*/
|
||||
/* TC_BMR: Timer Counter Block Mode Register Bits Definition */
|
||||
/*------------------------------------------------------------*/
|
||||
#define TC_TC0XC0S 0x3 /* External Clock Signal 0 Selection */
|
||||
#define TC_TCLK0XC0 0x0
|
||||
#define TC_NONEXC0 0x1
|
||||
#define TC_TIOA1XC0 0x2
|
||||
#define TC_TIOA2XC0 0x3
|
||||
|
||||
#define TC_TC1XC1S 0xC /* External Clock Signal 1 Selection */
|
||||
#define TC_TCLK1XC1 0x0
|
||||
#define TC_NONEXC1 0x4
|
||||
#define TC_TIOA0XC1 0x8
|
||||
#define TC_TIOA2XC1 0xC
|
||||
|
||||
#define TC_TC2XC2S 0x30 /* External Clock Signal 2 Selection */
|
||||
#define TC_TCLK2XC2 0x0
|
||||
#define TC_NONEXC2 0x10
|
||||
#define TC_TIOA0XC2 0x20
|
||||
#define TC_TIOA1XC2 0x30
|
||||
|
||||
#endif /* tc_h */
|
||||
|
151
20080307/Demo/ARM7_AT91FR40008_GCC/usart.h
Normal file
151
20080307/Demo/ARM7_AT91FR40008_GCC/usart.h
Normal file
|
@ -0,0 +1,151 @@
|
|||
//*----------------------------------------------------------------------------
|
||||
//* ATMEL Microcontroller Software Support - ROUSSET -
|
||||
//*----------------------------------------------------------------------------
|
||||
//* The software is delivered "AS IS" without warranty or condition of any
|
||||
//* kind, either express, implied or statutory. This includes without
|
||||
//* limitation any warranty or condition with respect to merchantability or
|
||||
//* fitness for any particular purpose, or against the infringements of
|
||||
//* intellectual property rights of others.
|
||||
//*-----------------------------------------------------------------------------
|
||||
//* File Name : usart.h
|
||||
//* Object : USART Header File.
|
||||
//*
|
||||
//* 1.0 01/04/00 JCZ : Creation
|
||||
//*----------------------------------------------------------------------------
|
||||
|
||||
#ifndef usart_h
|
||||
#define usart_h
|
||||
|
||||
//#include "periph/stdc/std_c.h"
|
||||
//#include "periph/pio/lib_pio.h"
|
||||
|
||||
/*-------------------------------------------*/
|
||||
/* USART User Interface Structure Definition */
|
||||
/*-------------------------------------------*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
at91_reg US_CR ; /* Control Register */
|
||||
at91_reg US_MR ; /* Mode Register */
|
||||
at91_reg US_IER ; /* Interrupt Enable Register */
|
||||
at91_reg US_IDR ; /* Interrupt Disable Register */
|
||||
at91_reg US_IMR ; /* Interrupt Mask Register */
|
||||
at91_reg US_CSR ; /* Channel Status Register */
|
||||
at91_reg US_RHR ; /* Receive Holding Register */
|
||||
at91_reg US_THR ; /* Transmit Holding Register */
|
||||
at91_reg US_BRGR ; /* Baud Rate Generator Register */
|
||||
at91_reg US_RTOR ; /* Receiver Timeout Register */
|
||||
at91_reg US_TTGR ; /* Transmitter Time-guard Register */
|
||||
at91_reg Reserved ;
|
||||
at91_reg US_RPR ; /* Receiver Pointer Register */
|
||||
at91_reg US_RCR ; /* Receiver Counter Register */
|
||||
at91_reg US_TPR ; /* Transmitter Pointer Register */
|
||||
at91_reg US_TCR ; /* Transmitter Counter Register */
|
||||
} StructUSART ;
|
||||
|
||||
/*--------------------------*/
|
||||
/* US_CR : Control Register */
|
||||
/*--------------------------*/
|
||||
|
||||
#define US_RSTRX 0x0004 /* Reset Receiver */
|
||||
#define US_RSTTX 0x0008 /* Reset Transmitter */
|
||||
#define US_RXEN 0x0010 /* Receiver Enable */
|
||||
#define US_RXDIS 0x0020 /* Receiver Disable */
|
||||
#define US_TXEN 0x0040 /* Transmitter Enable */
|
||||
#define US_TXDIS 0x0080 /* Transmitter Disable */
|
||||
#define US_RSTSTA 0x0100 /* Reset Status Bits */
|
||||
#define US_STTBRK 0x0200 /* Start Break */
|
||||
#define US_STPBRK 0x0400 /* Stop Break */
|
||||
#define US_STTTO 0x0800 /* Start Time-out */
|
||||
#define US_SENDA 0x1000 /* Send Address */
|
||||
|
||||
/*-----------------------*/
|
||||
/* US_MR : Mode Register */
|
||||
/*-----------------------*/
|
||||
|
||||
#define US_CLKS 0x0030 /* Clock Selection */
|
||||
#define US_CLKS_MCK 0x00 /* Master Clock */
|
||||
#define US_CLKS_MCK8 0x10 /* Master Clock divided by 8 */
|
||||
#define US_CLKS_SCK 0x20 /* External Clock */
|
||||
#define US_CLKS_SLCK 0x30 /* Slow Clock */
|
||||
|
||||
#define US_CHRL 0x00C0 /* Byte Length */
|
||||
#define US_CHRL_5 0x00 /* 5 bits */
|
||||
#define US_CHRL_6 0x40 /* 6 bits */
|
||||
#define US_CHRL_7 0x80 /* 7 bits */
|
||||
#define US_CHRL_8 0xC0 /* 8 bits */
|
||||
|
||||
#define US_SYNC 0x0100 /* Synchronous Mode Enable */
|
||||
|
||||
#define US_PAR 0x0E00 /* Parity Mode */
|
||||
#define US_PAR_EVEN 0x00 /* Even Parity */
|
||||
#define US_PAR_ODD 0x200 /* Odd Parity */
|
||||
#define US_PAR_SPACE 0x400 /* Space Parity to 0 */
|
||||
#define US_PAR_MARK 0x600 /* Marked Parity to 1 */
|
||||
#define US_PAR_NO 0x800 /* No Parity */
|
||||
#define US_PAR_MULTIDROP 0xC00 /* Multi-drop Mode */
|
||||
|
||||
#define US_NBSTOP 0x3000 /* Stop Bit Number */
|
||||
#define US_NBSTOP_1 0x0000 /* 1 Stop Bit */
|
||||
#define US_NBSTOP_1_5 0x1000 /* 1.5 Stop Bits */
|
||||
#define US_NBSTOP_2 0x2000 /* 2 Stop Bits */
|
||||
|
||||
#define US_CHMODE 0xC000 /* Channel Mode */
|
||||
#define US_CHMODE_NORMAL 0x0000 /* Normal Mode */
|
||||
#define US_CHMODE_AUTOMATIC_ECHO 0x4000 /* Automatic Echo */
|
||||
#define US_CHMODE_LOCAL_LOOPBACK 0x8000 /* Local Loopback */
|
||||
#define US_CHMODE_REMOTE_LOOPBACK 0xC000 /* Remote Loopback */
|
||||
|
||||
#define US_MODE9 0x20000 /* 9 Bit Mode */
|
||||
|
||||
#define US_CLKO 0x40000 /* Baud Rate Output Enable */
|
||||
|
||||
/* Mode Register model */
|
||||
|
||||
/* Standard Asynchronous Mode : 8 bits , 1 stop , no parity */
|
||||
#define US_ASYNC_MODE ( US_CHMODE_NORMAL + \
|
||||
US_NBSTOP_1 + \
|
||||
US_PAR_NO + \
|
||||
US_CHRL_8 + \
|
||||
US_CLKS_MCK )
|
||||
|
||||
/* Standard External Asynchronous Mode : 8 bits , 1 stop , no parity */
|
||||
#define US_ASYNC_SCK_MODE ( US_CHMODE_NORMAL + \
|
||||
US_NBSTOP_1 + \
|
||||
US_PAR_NO + \
|
||||
US_CHRL_8 + \
|
||||
US_CLKS_SCK )
|
||||
|
||||
/* Standard Synchronous Mode : 8 bits , 1 stop , no parity */
|
||||
#define US_SYNC_MODE ( US_SYNC + \
|
||||
US_CHMODE_NORMAL + \
|
||||
US_NBSTOP_1 + \
|
||||
US_PAR_NO + \
|
||||
US_CHRL_8 + \
|
||||
US_CLKS_MCK )
|
||||
|
||||
/* SCK used Label */
|
||||
#define SCK_USED (US_CLKO | US_CLKS_SCK)
|
||||
|
||||
/*---------------------------------------------------------------*/
|
||||
/* US_IER, US_IDR, US_IMR, US_IMR: Status and Interrupt Register */
|
||||
/*---------------------------------------------------------------*/
|
||||
|
||||
#define US_RXRDY 0x1 /* Receiver Ready */
|
||||
#define US_TXRDY 0x2 /* Transmitter Ready */
|
||||
#define US_RXBRK 0x4 /* Receiver Break */
|
||||
#define US_ENDRX 0x8 /* End of Receiver PDC Transfer */
|
||||
#define US_ENDTX 0x10 /* End of Transmitter PDC Transfer */
|
||||
#define US_OVRE 0x20 /* Overrun Error */
|
||||
#define US_FRAME 0x40 /* Framing Error */
|
||||
#define US_PARE 0x80 /* Parity Error */
|
||||
#define US_TIMEOUT 0x100 /* Receiver Timeout */
|
||||
#define US_TXEMPTY 0x200 /* Transmitter Empty */
|
||||
|
||||
#define US_MASK_IRQ_TX (US_TXRDY | US_ENDTX | US_TXEMPTY)
|
||||
#define US_MASK_IRQ_RX (US_RXRDY | US_ENDRX | US_TIMEOUT)
|
||||
#define US_MASK_IRQ_ERROR (US_PARE | US_FRAME | US_OVRE | US_RXBRK)
|
||||
|
||||
|
||||
|
||||
#endif /* usart_h */
|
88
20080307/Demo/ARM7_AT91SAM7S64_IAR/FreeRTOSConfig.h
Normal file
88
20080307/Demo/ARM7_AT91SAM7S64_IAR/FreeRTOSConfig.h
Normal file
|
@ -0,0 +1,88 @@
|
|||
/*
|
||||
FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.
|
||||
|
||||
This file is part of the FreeRTOS.org distribution.
|
||||
|
||||
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FreeRTOS.org; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
A special exception to the GPL can be applied should you wish to distribute
|
||||
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||
the source code for any proprietary components. See the licensing section
|
||||
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||
can be applied.
|
||||
|
||||
***************************************************************************
|
||||
|
||||
Please ensure to read the configuration and relevant port sections of the
|
||||
online documentation.
|
||||
|
||||
+++ http://www.FreeRTOS.org +++
|
||||
Documentation, latest information, license and contact details.
|
||||
|
||||
+++ http://www.SafeRTOS.com +++
|
||||
A version that is certified for use in safety critical systems.
|
||||
|
||||
+++ http://www.OpenRTOS.com +++
|
||||
Commercial support, development, porting, licensing and training services.
|
||||
|
||||
***************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef FREERTOS_CONFIG_H
|
||||
#define FREERTOS_CONFIG_H
|
||||
|
||||
#include <intrinsics.h>
|
||||
#include "Board.h"
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* Application specific definitions.
|
||||
*
|
||||
* These definitions should be adjusted for your particular hardware and
|
||||
* application requirements.
|
||||
*
|
||||
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
|
||||
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
|
||||
*----------------------------------------------------------*/
|
||||
|
||||
#define configUSE_PREEMPTION 1
|
||||
#define configUSE_IDLE_HOOK 0
|
||||
#define configUSE_TICK_HOOK 0
|
||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 47923200 )
|
||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 100 )
|
||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) 14200 )
|
||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||
#define configUSE_TRACE_FACILITY 0
|
||||
#define configUSE_16_BIT_TICKS 0
|
||||
#define configIDLE_SHOULD_YIELD 1
|
||||
|
||||
/* Co-routine definitions. */
|
||||
#define configUSE_CO_ROUTINES 0
|
||||
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
|
||||
|
||||
/* Set the following definitions to 1 to include the API function, or zero
|
||||
to exclude the API function. */
|
||||
|
||||
#define INCLUDE_vTaskPrioritySet 1
|
||||
#define INCLUDE_uxTaskPriorityGet 1
|
||||
#define INCLUDE_vTaskDelete 0
|
||||
#define INCLUDE_vTaskCleanUpResources 0
|
||||
#define INCLUDE_vTaskSuspend 1
|
||||
#define INCLUDE_vTaskDelayUntil 1
|
||||
#define INCLUDE_vTaskDelay 1
|
||||
|
||||
|
||||
#endif /* FREERTOS_CONFIG_H */
|
91
20080307/Demo/ARM7_AT91SAM7S64_IAR/ParTest/ParTest.c
Normal file
91
20080307/Demo/ARM7_AT91SAM7S64_IAR/ParTest/ParTest.c
Normal file
|
@ -0,0 +1,91 @@
|
|||
/*
|
||||
FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.
|
||||
|
||||
This file is part of the FreeRTOS.org distribution.
|
||||
|
||||
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FreeRTOS.org; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
A special exception to the GPL can be applied should you wish to distribute
|
||||
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||
the source code for any proprietary components. See the licensing section
|
||||
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||
can be applied.
|
||||
|
||||
***************************************************************************
|
||||
|
||||
Please ensure to read the configuration and relevant port sections of the
|
||||
online documentation.
|
||||
|
||||
+++ http://www.FreeRTOS.org +++
|
||||
Documentation, latest information, license and contact details.
|
||||
|
||||
+++ http://www.SafeRTOS.com +++
|
||||
A version that is certified for use in safety critical systems.
|
||||
|
||||
+++ http://www.OpenRTOS.com +++
|
||||
Commercial support, development, porting, licensing and training services.
|
||||
|
||||
***************************************************************************
|
||||
*/
|
||||
|
||||
#include "FreeRTOS.h"
|
||||
#include "partest.h"
|
||||
#include "board.h"
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* Simple parallel port IO routines for the LED's.
|
||||
*-----------------------------------------------------------*/
|
||||
|
||||
const unsigned portLONG led_mask[ NB_LED ]= { LED1, LED2, LED3, LED4 };
|
||||
|
||||
void vParTestInitialise( void )
|
||||
{
|
||||
/* Start with all LED's off. */
|
||||
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED_MASK );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||
{
|
||||
if( uxLED < ( portBASE_TYPE ) NB_LED )
|
||||
{
|
||||
if( xValue )
|
||||
{
|
||||
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, led_mask[ uxLED ] );
|
||||
}
|
||||
else
|
||||
{
|
||||
AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, led_mask[ uxLED ]);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||
{
|
||||
if( uxLED < ( portBASE_TYPE ) NB_LED )
|
||||
{
|
||||
if( AT91F_PIO_GetInput( AT91C_BASE_PIOA ) & led_mask[ uxLED ] )
|
||||
{
|
||||
AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, led_mask[ uxLED ]);
|
||||
}
|
||||
else
|
||||
{
|
||||
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, led_mask[ uxLED ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
89
20080307/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Board.h
Normal file
89
20080307/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Board.h
Normal file
|
@ -0,0 +1,89 @@
|
|||
/*----------------------------------------------------------------------------
|
||||
* ATMEL Microcontroller Software Support - ROUSSET -
|
||||
*----------------------------------------------------------------------------
|
||||
* The software is delivered "AS IS" without warranty or condition of any
|
||||
* kind, either express, implied or statutory. This includes without
|
||||
* limitation any warranty or condition with respect to merchantability or
|
||||
* fitness for any particular purpose, or against the infringements of
|
||||
* intellectual property rights of others.
|
||||
*----------------------------------------------------------------------------
|
||||
* File Name : Board.h
|
||||
* Object : AT91SAM7S Evaluation Board Features Definition File.
|
||||
*
|
||||
* Creation : JPP 16/Jun/2004
|
||||
*----------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef Board_h
|
||||
#define Board_h
|
||||
|
||||
#include "AT91SAM7S64.h"
|
||||
#define __inline inline
|
||||
#include "lib_AT91SAM7S64.h"
|
||||
|
||||
#define true -1
|
||||
#define false 0
|
||||
|
||||
/*-------------------------------*/
|
||||
/* SAM7Board Memories Definition */
|
||||
/*-------------------------------*/
|
||||
// The AT91SAM7S64 embeds a 16-Kbyte SRAM bank, and 64 K-Byte Flash
|
||||
|
||||
#define INT_SARM 0x00200000
|
||||
#define INT_SARM_REMAP 0x00000000
|
||||
|
||||
#define INT_FLASH 0x00000000
|
||||
#define INT_FLASH_REMAP 0x01000000
|
||||
|
||||
#define FLASH_PAGE_NB 512
|
||||
#define FLASH_PAGE_SIZE 128
|
||||
|
||||
/*-----------------*/
|
||||
/* Leds Definition */
|
||||
/*-----------------*/
|
||||
/* PIO Flash PA PB PIN */
|
||||
#define LED1 (1<<0) /* PA0 / PGMEN0 & PWM0 TIOA0 48 */
|
||||
#define LED2 (1<<1) /* PA1 / PGMEN1 & PWM1 TIOB0 47 */
|
||||
#define LED3 (1<<2) /* PA2 & PWM2 SCK0 44 */
|
||||
#define LED4 (1<<3) /* PA3 & TWD NPCS3 43 */
|
||||
#define NB_LED 4
|
||||
|
||||
#define LED_MASK (LED1|LED2|LED3|LED4)
|
||||
|
||||
/*-------------------------*/
|
||||
/* Push Buttons Definition */
|
||||
/*-------------------------*/
|
||||
/* PIO Flash PA PB PIN */
|
||||
#define SW1_MASK (1<<19) /* PA19 / PGMD7 & RK FIQ 13 */
|
||||
#define SW2_MASK (1<<20) /* PA20 / PGMD8 & RF IRQ0 16 */
|
||||
#define SW3_MASK (1<<15) /* PA15 / PGM3 & TF TIOA1 20 */
|
||||
#define SW4_MASK (1<<14) /* PA14 / PGMD2 & SPCK PWM3 21 */
|
||||
#define SW_MASK (SW1_MASK|SW2_MASK|SW3_MASK|SW4_MASK)
|
||||
|
||||
|
||||
#define SW1 (1<<19) // PA19
|
||||
#define SW2 (1<<20) // PA20
|
||||
#define SW3 (1<<15) // PA15
|
||||
#define SW4 (1<<14) // PA14
|
||||
|
||||
/*------------------*/
|
||||
/* USART Definition */
|
||||
/*------------------*/
|
||||
/* SUB-D 9 points J3 DBGU*/
|
||||
#define DBGU_RXD AT91C_PA9_DRXD /* JP11 must be close */
|
||||
#define DBGU_TXD AT91C_PA10_DTXD /* JP12 must be close */
|
||||
#define AT91C_DBGU_BAUD 115200 // Baud rate
|
||||
|
||||
#define US_RXD_PIN AT91C_PA5_RXD0 /* JP9 must be close */
|
||||
#define US_TXD_PIN AT91C_PA6_TXD0 /* JP7 must be close */
|
||||
#define US_RTS_PIN AT91C_PA7_RTS0 /* JP8 must be close */
|
||||
#define US_CTS_PIN AT91C_PA8_CTS0 /* JP6 must be close */
|
||||
|
||||
/*--------------*/
|
||||
/* Master Clock */
|
||||
/*--------------*/
|
||||
|
||||
#define EXT_OC 18432000 // Exetrnal ocilator MAINCK
|
||||
#define MCK 47923200 // MCK (PLLRC div by 2)
|
||||
#define MCKKHz (MCK/1000) //
|
||||
|
||||
#endif /* Board_h */
|
302
20080307/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup.s
Normal file
302
20080307/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup.s
Normal file
|
@ -0,0 +1,302 @@
|
|||
;* ----------------------------------------------------------------------------
|
||||
;* ATMEL Microcontroller Software Support - ROUSSET -
|
||||
;* ----------------------------------------------------------------------------
|
||||
;* Copyright (c) 2006, Atmel Corporation
|
||||
;
|
||||
;* All rights reserved.
|
||||
;*
|
||||
;* Redistribution and use in source and binary forms, with or without
|
||||
;* modification, are permitted provided that the following conditions are met:
|
||||
;*
|
||||
;* - Redistributions of source code must retain the above copyright notice,
|
||||
;* this list of conditions and the disclaimer below.
|
||||
;*
|
||||
;* - Redistributions in binary form must reproduce the above copyright notice,
|
||||
;* this list of conditions and the disclaimer below in the documentation and/or
|
||||
;* other materials provided with the distribution.
|
||||
;*
|
||||
;* Atmel's name may not be used to endorse or promote products derived from
|
||||
;* this software without specific prior written permission.
|
||||
;*
|
||||
;* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
|
||||
;* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
|
||||
;* DISCLAIMED. IN NO EVENT SHALL ATMEL 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.
|
||||
;* ----------------------------------------------------------------------------
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Include your AT91 Library files
|
||||
;------------------------------------------------------------------------------
|
||||
#include "AT91SAM7X256_inc.h"
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
#define TOP_OF_MEMORY (AT91C_ISRAM + AT91C_ISRAM_SIZE)
|
||||
#define IRQ_STACK_SIZE 200
|
||||
; 3 words to be saved per interrupt priority level
|
||||
|
||||
; Mode, correspords to bits 0-5 in CPSR
|
||||
MODE_BITS DEFINE 0x1F ; Bit mask for mode bits in CPSR
|
||||
USR_MODE DEFINE 0x10 ; User mode
|
||||
FIQ_MODE DEFINE 0x11 ; Fast Interrupt Request mode
|
||||
IRQ_MODE DEFINE 0x12 ; Interrupt Request mode
|
||||
SVC_MODE DEFINE 0x13 ; Supervisor mode
|
||||
ABT_MODE DEFINE 0x17 ; Abort mode
|
||||
UND_MODE DEFINE 0x1B ; Undefined Instruction mode
|
||||
SYS_MODE DEFINE 0x1F ; System mode
|
||||
|
||||
I_BIT DEFINE 0x80
|
||||
F_BIT DEFINE 0x40
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; ?RESET
|
||||
; Reset Vector.
|
||||
; Normally, segment INTVEC is linked at address 0.
|
||||
; For debugging purposes, INTVEC may be placed at other addresses.
|
||||
; A debugger that honors the entry point will start the
|
||||
; program in a normal way even if INTVEC is not at address 0.
|
||||
;------------------------------------------------------------------------------
|
||||
SECTION .intvec:CODE:NOROOT(2)
|
||||
PUBLIC __vector
|
||||
PUBLIC __iar_program_start
|
||||
EXTERN vPortYieldProcessor
|
||||
|
||||
ARM
|
||||
__vector:
|
||||
ldr pc,[pc,#+24] ;; Reset
|
||||
__und_handler:
|
||||
ldr pc,[pc,#+24] ;; Undefined instructions
|
||||
__swi_handler:
|
||||
ldr pc,[pc,#+24] ;; Software interrupt (SWI/SVC)
|
||||
__prefetch_handler:
|
||||
ldr pc,[pc,#+24] ;; Prefetch abort
|
||||
__data_handler:
|
||||
ldr pc,[pc,#+24] ;; Data abort
|
||||
DC32 0xFFFFFFFF ;; RESERVED
|
||||
__irq_handler:
|
||||
LDR PC, [PC, #-0xF20]
|
||||
__fiq_handler:
|
||||
ldr pc,[pc,#+24] ;; FIQ
|
||||
|
||||
DC32 __iar_program_start
|
||||
DC32 __und_handler
|
||||
DC32 vPortYieldProcessor
|
||||
DC32 __prefetch_handler
|
||||
DC32 __data_handler
|
||||
B .
|
||||
DC32 IRQ_Handler_Entry
|
||||
DC32 FIQ_Handler_Entry
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
;- Manage exception: The exception must be ensure in ARM mode
|
||||
;------------------------------------------------------------------------------
|
||||
SECTION text:CODE:NOROOT(2)
|
||||
ARM
|
||||
;------------------------------------------------------------------------------
|
||||
;- Function : FIQ_Handler_Entry
|
||||
;- Treatments : FIQ Controller Interrupt Handler.
|
||||
;- R8 is initialize in Cstartup
|
||||
;- Called Functions : None only by FIQ
|
||||
;------------------------------------------------------------------------------
|
||||
FIQ_Handler_Entry:
|
||||
|
||||
;- Switch in SVC/User Mode to allow User Stack access for C code
|
||||
; because the FIQ is not yet acknowledged
|
||||
|
||||
;- Save and r0 in FIQ_Register
|
||||
mov r9,r0
|
||||
ldr r0 , [r8, #AIC_FVR]
|
||||
msr CPSR_c,#I_BIT | F_BIT | SVC_MODE
|
||||
;- Save scratch/used registers and LR in User Stack
|
||||
stmfd sp!, { r1-r3, r12, lr}
|
||||
|
||||
;- Branch to the routine pointed by the AIC_FVR
|
||||
mov r14, pc
|
||||
bx r0
|
||||
|
||||
;- Restore scratch/used registers and LR from User Stack
|
||||
ldmia sp!, { r1-r3, r12, lr}
|
||||
|
||||
;- Leave Interrupts disabled and switch back in FIQ mode
|
||||
msr CPSR_c, #I_BIT | F_BIT | FIQ_MODE
|
||||
|
||||
;- Restore the R0 ARM_MODE_SVC register
|
||||
mov r0,r9
|
||||
|
||||
;- Restore the Program Counter using the LR_fiq directly in the PC
|
||||
subs pc,lr,#4
|
||||
;------------------------------------------------------------------------------
|
||||
;- Function : IRQ_Handler_Entry
|
||||
;- Treatments : IRQ Controller Interrupt Handler.
|
||||
;- Called Functions : AIC_IVR[interrupt]
|
||||
;------------------------------------------------------------------------------
|
||||
IRQ_Handler_Entry:
|
||||
;-------------------------
|
||||
;- Manage Exception Entry
|
||||
;-------------------------
|
||||
;- Adjust and save LR_irq in IRQ stack
|
||||
sub lr, lr, #4
|
||||
stmfd sp!, {lr}
|
||||
|
||||
;- Save r0 and SPSR (need to be saved for nested interrupt)
|
||||
mrs r14, SPSR
|
||||
stmfd sp!, {r0,r14}
|
||||
|
||||
;- Write in the IVR to support Protect Mode
|
||||
;- No effect in Normal Mode
|
||||
;- De-assert the NIRQ and clear the source in Protect Mode
|
||||
ldr r14, =AT91C_BASE_AIC
|
||||
ldr r0 , [r14, #AIC_IVR]
|
||||
str r14, [r14, #AIC_IVR]
|
||||
|
||||
;- Enable Interrupt and Switch in Supervisor Mode
|
||||
msr CPSR_c, #SVC_MODE
|
||||
|
||||
;- Save scratch/used registers and LR in User Stack
|
||||
stmfd sp!, { r1-r3, r12, r14}
|
||||
|
||||
;----------------------------------------------
|
||||
;- Branch to the routine pointed by the AIC_IVR
|
||||
;----------------------------------------------
|
||||
mov r14, pc
|
||||
bx r0
|
||||
|
||||
;----------------------------------------------
|
||||
;- Manage Exception Exit
|
||||
;----------------------------------------------
|
||||
;- Restore scratch/used registers and LR from User Stack
|
||||
ldmia sp!, { r1-r3, r12, r14}
|
||||
|
||||
;- Disable Interrupt and switch back in IRQ mode
|
||||
msr CPSR_c, #I_BIT | IRQ_MODE
|
||||
|
||||
;- Mark the End of Interrupt on the AIC
|
||||
ldr r14, =AT91C_BASE_AIC
|
||||
str r14, [r14, #AIC_EOICR]
|
||||
|
||||
;- Restore SPSR_irq and r0 from IRQ stack
|
||||
ldmia sp!, {r0,r14}
|
||||
msr SPSR_cxsf, r14
|
||||
|
||||
;- Restore adjusted LR_irq from IRQ stack directly in the PC
|
||||
ldmia sp!, {pc}^
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
;- Exception Vectors
|
||||
;------------------------------------------------------------------------------
|
||||
PUBLIC AT91F_Default_FIQ_handler
|
||||
PUBLIC AT91F_Default_IRQ_handler
|
||||
PUBLIC AT91F_Spurious_handler
|
||||
|
||||
ARM ; Always ARM mode after exeption
|
||||
|
||||
AT91F_Default_FIQ_handler
|
||||
b AT91F_Default_FIQ_handler
|
||||
|
||||
AT91F_Default_IRQ_handler
|
||||
b AT91F_Default_IRQ_handler
|
||||
|
||||
AT91F_Spurious_handler
|
||||
b AT91F_Spurious_handler
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; ?INIT
|
||||
; Program entry.
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
SECTION FIQ_STACK:DATA:NOROOT(3)
|
||||
SECTION IRQ_STACK:DATA:NOROOT(3)
|
||||
SECTION SVC_STACK:DATA:NOROOT(3)
|
||||
SECTION ABT_STACK:DATA:NOROOT(3)
|
||||
SECTION UND_STACK:DATA:NOROOT(3)
|
||||
SECTION CSTACK:DATA:NOROOT(3)
|
||||
SECTION text:CODE:NOROOT(2)
|
||||
REQUIRE __vector
|
||||
EXTERN ?main
|
||||
PUBLIC __iar_program_start
|
||||
EXTERN AT91F_LowLevelInit
|
||||
|
||||
|
||||
__iar_program_start:
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
;- Low level Init is performed in a C function: AT91F_LowLevelInit
|
||||
;- Init Stack Pointer to a valid memory area before calling AT91F_LowLevelInit
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
;- Retrieve end of RAM address
|
||||
|
||||
ldr r13,=TOP_OF_MEMORY ;- Temporary stack in internal RAM for Low Level Init execution
|
||||
ldr r0,=AT91F_LowLevelInit
|
||||
mov lr, pc
|
||||
bx r0 ;- Branch on C function (with interworking)
|
||||
|
||||
; Initialize the stack pointers.
|
||||
; The pattern below can be used for any of the exception stacks:
|
||||
; FIQ, IRQ, SVC, ABT, UND, SYS.
|
||||
; The USR mode uses the same stack as SYS.
|
||||
; The stack segments must be defined in the linker command file,
|
||||
; and be declared above.
|
||||
|
||||
mrs r0,cpsr ; Original PSR value
|
||||
bic r0,r0,#MODE_BITS ; Clear the mode bits
|
||||
orr r0,r0,#SVC_MODE ; Set SVC mode bits
|
||||
msr cpsr_c,r0 ; Change the mode
|
||||
ldr sp,=SFE(SVC_STACK) ; End of SVC_STACK
|
||||
|
||||
bic r0,r0,#MODE_BITS ; Clear the mode bits
|
||||
orr r0,r0,#UND_MODE ; Set UND mode bits
|
||||
msr cpsr_c,r0 ; Change the mode
|
||||
ldr sp,=SFE(UND_STACK) ; End of UND_STACK
|
||||
|
||||
bic r0,r0,#MODE_BITS ; Clear the mode bits
|
||||
orr r0,r0,#ABT_MODE ; Set ABT mode bits
|
||||
msr cpsr_c,r0 ; Change the mode
|
||||
ldr sp,=SFE(ABT_STACK) ; End of ABT_STACK
|
||||
|
||||
bic r0,r0,#MODE_BITS ; Clear the mode bits
|
||||
orr r0,r0,#FIQ_MODE ; Set FIQ mode bits
|
||||
msr cpsr_c,r0 ; Change the mode
|
||||
ldr sp,=SFE(FIQ_STACK) ; End of FIQ_STACK
|
||||
;- Init the FIQ register
|
||||
ldr r8, =AT91C_BASE_AIC
|
||||
|
||||
bic r0,r0,#MODE_BITS ; Clear the mode bits
|
||||
orr r0,r0,#IRQ_MODE ; Set IRQ mode bits
|
||||
msr cpsr_c,r0 ; Change the mode
|
||||
ldr sp,=SFE(IRQ_STACK) ; End of IRQ_STACK
|
||||
|
||||
bic r0,r0,#MODE_BITS ; Clear the mode bits
|
||||
orr r0,r0,#SYS_MODE ; Set System mode bits
|
||||
msr cpsr_c,r0 ; Change the mode
|
||||
ldr sp,=SFE(CSTACK) ; End of CSTACK
|
||||
|
||||
|
||||
#ifdef __ARMVFP__
|
||||
; Enable the VFP coprocessor.
|
||||
mov r0, #0x40000000 ; Set EN bit in VFP
|
||||
fmxr fpexc, r0 ; FPEXC, clear others.
|
||||
|
||||
; Disable underflow exceptions by setting flush to zero mode.
|
||||
; For full IEEE 754 underflow compliance this code should be removed
|
||||
; and the appropriate exception handler installed.
|
||||
mov r0, #0x01000000 ; Set FZ bit in VFP
|
||||
fmxr fpscr, r0 ; FPSCR, clear others.
|
||||
#endif
|
||||
|
||||
; Add more initialization here
|
||||
msr CPSR_c,#I_BIT | F_BIT | SVC_MODE
|
||||
|
||||
|
||||
; Continue to ?main for more IAR specific system startup
|
||||
|
||||
ldr r0,=?main
|
||||
bx r0
|
||||
|
||||
END ;- Terminates the assembly of the last module in a file
|
84
20080307/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup_SAM7.c
Normal file
84
20080307/Demo/ARM7_AT91SAM7S64_IAR/SrcIAR/Cstartup_SAM7.c
Normal file
|
@ -0,0 +1,84 @@
|
|||
//*----------------------------------------------------------------------------
|
||||
//* ATMEL Microcontroller Software Support - ROUSSET -
|
||||
//*----------------------------------------------------------------------------
|
||||
//* The software is delivered "AS IS" without warranty or condition of any
|
||||
//* kind, either express, implied or statutory. This includes without
|
||||
//* limitation any warranty or condition with respect to merchantability or
|
||||
//* fitness for any particular purpose, or against the infringements of
|
||||
//* intellectual property rights of others.
|
||||
//*----------------------------------------------------------------------------
|
||||
//* File Name : Cstartup_SAM7.c
|
||||
//* Object : Low level initializations written in C for IAR
|
||||
//* tools
|
||||
//* Creation : 12/Jun/04
|
||||
//*
|
||||
//*----------------------------------------------------------------------------
|
||||
|
||||
|
||||
// Include the board file description
|
||||
#include "Board.h"
|
||||
|
||||
// The following functions must be write in ARM mode this function called directly
|
||||
// by exception vector
|
||||
extern void AT91F_Spurious_handler(void);
|
||||
extern void AT91F_Default_IRQ_handler(void);
|
||||
extern void AT91F_Default_FIQ_handler(void);
|
||||
|
||||
//*----------------------------------------------------------------------------
|
||||
//* \fn AT91F_LowLevelInit
|
||||
//* \brief This function performs very low level HW initialization
|
||||
//* this function can be use a Stack, depending the compilation
|
||||
//* optimization mode
|
||||
//*----------------------------------------------------------------------------
|
||||
void AT91F_LowLevelInit( void );
|
||||
void AT91F_LowLevelInit( void) @ "ICODE"
|
||||
{
|
||||
int i;
|
||||
AT91PS_PMC pPMC = AT91C_BASE_PMC;
|
||||
//* Set Flash Waite sate
|
||||
// Single Cycle Access at Up to 30 MHz, or 40
|
||||
// if MCK = 47923200 I have 50 Cycle for 1 useconde ( flied MC_FMR->FMCN
|
||||
AT91C_BASE_MC->MC_FMR = ((AT91C_MC_FMCN)&(50 <<16)) | AT91C_MC_FWS_1FWS ;
|
||||
|
||||
//* Watchdog Disable
|
||||
AT91C_BASE_WDTC->WDTC_WDMR= AT91C_SYSC_WDDIS;
|
||||
|
||||
//* Set MCK at 47 923 200
|
||||
// 1 Enabling the Main Oscillator:
|
||||
// SCK = 1/32768 = 30.51 uSeconde
|
||||
// Start up time = 8 * 6 / SCK = 56 * 30.51 = 1,46484375 ms
|
||||
pPMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x06 <<8) | AT91C_CKGR_MOSCEN ));
|
||||
// Wait the startup time
|
||||
while(!(pPMC->PMC_SR & AT91C_PMC_MOSCS));
|
||||
// 2 Checking the Main Oscillator Frequency (Optional)
|
||||
// 3 Setting PLL and divider:
|
||||
// - div by 5 Fin = 3,6864 =(18,432 / 5)
|
||||
// - Mul 25+1: Fout = 95,8464 =(3,6864 *26)
|
||||
// for 96 MHz the erroe is 0.16%
|
||||
// Field out NOT USED = 0
|
||||
// PLLCOUNT pll startup time esrtimate at : 0.844 ms
|
||||
// PLLCOUNT 28 = 0.000844 /(1/32768)
|
||||
pPMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x05) |
|
||||
(AT91C_CKGR_PLLCOUNT & (28<<8)) |
|
||||
(AT91C_CKGR_MUL & (25<<16)));
|
||||
|
||||
// Wait the startup time
|
||||
while(!(pPMC->PMC_SR & AT91C_PMC_LOCK));
|
||||
// 4. Selection of Master Clock and Processor Clock
|
||||
// select the PLL clock divided by 2
|
||||
pPMC->PMC_MCKR = AT91C_PMC_CSS_PLL_CLK | AT91C_PMC_PRES_CLK_2 ;
|
||||
|
||||
// Enable User Reset and set its minimal assertion to 960 us
|
||||
AT91C_BASE_RSTC->RSTC_RMR = AT91C_SYSC_URSTEN | (0x4<<8) | (unsigned int) (0xA5<<24);
|
||||
|
||||
|
||||
// Set up the default interrupts handler vectors
|
||||
AT91C_BASE_AIC->AIC_SVR[0] = (int) AT91F_Default_FIQ_handler ;
|
||||
for (i=1;i < 31; i++)
|
||||
{
|
||||
AT91C_BASE_AIC->AIC_SVR[i] = (int) AT91F_Default_IRQ_handler ;
|
||||
}
|
||||
AT91C_BASE_AIC->AIC_SPU = (int) AT91F_Spurious_handler ;
|
||||
|
||||
}
|
||||
|
1283
20080307/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.c
Normal file
1283
20080307/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.c
Normal file
File diff suppressed because it is too large
Load diff
8
20080307/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.h
Normal file
8
20080307/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.h
Normal file
|
@ -0,0 +1,8 @@
|
|||
#ifndef USB_DEMO_H
|
||||
#define USB_DEMO_H
|
||||
|
||||
void vUSBDemoTask( void *pvParameters );
|
||||
|
||||
|
||||
#endif
|
||||
|
24
20080307/Demo/ARM7_AT91SAM7S64_IAR/USB/USB_ISR.s79
Normal file
24
20080307/Demo/ARM7_AT91SAM7S64_IAR/USB/USB_ISR.s79
Normal file
|
@ -0,0 +1,24 @@
|
|||
RSEG ICODE:CODE
|
||||
CODE32
|
||||
|
||||
EXTERN vUSB_ISR
|
||||
PUBLIC vUSBISREntry
|
||||
|
||||
; Wrapper for the USB interrupt service routine. This can cause a
|
||||
; context switch so requires an assembly wrapper.
|
||||
|
||||
; Defines the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.
|
||||
#include "ISR_Support.h"
|
||||
|
||||
vUSBISREntry:
|
||||
|
||||
portSAVE_CONTEXT ; Save the context of the current task.
|
||||
|
||||
bl vUSB_ISR ; Call the ISR routine.
|
||||
|
||||
portRESTORE_CONTEXT ; Restore the context of the current task -
|
||||
; which may be different to the task that
|
||||
; was interrupted.
|
||||
|
||||
END
|
||||
|
262
20080307/Demo/ARM7_AT91SAM7S64_IAR/main.c
Normal file
262
20080307/Demo/ARM7_AT91SAM7S64_IAR/main.c
Normal file
|
@ -0,0 +1,262 @@
|
|||
/*
|
||||
FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.
|
||||
|
||||
This file is part of the FreeRTOS.org distribution.
|
||||
|
||||
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FreeRTOS.org; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
A special exception to the GPL can be applied should you wish to distribute
|
||||
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||
the source code for any proprietary components. See the licensing section
|
||||
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||
can be applied.
|
||||
|
||||
***************************************************************************
|
||||
|
||||
Please ensure to read the configuration and relevant port sections of the
|
||||
online documentation.
|
||||
|
||||
+++ http://www.FreeRTOS.org +++
|
||||
Documentation, latest information, license and contact details.
|
||||
|
||||
+++ http://www.SafeRTOS.com +++
|
||||
A version that is certified for use in safety critical systems.
|
||||
|
||||
+++ http://www.OpenRTOS.com +++
|
||||
Commercial support, development, porting, licensing and training services.
|
||||
|
||||
***************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
NOTE : Tasks run in system mode and the scheduler runs in Supervisor mode.
|
||||
The processor MUST be in supervisor mode when vTaskStartScheduler is
|
||||
called. The demo applications included in the FreeRTOS.org download switch
|
||||
to supervisor mode prior to main being called. If you are not using one of
|
||||
these demo application projects then ensure Supervisor mode is used.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Creates all the demo application tasks, then starts the scheduler. The WEB
|
||||
* documentation provides more details of the demo application tasks. The SAM7
|
||||
* includes a sample USB that emulates a Joystick input to a USB host.
|
||||
*
|
||||
* Main.c also creates a task called "Check". This only executes every three
|
||||
* seconds but has the highest priority so is guaranteed to get processor time.
|
||||
* Its main function is to check that all the other tasks are still operational.
|
||||
* Each task (other than the "flash" tasks) maintains a unique count that is
|
||||
* incremented each time the task successfully completes its function. Should
|
||||
* any error occur within such a task the count is permanently halted. The
|
||||
* check task inspects the count of each task to ensure it has changed since
|
||||
* the last time the check task executed. If all the count variables have
|
||||
* changed all the tasks are still executing error free, and the check task
|
||||
* toggles the onboard LED. Should any task contain an error at any time
|
||||
* the LED toggle rate will change from 3 seconds to 500ms.
|
||||
*
|
||||
*/
|
||||
|
||||
/* Standard includes. */
|
||||
#include <stdlib.h>
|
||||
|
||||
/* Scheduler includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
|
||||
/* Demo application includes. */
|
||||
#include "flash.h"
|
||||
#include "integer.h"
|
||||
#include "PollQ.h"
|
||||
#include "BlockQ.h"
|
||||
#include "semtest.h"
|
||||
#include "dynamic.h"
|
||||
#include "partest.h"
|
||||
#include "comtest2.h"
|
||||
#include "USB/USBSample.h"
|
||||
|
||||
/* Priorities for the demo application tasks. */
|
||||
#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
|
||||
#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 )
|
||||
#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||
#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||
#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||
#define mainUSB_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||
|
||||
/* Constants required by the 'Check' task. */
|
||||
#define mainNO_ERROR_FLASH_PERIOD ( ( portTickType ) 3000 / portTICK_RATE_MS )
|
||||
#define mainERROR_FLASH_PERIOD ( ( portTickType ) 500 / portTICK_RATE_MS )
|
||||
#define mainCHECK_TASK_LED ( 3 )
|
||||
|
||||
/* Constants for the ComTest tasks. */
|
||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 115200 )
|
||||
#define mainCOM_TEST_LED ( 4 ) /* Off the board. */
|
||||
|
||||
/*
|
||||
* The task that executes at the highest priority and calls
|
||||
* prvCheckOtherTasksAreStillRunning(). See the description at the top
|
||||
* of the file.
|
||||
*/
|
||||
static void vErrorChecks( void *pvParameters );
|
||||
|
||||
/*
|
||||
* Configure the processor for use with the Atmel demo board. Setup is minimal
|
||||
* as the low level init function (called from the startup asm file) takes care
|
||||
* of most things.
|
||||
*/
|
||||
static void prvSetupHardware( void );
|
||||
|
||||
/*
|
||||
* Checks that all the demo application tasks are still executing without error
|
||||
* - as described at the top of the file.
|
||||
*/
|
||||
static portLONG prvCheckOtherTasksAreStillRunning( void );
|
||||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Starts all the other tasks, then starts the scheduler.
|
||||
*/
|
||||
void main( void )
|
||||
{
|
||||
/* Setup any hardware that has not already been configured by the low
|
||||
level init routines. */
|
||||
prvSetupHardware();
|
||||
|
||||
/* Initialise the LED outputs for use by the demo application tasks. */
|
||||
vParTestInitialise();
|
||||
|
||||
/* Start all the standard demo application tasks. */
|
||||
vStartIntegerMathTasks( tskIDLE_PRIORITY );
|
||||
vStartLEDFlashTasks( mainLED_TASK_PRIORITY );
|
||||
vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );
|
||||
vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );
|
||||
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
|
||||
vStartDynamicPriorityTasks();
|
||||
vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainCOM_TEST_BAUD_RATE, mainCOM_TEST_LED );
|
||||
|
||||
/* Also start the USB demo which is just for the SAM7. */
|
||||
xTaskCreate( vUSBDemoTask, "USB", configMINIMAL_STACK_SIZE, NULL, mainUSB_PRIORITY, NULL );
|
||||
|
||||
/* Start the check task - which is defined in this file. */
|
||||
xTaskCreate( vErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
||||
|
||||
/* Start the scheduler.
|
||||
|
||||
NOTE : Tasks run in system mode and the scheduler runs in Supervisor mode.
|
||||
The processor MUST be in supervisor mode when vTaskStartScheduler is
|
||||
called. The demo applications included in the FreeRTOS.org download switch
|
||||
to supervisor mode prior to main being called. If you are not using one of
|
||||
these demo application projects then ensure Supervisor mode is used here. */
|
||||
|
||||
vTaskStartScheduler();
|
||||
|
||||
/* We should never get here as control is now taken by the scheduler. */
|
||||
return;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvSetupHardware( void )
|
||||
{
|
||||
/* When using the JTAG debugger the hardware is not always initialised to
|
||||
the correct default state. This line just ensures that this does not
|
||||
cause all interrupts to be masked at the start. */
|
||||
AT91C_BASE_AIC->AIC_EOICR = 0;
|
||||
|
||||
/* Most setup is performed by the low level init function called from the
|
||||
startup asm file. */
|
||||
|
||||
/* Configure the PIO Lines corresponding to LED1 to LED4 to be outputs as
|
||||
well as the UART Tx line. */
|
||||
AT91F_PIO_CfgOutput( AT91C_BASE_PIOA, LED_MASK );
|
||||
|
||||
/* Enable the peripheral clock. */
|
||||
AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void vErrorChecks( void *pvParameters )
|
||||
{
|
||||
portTickType xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;
|
||||
|
||||
/* The parameters are not used in this task. */
|
||||
( void ) pvParameters;
|
||||
|
||||
/* Cycle for ever, delaying then checking all the other tasks are still
|
||||
operating without error. If an error is detected then the delay period
|
||||
is decreased from mainNO_ERROR_FLASH_PERIOD to mainERROR_FLASH_PERIOD so
|
||||
the on board LED flash rate will increase. */
|
||||
|
||||
for( ;; )
|
||||
{
|
||||
/* Delay until it is time to execute again. */
|
||||
vTaskDelay( xDelayPeriod );
|
||||
|
||||
/* Check all the standard demo application tasks are executing without
|
||||
error. */
|
||||
if( prvCheckOtherTasksAreStillRunning() != pdPASS )
|
||||
{
|
||||
/* An error has been detected in one of the tasks - flash faster. */
|
||||
xDelayPeriod = mainERROR_FLASH_PERIOD;
|
||||
}
|
||||
|
||||
vParTestToggleLED( mainCHECK_TASK_LED );
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static portLONG prvCheckOtherTasksAreStillRunning( void )
|
||||
{
|
||||
portLONG lReturn = ( portLONG ) pdPASS;
|
||||
|
||||
/* Check all the demo tasks (other than the flash tasks) to ensure
|
||||
that they are all still running, and that none of them have detected
|
||||
an error. */
|
||||
|
||||
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xArePollingQueuesStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xAreComTestTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
lReturn = ( portLONG ) pdFAIL;
|
||||
}
|
||||
|
||||
return lReturn;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
180
20080307/Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7.mac
Normal file
180
20080307/Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7.mac
Normal file
|
@ -0,0 +1,180 @@
|
|||
// ---------------------------------------------------------
|
||||
// ATMEL Microcontroller Software Support - ROUSSET -
|
||||
// ---------------------------------------------------------
|
||||
// The software is delivered "AS IS" without warranty or
|
||||
// condition of any kind, either express, implied or
|
||||
// statutory. This includes without limitation any warranty
|
||||
// or condition with respect to merchantability or fitness
|
||||
// for any particular purpose, or against the infringements of
|
||||
// intellectual property rights of others.
|
||||
// ---------------------------------------------------------
|
||||
// File: SAM7.mac
|
||||
//
|
||||
// User setup file for CSPY debugger to simulate interrupt
|
||||
// driven Fibonacchi data input.
|
||||
// 1.1 16/Jun/04 JPP : Creation
|
||||
//
|
||||
// $Revision: 1.3 $
|
||||
//
|
||||
// ---------------------------------------------------------
|
||||
|
||||
__var i;
|
||||
__var pt;
|
||||
|
||||
execUserPreload()
|
||||
{
|
||||
//* Set the RAM memory at 0x0020 0000 for code AT 0 flash area
|
||||
CheckRemap();
|
||||
//* Get the Chip ID (AT91C_DBGU_C1R & AT91C_DBGU_C2R
|
||||
i=__readMemory32(0xFFFFF240,"Memory");
|
||||
__message " ---------------------------------------- Chip ID 0x",i:%X;
|
||||
i=__readMemory32(0xFFFFF244,"Memory");
|
||||
__message " ---------------------------------------- Extention 0x",i:%X;
|
||||
//* Get the chip status
|
||||
|
||||
//* Init AIC
|
||||
AIC();
|
||||
//* Watchdog Disable
|
||||
Watchdog();
|
||||
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Watchdog
|
||||
//-------------------------------
|
||||
// Normally, the Watchdog is enable at the reset for load it's preferable to
|
||||
// Disable.
|
||||
//-----------------------------------------------------------------------------
|
||||
Watchdog()
|
||||
{
|
||||
//* Watchdog Disable
|
||||
// AT91C_BASE_WDTC->WDTC_WDMR= AT91C_SYSC_WDDIS;
|
||||
__writeMemory32(0x00008000,0xFFFFFD44,"Memory");
|
||||
__message "------------------------------- Watchdog Disable ----------------------------------------";
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Check Remap
|
||||
//-------------
|
||||
//-----------------------------------------------------------------------------
|
||||
CheckRemap()
|
||||
{
|
||||
//* Read the value at 0x0
|
||||
i=__readMemory32(0x00000000,"Memory");
|
||||
i=i+1;
|
||||
__writeMemory32(i,0x00,"Memory");
|
||||
pt=__readMemory32(0x00000000,"Memory");
|
||||
|
||||
if (i == pt)
|
||||
{
|
||||
__message "------------------------------- The Remap is done ----------------------------------------";
|
||||
//* Toggel RESET The remap
|
||||
__writeMemory32(0x00000001,0xFFFFFF00,"Memory");
|
||||
|
||||
} else {
|
||||
__message "------------------------------- The Remap is NOT -----------------------------------------";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
execUserSetup()
|
||||
{
|
||||
ini();
|
||||
__message "-------------------------------Set PC ----------------------------------------";
|
||||
__writeMemory32(0x00000000,0xB4,"Register");
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Reset the Interrupt Controller
|
||||
//-------------------------------
|
||||
// Normally, the code is executed only if a reset has been actually performed.
|
||||
// So, the AIC initialization resumes at setting up the default vectors.
|
||||
//-----------------------------------------------------------------------------
|
||||
AIC()
|
||||
{
|
||||
// Mask All interrupt pAic->AIC_IDCR = 0xFFFFFFFF;
|
||||
__writeMemory32(0xFFFFFFFF,0xFFFFF124,"Memory");
|
||||
|
||||
for (i=0;i < 8; i++)
|
||||
{
|
||||
// AT91C_BASE_AIC->AIC_EOICR
|
||||
pt = __readMemory32(0xFFFFF130,"Memory");
|
||||
|
||||
}
|
||||
__message "------------------------------- AIC INIT ---------------------------------------------";
|
||||
}
|
||||
|
||||
ini()
|
||||
{
|
||||
__writeMemory32(0x0,0x00,"Register");
|
||||
__writeMemory32(0x0,0x04,"Register");
|
||||
__writeMemory32(0x0,0x08,"Register");
|
||||
__writeMemory32(0x0,0x0C,"Register");
|
||||
__writeMemory32(0x0,0x10,"Register");
|
||||
__writeMemory32(0x0,0x14,"Register");
|
||||
__writeMemory32(0x0,0x18,"Register");
|
||||
__writeMemory32(0x0,0x1C,"Register");
|
||||
__writeMemory32(0x0,0x20,"Register");
|
||||
__writeMemory32(0x0,0x24,"Register");
|
||||
__writeMemory32(0x0,0x28,"Register");
|
||||
__writeMemory32(0x0,0x2C,"Register");
|
||||
__writeMemory32(0x0,0x30,"Register");
|
||||
__writeMemory32(0x0,0x34,"Register");
|
||||
__writeMemory32(0x0,0x38,"Register");
|
||||
|
||||
// Set CPSR
|
||||
__writeMemory32(0x0D3,0x98,"Register");
|
||||
|
||||
|
||||
}
|
||||
|
||||
RG()
|
||||
{
|
||||
|
||||
i=__readMemory32(0x00,"Register"); __message "R00 0x",i:%X;
|
||||
i=__readMemory32(0x04,"Register"); __message "R01 0x",i:%X;
|
||||
i=__readMemory32(0x08,"Register"); __message "R02 0x",i:%X;
|
||||
i=__readMemory32(0x0C,"Register"); __message "R03 0x",i:%X;
|
||||
i=__readMemory32(0x10,"Register"); __message "R04 0x",i:%X;
|
||||
i=__readMemory32(0x14,"Register"); __message "R05 0x",i:%X;
|
||||
i=__readMemory32(0x18,"Register"); __message "R06 0x",i:%X;
|
||||
i=__readMemory32(0x1C,"Register"); __message "R07 0x",i:%X;
|
||||
i=__readMemory32(0x20,"Register"); __message "R08 0x",i:%X;
|
||||
i=__readMemory32(0x24,"Register"); __message "R09 0x",i:%X;
|
||||
i=__readMemory32(0x28,"Register"); __message "R10 0x",i:%X;
|
||||
i=__readMemory32(0x2C,"Register"); __message "R11 0x",i:%X;
|
||||
i=__readMemory32(0x30,"Register"); __message "R12 0x",i:%X;
|
||||
i=__readMemory32(0x34,"Register"); __message "R13 0x",i:%X;
|
||||
i=__readMemory32(0x38,"Register"); __message "R14 0x",i:%X;
|
||||
i=__readMemory32(0x3C,"Register"); __message "R13 SVC 0x",i:%X;
|
||||
i=__readMemory32(0x40,"Register"); __message "R14 SVC 0x",i:%X;
|
||||
i=__readMemory32(0x44,"Register"); __message "R13 ABT 0x",i:%X;
|
||||
i=__readMemory32(0x48,"Register"); __message "R14 ABT 0x",i:%X;
|
||||
i=__readMemory32(0x4C,"Register"); __message "R13 UND 0x",i:%X;
|
||||
i=__readMemory32(0x50,"Register"); __message "R14 UND 0x",i:%X;
|
||||
i=__readMemory32(0x54,"Register"); __message "R13 IRQ 0x",i:%X;
|
||||
i=__readMemory32(0x58,"Register"); __message "R14 IRQ 0x",i:%X;
|
||||
i=__readMemory32(0x5C,"Register"); __message "R08 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x60,"Register"); __message "R09 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x64,"Register"); __message "R10 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x68,"Register"); __message "R11 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x6C,"Register"); __message "R12 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x70,"Register"); __message "R13 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x74,"Register"); __message "R14 FIQ0x",i:%X;
|
||||
i=__readMemory32(0x98,"Register"); __message "CPSR ",i:%X;
|
||||
i=__readMemory32(0x94,"Register"); __message "SPSR ",i:%X;
|
||||
i=__readMemory32(0x9C,"Register"); __message "SPSR ABT ",i:%X;
|
||||
i=__readMemory32(0xA0,"Register"); __message "SPSR ABT ",i:%X;
|
||||
i=__readMemory32(0xA4,"Register"); __message "SPSR UND ",i:%X;
|
||||
i=__readMemory32(0xA8,"Register"); __message "SPSR IRQ ",i:%X;
|
||||
i=__readMemory32(0xAC,"Register"); __message "SPSR FIQ ",i:%X;
|
||||
|
||||
i=__readMemory32(0xB4,"Register"); __message "PC 0x",i:%X;
|
||||
|
||||
}
|
||||
|
211
20080307/Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7_RAM.mac
Normal file
211
20080307/Demo/ARM7_AT91SAM7S64_IAR/resource/SAM7_RAM.mac
Normal file
|
@ -0,0 +1,211 @@
|
|||
// ---------------------------------------------------------
|
||||
// ATMEL Microcontroller Software Support - ROUSSET -
|
||||
// ---------------------------------------------------------
|
||||
// The software is delivered "AS IS" without warranty or
|
||||
// condition of any kind, either express, implied or
|
||||
// statutory. This includes without limitation any warranty
|
||||
// or condition with respect to merchantability or fitness
|
||||
// for any particular purpose, or against the infringements of
|
||||
// intellectual property rights of others.
|
||||
// ---------------------------------------------------------
|
||||
// File: SAM7_RAM.mac
|
||||
//
|
||||
// User setup file for CSPY debugger to simulate interrupt
|
||||
// driven Fibonacchi data input.
|
||||
// 1.1 16/Jun/04 JPP : Creation
|
||||
// 1.2 27/Aug/04 JPP : PLL setting
|
||||
//
|
||||
// $Revision: 1.3 $
|
||||
//
|
||||
// ---------------------------------------------------------
|
||||
|
||||
__var i;
|
||||
__var pt;
|
||||
|
||||
execUserPreload()
|
||||
{
|
||||
//*
|
||||
PllSetting();
|
||||
//* Set the RAM memory at 0x0020 0000 for code AT 0 flash area
|
||||
CheckNoRemap();
|
||||
//* Get the Chip ID (AT91C_DBGU_C1R & AT91C_DBGU_C2R
|
||||
i=__readMemory32(0xFFFFF240,"Memory");
|
||||
__message " ---------------------------------------- Chip ID 0x",i:%X;
|
||||
i=__readMemory32(0xFFFFF244,"Memory");
|
||||
__message " ---------------------------------------- Extention 0x",i:%X;
|
||||
i=__readMemory32(0xFFFFFF6C,"Memory");
|
||||
__message " ---------------------------------------- Flash Version 0x",i:%X;
|
||||
//* Get the chip status
|
||||
|
||||
//* Init AIC
|
||||
AIC();
|
||||
//* Watchdog Disable
|
||||
Watchdog();
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
// PllSetting
|
||||
//-------------------------------
|
||||
// Set PLL
|
||||
//-----------------------------------------------------------------------------
|
||||
PllSetting()
|
||||
{
|
||||
// -1- Enabling the Main Oscillator:
|
||||
//*#define AT91C_PMC_MOR ((AT91_REG *) 0xFFFFFC20) // (PMC) Main Oscillator Register
|
||||
//*#define AT91C_PMC_PLLR ((AT91_REG *) 0xFFFFFC2C) // (PMC) PLL Register
|
||||
//*#define AT91C_PMC_MCKR ((AT91_REG *) 0xFFFFFC30) // (PMC) Master Clock Register
|
||||
|
||||
//*pPMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x06 <<8) | //0x0000 0600
|
||||
// AT91C_CKGR_MOSCEN )); //0x0000 0001
|
||||
__writeMemory32(0x00000601,0xFFFFFC20,"Memory");
|
||||
|
||||
// -2- Wait
|
||||
// -3- Setting PLL and divider:
|
||||
// - div by 5 Fin = 3,6864 =(18,432 / 5)
|
||||
// - Mul 25+1: Fout = 95,8464 =(3,6864 *26)
|
||||
// for 96 MHz the erroe is 0.16%
|
||||
// Field out NOT USED = 0
|
||||
// PLLCOUNT pll startup time esrtimate at : 0.844 ms
|
||||
// PLLCOUNT 28 = 0.000844 /(1/32768)
|
||||
// pPMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x05) | //0x0000 0005
|
||||
// (AT91C_CKGR_PLLCOUNT & (28<<8)) //0x0000 1C00
|
||||
// (AT91C_CKGR_MUL & (25<<16))); //0x0019 0000
|
||||
__writeMemory32(0x00191C05,0xFFFFFC2C,"Memory");
|
||||
// -2- Wait
|
||||
// -5- Selection of Master Clock and Processor Clock
|
||||
// select the PLL clock divided by 2
|
||||
// pPMC->PMC_MCKR = AT91C_PMC_CSS_PLL_CLK | //0x0000 0003
|
||||
// AT91C_PMC_PRES_CLK_2 ; //0x0000 0004
|
||||
__writeMemory32(0x00000007,0xFFFFFC30,"Memory");
|
||||
|
||||
__message "------------------------------- PLL Enable ----------------------------------------";
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Watchdog
|
||||
//-------------------------------
|
||||
// Normally, the Watchdog is enable at the reset for load it's preferable to
|
||||
// Disable.
|
||||
//-----------------------------------------------------------------------------
|
||||
Watchdog()
|
||||
{
|
||||
//* Watchdog Disable
|
||||
// AT91C_BASE_WDTC->WDTC_WDMR= AT91C_SYSC_WDDIS;
|
||||
__writeMemory32(0x00008000,0xFFFFFD44,"Memory");
|
||||
__message "------------------------------- Watchdog Disable ----------------------------------------";
|
||||
}
|
||||
|
||||
CheckNoRemap()
|
||||
{
|
||||
//* Read the value at 0x0
|
||||
i=__readMemory32(0x00000000,"Memory");
|
||||
i=i+1;
|
||||
__writeMemory32(i,0x00,"Memory");
|
||||
pt=__readMemory32(0x00000000,"Memory");
|
||||
|
||||
if (i == pt)
|
||||
{
|
||||
__message "------------------------------- The Remap is done ----------------------------------------";
|
||||
|
||||
} else {
|
||||
__message "------------------------------- The Remap is NOT -----------------------------------------";
|
||||
//* Toggel RESET The remap
|
||||
__writeMemory32(0x00000001,0xFFFFFF00,"Memory");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
execUserSetup()
|
||||
{
|
||||
ini();
|
||||
__message "-------------------------------Set PC ----------------------------------------";
|
||||
__writeMemory32(0x00000000,0xB4,"Register");
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Reset the Interrupt Controller
|
||||
//-------------------------------
|
||||
// Normally, the code is executed only if a reset has been actually performed.
|
||||
// So, the AIC initialization resumes at setting up the default vectors.
|
||||
//-----------------------------------------------------------------------------
|
||||
AIC()
|
||||
{
|
||||
// Mask All interrupt pAic->AIC_IDCR = 0xFFFFFFFF;
|
||||
__writeMemory32(0xFFFFFFFF,0xFFFFF124,"Memory");
|
||||
|
||||
for (i=0;i < 8; i++)
|
||||
{
|
||||
// AT91C_BASE_AIC->AIC_EOICR
|
||||
pt = __readMemory32(0xFFFFF130,"Memory");
|
||||
|
||||
}
|
||||
__message "------------------------------- AIC INIT ---------------------------------------------";
|
||||
}
|
||||
|
||||
ini()
|
||||
{
|
||||
__writeMemory32(0x0,0x00,"Register");
|
||||
__writeMemory32(0x0,0x04,"Register");
|
||||
__writeMemory32(0x0,0x08,"Register");
|
||||
__writeMemory32(0x0,0x0C,"Register");
|
||||
__writeMemory32(0x0,0x10,"Register");
|
||||
__writeMemory32(0x0,0x14,"Register");
|
||||
__writeMemory32(0x0,0x18,"Register");
|
||||
__writeMemory32(0x0,0x1C,"Register");
|
||||
__writeMemory32(0x0,0x20,"Register");
|
||||
__writeMemory32(0x0,0x24,"Register");
|
||||
__writeMemory32(0x0,0x28,"Register");
|
||||
__writeMemory32(0x0,0x2C,"Register");
|
||||
__writeMemory32(0x0,0x30,"Register");
|
||||
__writeMemory32(0x0,0x34,"Register");
|
||||
__writeMemory32(0x0,0x38,"Register");
|
||||
|
||||
// Set CPSR
|
||||
__writeMemory32(0x0D3,0x98,"Register");
|
||||
|
||||
}
|
||||
|
||||
RG()
|
||||
{
|
||||
|
||||
i=__readMemory32(0x00,"Register"); __message "R00 0x",i:%X;
|
||||
i=__readMemory32(0x04,"Register"); __message "R01 0x",i:%X;
|
||||
i=__readMemory32(0x08,"Register"); __message "R02 0x",i:%X;
|
||||
i=__readMemory32(0x0C,"Register"); __message "R03 0x",i:%X;
|
||||
i=__readMemory32(0x10,"Register"); __message "R04 0x",i:%X;
|
||||
i=__readMemory32(0x14,"Register"); __message "R05 0x",i:%X;
|
||||
i=__readMemory32(0x18,"Register"); __message "R06 0x",i:%X;
|
||||
i=__readMemory32(0x1C,"Register"); __message "R07 0x",i:%X;
|
||||
i=__readMemory32(0x20,"Register"); __message "R08 0x",i:%X;
|
||||
i=__readMemory32(0x24,"Register"); __message "R09 0x",i:%X;
|
||||
i=__readMemory32(0x28,"Register"); __message "R10 0x",i:%X;
|
||||
i=__readMemory32(0x2C,"Register"); __message "R11 0x",i:%X;
|
||||
i=__readMemory32(0x30,"Register"); __message "R12 0x",i:%X;
|
||||
i=__readMemory32(0x34,"Register"); __message "R13 0x",i:%X;
|
||||
i=__readMemory32(0x38,"Register"); __message "R14 0x",i:%X;
|
||||
i=__readMemory32(0x3C,"Register"); __message "R13 SVC 0x",i:%X;
|
||||
i=__readMemory32(0x40,"Register"); __message "R14 SVC 0x",i:%X;
|
||||
i=__readMemory32(0x44,"Register"); __message "R13 ABT 0x",i:%X;
|
||||
i=__readMemory32(0x48,"Register"); __message "R14 ABT 0x",i:%X;
|
||||
i=__readMemory32(0x4C,"Register"); __message "R13 UND 0x",i:%X;
|
||||
i=__readMemory32(0x50,"Register"); __message "R14 UND 0x",i:%X;
|
||||
i=__readMemory32(0x54,"Register"); __message "R13 IRQ 0x",i:%X;
|
||||
i=__readMemory32(0x58,"Register"); __message "R14 IRQ 0x",i:%X;
|
||||
i=__readMemory32(0x5C,"Register"); __message "R08 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x60,"Register"); __message "R09 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x64,"Register"); __message "R10 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x68,"Register"); __message "R11 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x6C,"Register"); __message "R12 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x70,"Register"); __message "R13 FIQ 0x",i:%X;
|
||||
i=__readMemory32(0x74,"Register"); __message "R14 FIQ0x",i:%X;
|
||||
i=__readMemory32(0x98,"Register"); __message "CPSR ",i:%X;
|
||||
i=__readMemory32(0x94,"Register"); __message "SPSR ",i:%X;
|
||||
i=__readMemory32(0x9C,"Register"); __message "SPSR ABT ",i:%X;
|
||||
i=__readMemory32(0xA0,"Register"); __message "SPSR ABT ",i:%X;
|
||||
i=__readMemory32(0xA4,"Register"); __message "SPSR UND ",i:%X;
|
||||
i=__readMemory32(0xA8,"Register"); __message "SPSR IRQ ",i:%X;
|
||||
i=__readMemory32(0xAC,"Register"); __message "SPSR FIQ ",i:%X;
|
||||
|
||||
i=__readMemory32(0xB4,"Register"); __message "PC 0x",i:%X;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
/*###ICF### Section handled by ICF editor, don't touch! ****/
|
||||
/*-Editor annotation file-*/
|
||||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
|
||||
/*-Specials-*/
|
||||
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
|
||||
/*-Memory Regions-*/
|
||||
define symbol __ICFEDIT_region_ROM_start__ = 0x00000100;
|
||||
define symbol __ICFEDIT_region_ROM_end__ = 0x0000FFFF;
|
||||
define symbol __ICFEDIT_region_RAM_start__ = 0x00200000;
|
||||
define symbol __ICFEDIT_region_RAM_end__ = 0x00203FFF;
|
||||
/*-Sizes-*/
|
||||
define symbol __ICFEDIT_size_cstack__ = 0x200;
|
||||
define symbol __ICFEDIT_size_svcstack__ = 0x200;
|
||||
define symbol __ICFEDIT_size_irqstack__ = 0x200;
|
||||
define symbol __ICFEDIT_size_fiqstack__ = 0x4;
|
||||
define symbol __ICFEDIT_size_undstack__ = 0x4;
|
||||
define symbol __ICFEDIT_size_abtstack__ = 0x4;
|
||||
define symbol __ICFEDIT_size_heap__ = 0x4;
|
||||
/**** End of ICF editor section. ###ICF###*/
|
||||
|
||||
|
||||
define memory mem with size = 4G;
|
||||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||
|
||||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
|
||||
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
|
||||
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
|
||||
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
|
||||
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
|
||||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||
|
||||
initialize by copy { readwrite };
|
||||
do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
|
||||
place in ROM_region { readonly };
|
||||
place in RAM_region { readwrite,
|
||||
block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
|
||||
block UND_STACK, block ABT_STACK, block HEAP };
|
1225
20080307/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewd
Normal file
1225
20080307/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewd
Normal file
File diff suppressed because it is too large
Load diff
1618
20080307/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewp
Normal file
1618
20080307/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.ewp
Normal file
File diff suppressed because it is too large
Load diff
10
20080307/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.eww
Normal file
10
20080307/Demo/ARM7_AT91SAM7S64_IAR/rtosdemo.eww
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<workspace>
|
||||
<project>
|
||||
<path>$WS_DIR$\rtosdemo.ewp</path>
|
||||
</project>
|
||||
<batchBuild/>
|
||||
</workspace>
|
||||
|
||||
|
256
20080307/Demo/ARM7_AT91SAM7S64_IAR/serial/serial.c
Normal file
256
20080307/Demo/ARM7_AT91SAM7S64_IAR/serial/serial.c
Normal file
|
@ -0,0 +1,256 @@
|
|||
/*
|
||||
FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.
|
||||
|
||||
This file is part of the FreeRTOS.org distribution.
|
||||
|
||||
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with FreeRTOS.org; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
A special exception to the GPL can be applied should you wish to distribute
|
||||
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||
the source code for any proprietary components. See the licensing section
|
||||
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||
can be applied.
|
||||
|
||||
***************************************************************************
|
||||
|
||||
Please ensure to read the configuration and relevant port sections of the
|
||||
online documentation.
|
||||
|
||||
+++ http://www.FreeRTOS.org +++
|
||||
Documentation, latest information, license and contact details.
|
||||
|
||||
+++ http://www.SafeRTOS.com +++
|
||||
A version that is certified for use in safety critical systems.
|
||||
|
||||
+++ http://www.OpenRTOS.com +++
|
||||
Commercial support, development, porting, licensing and training services.
|
||||
|
||||
***************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR UART0.
|
||||
*/
|
||||
|
||||
/* Standard includes. */
|
||||
#include <stdlib.h>
|
||||
|
||||
/* Scheduler includes. */
|
||||
#include "FreeRTOS.h"
|
||||
#include "queue.h"
|
||||
|
||||
/* Demo application includes. */
|
||||
#include "serial.h"
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Location of the COM0 registers. */
|
||||
#define serCOM0 ( ( AT91PS_USART ) AT91C_BASE_US0 )
|
||||
|
||||
/* Interrupt control macros. */
|
||||
#define serINTERRUPT_LEVEL ( 5 )
|
||||
#define vInterruptOn() AT91F_US_EnableIt( serCOM0, AT91C_US_TXRDY | AT91C_US_RXRDY )
|
||||
#define vInterruptOff() AT91F_US_DisableIt( serCOM0, AT91C_US_TXRDY )
|
||||
|
||||
/* Misc constants. */
|
||||
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
||||
#define serHANDLE ( ( xComPortHandle ) 1 )
|
||||
#define serNO_BLOCK ( ( portTickType ) 0 )
|
||||
#define serNO_TIMEGUARD ( ( unsigned portLONG ) 0 )
|
||||
#define serNO_PERIPHERAL_B_SETUP ( ( unsigned portLONG ) 0 )
|
||||
|
||||
|
||||
/* Queues used to hold received characters, and characters waiting to be
|
||||
transmitted. */
|
||||
static xQueueHandle xRxedChars;
|
||||
static xQueueHandle xCharsForTx;
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Interrupt entry point written in the assembler file serialISR.s79. */
|
||||
extern void vSerialISREntry( void );
|
||||
|
||||
/* The interrupt service routine - called from the assembly entry point. */
|
||||
__arm void vSerialISR( void );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* See the serial2.h header file.
|
||||
*/
|
||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||
{
|
||||
xComPortHandle xReturn = serHANDLE;
|
||||
extern void ( vUART_ISR )( void );
|
||||
|
||||
/* Create the queues used to hold Rx and Tx characters. */
|
||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
||||
|
||||
/* If the queues were created correctly then setup the serial port
|
||||
hardware. */
|
||||
if( ( xRxedChars != serINVALID_QUEUE ) && ( xCharsForTx != serINVALID_QUEUE ) )
|
||||
{
|
||||
portENTER_CRITICAL();
|
||||
{
|
||||
/* Enable the USART clock. */
|
||||
AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_US0 );
|
||||
|
||||
AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, ( ( unsigned portLONG ) AT91C_PA5_RXD0 ) | ( ( unsigned portLONG ) AT91C_PA6_TXD0 ), serNO_PERIPHERAL_B_SETUP );
|
||||
|
||||
/* Set the required protocol. */
|
||||
AT91F_US_Configure( serCOM0, configCPU_CLOCK_HZ, AT91C_US_ASYNC_MODE, ulWantedBaud, serNO_TIMEGUARD );
|
||||
|
||||
/* Enable Rx and Tx. */
|
||||
serCOM0->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
|
||||
|
||||
/* Enable the Rx interrupts. The Tx interrupts are not enabled
|
||||
until there are characters to be transmitted. */
|
||||
AT91F_US_EnableIt( serCOM0, AT91C_US_RXRDY );
|
||||
|
||||
/* Enable the interrupts in the AIC. */
|
||||
AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_US0, serINTERRUPT_LEVEL, AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, ( void (*)( void ) ) vSerialISREntry );
|
||||
AT91F_AIC_EnableIt( AT91C_BASE_AIC, AT91C_ID_US0 );
|
||||
}
|
||||
portEXIT_CRITICAL();
|
||||
}
|
||||
else
|
||||
{
|
||||
xReturn = ( xComPortHandle ) 0;
|
||||
}
|
||||
|
||||
/* This demo file only supports a single port but we have to return
|
||||
something to comply with the standard demo header file. */
|
||||
return xReturn;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
||||
{
|
||||
/* The port handle is not required as this driver only supports one port. */
|
||||
( void ) pxPort;
|
||||
|
||||
/* Get the next character from the buffer. Return false if no characters
|
||||
are available, or arrive before xBlockTime expires. */
|
||||
if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )
|
||||
{
|
||||
return pdTRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return pdFALSE;
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
||||
{
|
||||
signed portCHAR *pxNext;
|
||||
|
||||
/* A couple of parameters that this port does not use. */
|
||||
( void ) usStringLength;
|
||||
( void ) pxPort;
|
||||
|
||||
/* NOTE: This implementation does not handle the queue being full as no
|
||||
block time is used! */
|
||||
|
||||
/* The port handle is not required as this driver only supports UART0. */
|
||||
( void ) pxPort;
|
||||
|
||||
/* Send each character in the string, one at a time. */
|
||||
pxNext = ( signed portCHAR * ) pcString;
|
||||
while( *pxNext )
|
||||
{
|
||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||
pxNext++;
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
||||
{
|
||||
/* Place the character in the queue of characters to be transmitted. */
|
||||
if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
|
||||
{
|
||||
return pdFAIL;
|
||||
}
|
||||
|
||||
/* Turn on the Tx interrupt so the ISR will remove the character from the
|
||||
queue and send it. This does not need to be in a critical section as
|
||||
if the interrupt has already removed the character the next interrupt
|
||||
will simply turn off the Tx interrupt again. */
|
||||
vInterruptOn();
|
||||
|
||||
return pdPASS;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vSerialClose( xComPortHandle xPort )
|
||||
{
|
||||
/* Not supported as not required by the demo application. */
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Serial port ISR. This can cause a context switch so is not defined as a
|
||||
standard ISR using the __irq keyword. Instead a wrapper function is defined
|
||||
within serialISR.s79 which in turn calls this function. See the port
|
||||
documentation on the FreeRTOS.org website for more information. */
|
||||
__arm void vSerialISR( void )
|
||||
{
|
||||
unsigned portLONG ulStatus;
|
||||
signed portCHAR cChar;
|
||||
portBASE_TYPE xTaskWokenByTx = pdFALSE, xTaskWokenByPost = pdFALSE;
|
||||
|
||||
/* What caused the interrupt? */
|
||||
ulStatus = serCOM0->US_CSR &= serCOM0->US_IMR;
|
||||
|
||||
if( ulStatus & AT91C_US_TXRDY )
|
||||
{
|
||||
/* The interrupt was caused by the THR becoming empty. Are there any
|
||||
more characters to transmit? */
|
||||
if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xTaskWokenByTx ) == pdTRUE )
|
||||
{
|
||||
/* A character was retrieved from the queue so can be sent to the
|
||||
THR now. */
|
||||
serCOM0->US_THR = cChar;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Queue empty, nothing to send so turn off the Tx interrupt. */
|
||||
vInterruptOff();
|
||||
}
|
||||
}
|
||||
|
||||
if( ulStatus & AT91C_US_RXRDY )
|
||||
{
|
||||
/* The interrupt was caused by a character being received. Grab the
|
||||
character from the RHR and place it in the queue or received
|
||||
characters. */
|
||||
cChar = serCOM0->US_RHR;
|
||||
xTaskWokenByPost = xQueueSendFromISR( xRxedChars, &cChar, xTaskWokenByPost );
|
||||
}
|
||||
|
||||
/* If a task was woken by either a character being received or a character
|
||||
being transmitted then we may need to switch to another task. */
|
||||
portEND_SWITCHING_ISR( ( xTaskWokenByPost || xTaskWokenByTx ) );
|
||||
|
||||
/* End the interrupt in the AIC. */
|
||||
AT91C_BASE_AIC->AIC_EOICR = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
24
20080307/Demo/ARM7_AT91SAM7S64_IAR/serial/serialISR.s79
Normal file
24
20080307/Demo/ARM7_AT91SAM7S64_IAR/serial/serialISR.s79
Normal file
|
@ -0,0 +1,24 @@
|
|||
RSEG ICODE:CODE
|
||||
CODE32
|
||||
|
||||
EXTERN vSerialISR
|
||||
PUBLIC vSerialISREntry
|
||||
|
||||
; Wrapper for the serial port interrupt service routine. This can cause a
|
||||
; context switch so requires an assembly wrapper.
|
||||
|
||||
; Defines the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.
|
||||
#include "ISR_Support.h"
|
||||
|
||||
vSerialISREntry:
|
||||
|
||||
portSAVE_CONTEXT ; Save the context of the current task.
|
||||
|
||||
bl vSerialISR ; Call the ISR routine.
|
||||
|
||||
portRESTORE_CONTEXT ; Restore the context of the current task -
|
||||
; which may be different to the task that
|
||||
; was interrupted.
|
||||
|
||||
END
|
||||
|
71
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dbgdt
Normal file
71
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dbgdt
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<Project>
|
||||
<Desktop>
|
||||
<Static>
|
||||
<Workspace>
|
||||
<ColumnWidths>
|
||||
|
||||
|
||||
|
||||
<Column0>189</Column0><Column1>27</Column1><Column2>27</Column2></ColumnWidths>
|
||||
</Workspace>
|
||||
<Disassembly>
|
||||
|
||||
|
||||
|
||||
<PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow></Disassembly>
|
||||
<Debug-Log/>
|
||||
<Build/>
|
||||
<Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Register><QWatch><Column0>188</Column0><Column1>171</Column1><Column2>100</Column2><Column3>100</Column3></QWatch><Memory><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory><Watch><Format><struct_types/><watch_formats/></Format></Watch></Static>
|
||||
<Windows>
|
||||
<Wnd0>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Identity>TabID-23416-30482</Identity>
|
||||
<TabName>Workspace</TabName>
|
||||
<Factory>Workspace</Factory>
|
||||
<Session>
|
||||
|
||||
<NodeDict><ExpandedNode>rtosdemo</ExpandedNode></NodeDict></Session>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<SelectedTab>0</SelectedTab></Wnd0>
|
||||
|
||||
<Wnd2>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Identity>TabID-12145-30489</Identity>
|
||||
<TabName>Debug Log</TabName>
|
||||
<Factory>Debug-Log</Factory>
|
||||
<Session/>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Identity>TabID-22894-30492</Identity>
|
||||
<TabName>Build</TabName>
|
||||
<Factory>Build</Factory>
|
||||
<Session/>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<SelectedTab>1</SelectedTab></Wnd2>
|
||||
<Wnd4><Tabs><Tab><Identity>TabID-18780-12821</Identity><TabName>Memory</TabName><Factory>Memory</Factory><Session><SelectionAnchor>2097764</SelectionAnchor><SelectionEnd>2097764</SelectionEnd><UnitsPerGroup>1</UnitsPerGroup><EndianMode>0</EndianMode><DataCovEnabled>0</DataCovEnabled><DataCovShown>0</DataCovShown></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd4><Wnd5><Tabs><Tab><Identity>TabID-23506-14575</Identity><TabName>Watch</TabName><Factory>Watch</Factory><Session><Expressions><Expression><Expression>pxCurrentTCB</Expression></Expression><Expression><Expression>ulCriticalNesting</Expression></Expression></Expressions><TabId>0</TabId><Column0>176</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5><Wnd1><Tabs><Tab><Identity>TabID-4859-22480</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1><Wnd3><Tabs><Tab><Identity>TabID-154-22568</Identity><TabName>Register</TabName><Factory>Register</Factory><Session><REG1>0</REG1><REG2>0</REG2><Group>0</Group><States>1</States><State0>CPSR</State0></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3></Windows>
|
||||
<Editor>
|
||||
|
||||
|
||||
|
||||
|
||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\main.c</Filename><XPos>0</XPos><YPos>10</YPos><SelStart>378</SelStart><SelEnd>378</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\source\include\task.h</Filename><XPos>0</XPos><YPos>778</YPos><SelStart>24283</SelStart><SelEnd>24283</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\tasks.c</Filename><XPos>0</XPos><YPos>939</YPos><SelStart>30511</SelStart><SelEnd>30511</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\SrcIAR\Cstartup.s79</Filename><XPos>0</XPos><YPos>48</YPos><SelStart>2226</SelStart><SelEnd>2226</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\Common\Minimal\flash.c</Filename><XPos>0</XPos><YPos>98</YPos><SelStart>4025</SelStart><SelEnd>4025</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\portasm.s79</Filename><XPos>0</XPos><YPos>41</YPos><SelStart>1057</SelStart><SelEnd>1079</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\srciar\lib_AT91SAM7S64.h</Filename><XPos>0</XPos><YPos>2778</YPos><SelStart>108450</SelStart><SelEnd>108450</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\port.c</Filename><XPos>0</XPos><YPos>136</YPos><SelStart>5326</SelStart><SelEnd>5326</SelEnd></Tab><ActiveTab>7</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\ParTest\ParTest.c</Filename><XPos>0</XPos><YPos>36</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\portmacro.h</Filename><XPos>0</XPos><YPos>67</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||
<Positions>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Top><Row0><Sizes><Toolbar-0084f8a0><key>IarIdePM1</key></Toolbar-0084f8a0></Sizes></Row0><Row1><Sizes><Toolbar-031ef990><key>DebuggerGui1</key></Toolbar-031ef990></Sizes></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>715</Bottom><Right>263</Right><x>-2</x><y>-2</y><xscreen>153</xscreen><yscreen>153</yscreen><sizeHorzCX>95625</sizeHorzCX><sizeHorzCY>136729</sizeHorzCY><sizeVertCX>165625</sizeVertCX><sizeVertCY>640750</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>715</Bottom><Right>647</Right><x>-2</x><y>-2</y><xscreen>190</xscreen><yscreen>190</yscreen><sizeHorzCX>118750</sizeHorzCX><sizeHorzCY>169794</sizeHorzCY><sizeVertCX>405625</sizeVertCX><sizeVertCY>640750</sizeVertCY></Rect></Wnd1></Sizes></Row0><Row1><Sizes><Wnd3><Rect><Top>-2</Top><Left>645</Left><Bottom>715</Bottom><Right>1025</Right><x>645</x><y>-2</y><xscreen>190</xscreen><yscreen>190</yscreen><sizeHorzCX>118750</sizeHorzCX><sizeHorzCY>169794</sizeHorzCY><sizeVertCX>237500</sizeVertCX><sizeVertCY>640750</sizeVertCY></Rect></Wnd3></Sizes></Row1></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>151</Bottom><Right>1602</Right><x>-2</x><y>-2</y><xscreen>1604</xscreen><yscreen>153</yscreen><sizeHorzCX>1002500</sizeHorzCX><sizeHorzCY>136729</sizeHorzCY><sizeVertCX>95625</sizeVertCX><sizeVertCY>136729</sizeVertCY></Rect></Wnd2></Sizes></Row0><Row1><Sizes><Wnd4><Rect><Top>149</Top><Left>-2</Left><Bottom>333</Bottom><Right>669</Right><x>-2</x><y>149</y><xscreen>671</xscreen><yscreen>184</yscreen><sizeHorzCX>419375</sizeHorzCX><sizeHorzCY>164432</sizeHorzCY><sizeVertCX>114375</sizeVertCX><sizeVertCY>163538</sizeVertCY></Rect></Wnd4><Wnd5><Rect><Top>149</Top><Left>667</Left><Bottom>333</Bottom><Right>1602</Right><x>667</x><y>149</y><xscreen>935</xscreen><yscreen>184</yscreen><sizeHorzCX>584375</sizeHorzCX><sizeHorzCY>164432</sizeHorzCY><sizeVertCX>115000</sizeVertCX><sizeVertCY>598748</sizeVertCY></Rect></Wnd5></Sizes></Row1></Bot
|
||||
tom><Float><Sizes/></Float></Positions>
|
||||
</Desktop>
|
||||
</Project>
|
||||
|
||||
|
23
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dni
Normal file
23
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/Basic.dni
Normal file
|
@ -0,0 +1,23 @@
|
|||
[DisAssemblyWindow]
|
||||
NumStates=_ 1
|
||||
State 1=_ 1
|
||||
[JLinkDriver]
|
||||
WatchVectorCatch=_ 0
|
||||
WatchCond=_ 0
|
||||
Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
|
||||
Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
|
||||
[Log file]
|
||||
LoggingEnabled=_ 0
|
||||
LogFile=_ ""
|
||||
Category=_ 0
|
||||
[TermIOLog]
|
||||
LoggingEnabled=_ 0
|
||||
LogFile=_ ""
|
||||
[Disassemble mode]
|
||||
mode=0
|
||||
[Breakpoints]
|
||||
Bp0=_ "Code" "{E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\port.c}.141.1@1" 1 0 0 0 "" 0 ""
|
||||
Count=1
|
||||
[Low Level]
|
||||
Pipeline mode=0
|
||||
Initialized=0
|
80
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/BasicSAM7.wsdt
Normal file
80
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/BasicSAM7.wsdt
Normal file
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<Workspace>
|
||||
<ConfigDictionary>
|
||||
|
||||
<CurrentConfigs><Project>rtosdemo/Flash Debug</Project></CurrentConfigs></ConfigDictionary>
|
||||
<Desktop>
|
||||
<Static>
|
||||
<Workspace>
|
||||
<ColumnWidths>
|
||||
|
||||
|
||||
|
||||
<Column0>232</Column0><Column1>27</Column1><Column2>27</Column2></ColumnWidths>
|
||||
</Workspace>
|
||||
<Build/>
|
||||
<TerminalIO/>
|
||||
<Profiling/>
|
||||
<Watch>
|
||||
<Format>
|
||||
<struct_types/>
|
||||
<watch_formats/>
|
||||
</Format>
|
||||
</Watch>
|
||||
<Debug-Log/>
|
||||
<Disassembly>
|
||||
|
||||
|
||||
|
||||
<MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow></Disassembly>
|
||||
<CodeCoveragePlugin/><Memory><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory></Static>
|
||||
<Windows>
|
||||
|
||||
|
||||
<Wnd6>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Identity>TabID-29690-30365</Identity>
|
||||
<TabName>Workspace</TabName>
|
||||
<Factory>Workspace</Factory>
|
||||
<Session>
|
||||
|
||||
<NodeDict><ExpandedNode>rtosdemo</ExpandedNode></NodeDict></Session>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<SelectedTab>0</SelectedTab></Wnd6><Wnd7>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Identity>TabID-27076-30414</Identity>
|
||||
<TabName>Build</TabName>
|
||||
<Factory>Build</Factory>
|
||||
<Session/>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Identity>TabID-12668-30479</Identity>
|
||||
<TabName>Debug Log</TabName>
|
||||
<Factory>Debug-Log</Factory>
|
||||
<Session/>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<SelectedTab>1</SelectedTab></Wnd7></Windows>
|
||||
<Editor>
|
||||
|
||||
|
||||
|
||||
|
||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\source\include\task.h</Filename><XPos>0</XPos><YPos>778</YPos><SelStart>24283</SelStart><SelEnd>24283</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\portasm.s79</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>2583</SelStart><SelEnd>2583</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\SrcIAR\Cstartup.s79</Filename><XPos>0</XPos><YPos>30</YPos><SelStart>2226</SelStart><SelEnd>2226</SelEnd></Tab><ActiveTab>3</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\srciar\lib_AT91SAM7S64.h</Filename><XPos>0</XPos><YPos>2371</YPos><SelStart>92638</SelStart><SelEnd>92638</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\Common\Minimal\flash.c</Filename><XPos>0</XPos><YPos>98</YPos><SelStart>4025</SelStart><SelEnd>4025</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\port.c</Filename><XPos>0</XPos><YPos>177</YPos><SelStart>7662</SelStart><SelEnd>7662</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\ParTest\ParTest.c</Filename><XPos>0</XPos><YPos>36</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\portmacro.h</Filename><XPos>0</XPos><YPos>21</YPos><SelStart>2110</SelStart><SelEnd>2110</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Demo\ARM7_Ateml_IAR\SrcIAR\Cstartup_SAM7.c</Filename><XPos>0</XPos><YPos>29</YPos><SelStart>3116</SelStart><SelEnd>3116</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\portable\MemMang\heap_2.c</Filename><XPos>0</XPos><YPos>170</YPos><SelStart>7352</SelStart><SelEnd>7352</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>E:\Dev\FreeRTOS\Source\tasks.c</Filename><XPos>0</XPos><YPos>1270</YPos><SelStart>40884</SelStart><SelEnd>40884</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||
<Positions>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Top><Row0><Sizes><Toolbar-0084f7c0><key>IarIdePM1</key></Toolbar-0084f7c0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd6><Rect><Top>-2</Top><Left>-2</Left><Bottom>866</Bottom><Right>306</Right><x>-2</x><y>-2</y><xscreen>48</xscreen><yscreen>48</yscreen><sizeHorzCX>30000</sizeHorzCX><sizeHorzCY>42895</sizeHorzCY><sizeVertCX>192500</sizeVertCX><sizeVertCY>775692</sizeVertCY></Rect></Wnd6></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd7><Rect><Top>-2</Top><Left>-2</Left><Bottom>206</Bottom><Right>1602</Right><x>-2</x><y>-2</y><xscreen>1604</xscreen><yscreen>208</yscreen><sizeHorzCX>1002500</sizeHorzCX><sizeHorzCY>185880</sizeHorzCY><sizeVertCX>30000</sizeVertCX><sizeVertCY>42895</sizeVertCY></Rect></Wnd7></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
|
||||
</Desktop>
|
||||
</Workspace>
|
||||
|
||||
|
62
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dbgdt
Normal file
62
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dbgdt
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<Project>
|
||||
<Desktop>
|
||||
<Static>
|
||||
<Workspace>
|
||||
<ColumnWidths>
|
||||
|
||||
|
||||
|
||||
<Column0>204</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
||||
</Workspace>
|
||||
<Disassembly>
|
||||
|
||||
|
||||
|
||||
<PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow></Disassembly>
|
||||
<Debug-Log><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window></Windows></PreferedWindows></Debug-Log>
|
||||
<Build><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Debug-Log</Factory></Window></Windows></PreferedWindows></Build>
|
||||
<Register>
|
||||
<PreferedWindows>
|
||||
|
||||
|
||||
|
||||
|
||||
<Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows>
|
||||
</Register>
|
||||
<QWatch><Column0>161</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></QWatch><Memory><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory></Static>
|
||||
<Windows>
|
||||
|
||||
|
||||
|
||||
<Wnd2>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Identity>TabID-22256-14845</Identity>
|
||||
<TabName>Workspace</TabName>
|
||||
<Factory>Workspace</Factory>
|
||||
<Session>
|
||||
|
||||
<NodeDict><ExpandedNode>rtosdemo</ExpandedNode><ExpandedNode>rtosdemo/USBSample.c</ExpandedNode></NodeDict></Session>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<SelectedTab>0</SelectedTab></Wnd2><Wnd3><Tabs><Tab><Identity>TabID-18517-20319</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3></Windows>
|
||||
<Editor>
|
||||
|
||||
|
||||
|
||||
|
||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\Demo\ARM7_AT91SAM7S64_IAR\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>25</YPos><SelStart>1726</SelStart><SelEnd>1726</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\Demo\ARM7_AT91SAM7S64_IAR\SrcIAR\Cstartup.s79</Filename><XPos>0</XPos><YPos>19</YPos><SelStart>1527</SelStart><SelEnd>1527</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\Demo\ARM7_AT91SAM7S64_IAR\SrcIAR\Cstartup.s</Filename><XPos>0</XPos><YPos>52</YPos><SelStart>3250</SelStart><SelEnd>3250</SelEnd></Tab><ActiveTab>2</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7S64\port.c</Filename><XPos>0</XPos><YPos>217</YPos><SelStart>8345</SelStart><SelEnd>8345</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||
<Positions>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Top><Row0><Sizes><Toolbar-01284260><key>iaridepm.enu1</key></Toolbar-01284260><Toolbar-070bd990><key>debuggergui.enu1</key></Toolbar-070bd990></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>278</Right><x>-2</x><y>-2</y><xscreen>0</xscreen><yscreen>0</yscreen><sizeHorzCX>0</sizeHorzCX><sizeHorzCY>0</sizeHorzCY><sizeVertCX>166667</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
|
||||
</Desktop>
|
||||
</Project>
|
||||
|
||||
|
39
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dni
Normal file
39
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.dni
Normal file
|
@ -0,0 +1,39 @@
|
|||
[DisAssemblyWindow]
|
||||
NumStates=_ 1
|
||||
State 1=_ 1
|
||||
[JLinkDriver]
|
||||
WatchVectorCatch=_ 0
|
||||
WatchCond=_ 0
|
||||
Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
|
||||
Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
|
||||
[Low Level]
|
||||
Pipeline mode=1
|
||||
Initialized=0
|
||||
[CodeCoverage]
|
||||
Enabled=_ 0
|
||||
[Profiling]
|
||||
Enabled=0
|
||||
[StackPlugin]
|
||||
Enabled=1
|
||||
OverflowWarningsEnabled=1
|
||||
WarningThreshold=90
|
||||
SpWarningsEnabled=1
|
||||
WarnHow=0
|
||||
UseTrigger=1
|
||||
TriggerName=main
|
||||
LimitSize=0
|
||||
ByteLimit=50
|
||||
[Log file]
|
||||
LoggingEnabled=_ 0
|
||||
LogFile=_ ""
|
||||
Category=_ 0
|
||||
[TermIOLog]
|
||||
LoggingEnabled=_ 0
|
||||
LogFile=_ ""
|
||||
[Disassemble mode]
|
||||
mode=0
|
||||
[Breakpoints]
|
||||
Count=0
|
||||
[TraceHelper]
|
||||
Enabled=0
|
||||
ShowSource=1
|
76
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.wsdt
Normal file
76
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo.wsdt
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<Workspace>
|
||||
<ConfigDictionary>
|
||||
|
||||
<CurrentConfigs><Project>rtosdemo/Flash Bin</Project></CurrentConfigs></ConfigDictionary>
|
||||
<Desktop>
|
||||
<Static>
|
||||
<Workspace>
|
||||
<ColumnWidths>
|
||||
|
||||
|
||||
|
||||
<Column0>236</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
||||
</Workspace>
|
||||
<Build><ColumnWidth0>18</ColumnWidth0><ColumnWidth1>1155</ColumnWidth1><ColumnWidth2>308</ColumnWidth2><ColumnWidth3>77</ColumnWidth3></Build>
|
||||
<Debug-Log/>
|
||||
<TerminalIO/>
|
||||
<CodeCoveragePlugin/>
|
||||
<Profiling/>
|
||||
<Watch>
|
||||
<Format>
|
||||
<struct_types/>
|
||||
<watch_formats/>
|
||||
</Format>
|
||||
</Watch>
|
||||
<Disassembly><MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow></Disassembly><Memory><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory></Static>
|
||||
<Windows>
|
||||
|
||||
|
||||
<Wnd2>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Identity>TabID-17425-14382</Identity>
|
||||
<TabName>Workspace</TabName>
|
||||
<Factory>Workspace</Factory>
|
||||
<Session>
|
||||
|
||||
<NodeDict><ExpandedNode>rtosdemo</ExpandedNode></NodeDict></Session>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<SelectedTab>0</SelectedTab></Wnd2><Wnd3>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Identity>TabID-4084-16269</Identity>
|
||||
<TabName>Build</TabName>
|
||||
<Factory>Build</Factory>
|
||||
<Session/>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Identity>TabID-25581-16276</Identity>
|
||||
<TabName>Debug Log</TabName>
|
||||
<Factory>Debug-Log</Factory>
|
||||
<Session/>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<SelectedTab>0</SelectedTab></Wnd3></Windows>
|
||||
<Editor>
|
||||
|
||||
|
||||
|
||||
|
||||
<Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\Demo\ARM7_AT91SAM7S64_IAR\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||
<Positions>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Top><Row0><Sizes><Toolbar-01284260><key>iaridepm.enu1</key></Toolbar-01284260></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>576</Bottom><Right>310</Right><x>-2</x><y>-2</y><xscreen>32</xscreen><yscreen>26</yscreen><sizeHorzCX>19048</sizeHorzCX><sizeHorzCY>26477</sizeHorzCY><sizeVertCX>185714</sizeVertCX><sizeVertCY>588595</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>362</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>364</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>370672</sizeHorzCY><sizeVertCX>19048</sizeVertCX><sizeVertCY>26477</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
|
||||
</Desktop>
|
||||
</Workspace>
|
||||
|
||||
|
17
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo_lnk.par
Normal file
17
20080307/Demo/ARM7_AT91SAM7S64_IAR/settings/rtosdemo_lnk.par
Normal file
|
@ -0,0 +1,17 @@
|
|||
// IAR XLINK Setup
|
||||
// Autogenerated file - do not edit
|
||||
%
|
||||
setrangelist($evec_ADR,[0-3F]);
|
||||
setrangelist($internal_ROM,[8000-FFFFF]);
|
||||
setrangelist($external_ROM,[]);
|
||||
setrangelist($internal_RAM,[100000-7FFFFF]);
|
||||
setrangelist($external_RAM,[]);
|
||||
$CSTACK_SIZE=200;
|
||||
$IRQSTACK_SIZE=100;
|
||||
$HEAP_SIZE=4;
|
||||
$COMMANDS="";
|
||||
$STACK_LOCATION="Internal RAM";
|
||||
$IRQSTACK_LOCATION="Internal RAM";
|
||||
$HEAP_LOCATION="Internal RAM";
|
||||
$iar_saved_xclfilename="E:\Dev\FreeRTOS\Demo\ARM7_AT91SAM7S64_IAR\resource\at91SAM7S64_NoRemap.xcl";
|
||||
%
|
|
@ -0,0 +1,17 @@
|
|||
*** SESSION Sep 07, 2007 11:40:29.515 ------------------------------------------
|
||||
*** SESSION Sep 26, 2007 20:59:04.640 ------------------------------------------
|
||||
*** SESSION Sep 27, 2007 17:22:58.687 ------------------------------------------
|
||||
*** SESSION Oct 04, 2007 20:29:08.859 ------------------------------------------
|
||||
*** SESSION Oct 23, 2007 19:47:01.875 ------------------------------------------
|
||||
*** SESSION Oct 23, 2007 21:13:26.296 ------------------------------------------
|
||||
*** SESSION Oct 23, 2007 21:22:16.187 ------------------------------------------
|
||||
*** SESSION Oct 28, 2007 12:37:13.93 -------------------------------------------
|
||||
*** SESSION Nov 06, 2007 16:04:46.31 -------------------------------------------
|
||||
*** SESSION Nov 06, 2007 20:19:12.359 ------------------------------------------
|
||||
*** SESSION Nov 07, 2007 18:40:55.281 ------------------------------------------
|
||||
*** SESSION Nov 13, 2007 20:49:09.875 ------------------------------------------
|
||||
*** SESSION Nov 17, 2007 17:59:26.734 ------------------------------------------
|
||||
*** SESSION Nov 17, 2007 19:36:59.656 ------------------------------------------
|
||||
*** SESSION Nov 21, 2007 08:36:47.312 ------------------------------------------
|
||||
*** SESSION Nov 21, 2007 15:42:29.171 ------------------------------------------
|
||||
*** SESSION Nov 21, 2007 17:07:49.515 ------------------------------------------
|
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><SharedRoot><SharedProperty id="" value=""/></SharedRoot>
|
|
@ -0,0 +1,161 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?scdStore version="2"?>
|
||||
|
||||
<scannerInfo id="org.eclipse.cdt.make.core.discoveredScannerInfo">
|
||||
<instance id="0.1109417601">
|
||||
<collector id="org.eclipse.cdt.make.core.PerProjectSICollector">
|
||||
<includePath path="c:/devtools/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.2.0/include"/>
|
||||
<includePath path="c:/devtools/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.2.0/include-fixed"/>
|
||||
<includePath path="c:/devtools/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/include"/>
|
||||
<includePath path="c:/devtools/codesourcery/sourcery g++ lite/lib/gcc/../../lib/gcc/arm-none-eabi/4.2.0/include"/>
|
||||
<includePath path="c:/devtools/codesourcery/sourcery g++ lite/lib/gcc/../../lib/gcc/arm-none-eabi/4.2.0/include-fixed"/>
|
||||
<includePath path="c:/devtools/codesourcery/sourcery g++ lite/lib/gcc/../../lib/gcc/arm-none-eabi/4.2.0/../../../../arm-none-eabi/include"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Source/include"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Source/portable/GCC/ARM7_LPC23xx"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Source/portable/GCC/ARM_CM3"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Demo/Common/include"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Demo/Common/ethernet/uIP/uip-1.0/uip"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/SrcAtmel"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB"/>
|
||||
<includePath path="c:\devtools\yagarto\bin\../lib/gcc/arm-elf/4.2.1/include"/>
|
||||
<includePath path="C:/devtools/yagarto/lib/gcc/arm-elf/4.2.1/include"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver"/>
|
||||
<includePath path="c:\devtools\yagarto\bin\../lib/gcc/arm-elf/4.1.1/include"/>
|
||||
<includePath path="C:/devtools/yagarto/lib/gcc/arm-elf/4.1.1/include"/>
|
||||
<includePath path="C:/devtools/yagarto/arm-elf/include"/>
|
||||
<includePath path="C:/E/Dev/FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo"/>
|
||||
<definedSymbol symbol="__STDC__=1"/>
|
||||
<definedSymbol symbol="__STDC_HOSTED__=1"/>
|
||||
<definedSymbol symbol="__GNUC__=4"/>
|
||||
<definedSymbol symbol="__GNUC_MINOR__=2"/>
|
||||
<definedSymbol symbol="__GNUC_MINOR__=1"/>
|
||||
<definedSymbol symbol="__GNUC_PATCHLEVEL__=0"/>
|
||||
<definedSymbol symbol="__GNUC_PATCHLEVEL__=1"/>
|
||||
<definedSymbol symbol="__SIZE_TYPE__=unsigned int"/>
|
||||
<definedSymbol symbol="__SIZE_TYPE__=long unsigned int"/>
|
||||
<definedSymbol symbol="__PTRDIFF_TYPE__=int"/>
|
||||
<definedSymbol symbol="__PTRDIFF_TYPE__=long int"/>
|
||||
<definedSymbol symbol="__WCHAR_TYPE__=unsigned int"/>
|
||||
<definedSymbol symbol="__WCHAR_TYPE__=int"/>
|
||||
<definedSymbol symbol="__WINT_TYPE__=unsigned int"/>
|
||||
<definedSymbol symbol="__INTMAX_TYPE__=long long int"/>
|
||||
<definedSymbol symbol="__UINTMAX_TYPE__=long long unsigned int"/>
|
||||
<definedSymbol symbol="__GXX_ABI_VERSION=1002"/>
|
||||
<definedSymbol symbol="__SCHAR_MAX__=127"/>
|
||||
<definedSymbol symbol="__SHRT_MAX__=32767"/>
|
||||
<definedSymbol symbol="__INT_MAX__=2147483647"/>
|
||||
<definedSymbol symbol="__LONG_MAX__=2147483647L"/>
|
||||
<definedSymbol symbol="__LONG_LONG_MAX__=9223372036854775807LL"/>
|
||||
<definedSymbol symbol="__WCHAR_MAX__=4294967295U"/>
|
||||
<definedSymbol symbol="__WCHAR_MAX__=2147483647"/>
|
||||
<definedSymbol symbol="__CHAR_BIT__=8"/>
|
||||
<definedSymbol symbol="__INTMAX_MAX__=9223372036854775807LL"/>
|
||||
<definedSymbol symbol="__FLT_EVAL_METHOD__=0"/>
|
||||
<definedSymbol symbol="__DEC_EVAL_METHOD__=2"/>
|
||||
<definedSymbol symbol="__FLT_RADIX__=2"/>
|
||||
<definedSymbol symbol="__FLT_MANT_DIG__=24"/>
|
||||
<definedSymbol symbol="__FLT_DIG__=6"/>
|
||||
<definedSymbol symbol="__FLT_MIN_EXP__=(-125)"/>
|
||||
<definedSymbol symbol="__FLT_MIN_10_EXP__=(-37)"/>
|
||||
<definedSymbol symbol="__FLT_MAX_EXP__=128"/>
|
||||
<definedSymbol symbol="__FLT_MAX_10_EXP__=38"/>
|
||||
<definedSymbol symbol="__FLT_MAX__=3.40282347e+38F"/>
|
||||
<definedSymbol symbol="__FLT_MIN__=1.17549435e-38F"/>
|
||||
<definedSymbol symbol="__FLT_EPSILON__=1.19209290e-7F"/>
|
||||
<definedSymbol symbol="__FLT_DENORM_MIN__=1.40129846e-45F"/>
|
||||
<definedSymbol symbol="__FLT_HAS_DENORM__=1"/>
|
||||
<definedSymbol symbol="__FLT_HAS_INFINITY__=1"/>
|
||||
<definedSymbol symbol="__FLT_HAS_QUIET_NAN__=1"/>
|
||||
<definedSymbol symbol="__DBL_MANT_DIG__=53"/>
|
||||
<definedSymbol symbol="__DBL_DIG__=15"/>
|
||||
<definedSymbol symbol="__DBL_MIN_EXP__=(-1021)"/>
|
||||
<definedSymbol symbol="__DBL_MIN_10_EXP__=(-307)"/>
|
||||
<definedSymbol symbol="__DBL_MAX_EXP__=1024"/>
|
||||
<definedSymbol symbol="__DBL_MAX_10_EXP__=308"/>
|
||||
<definedSymbol symbol="__DBL_MAX__=1.7976931348623157e+308"/>
|
||||
<definedSymbol symbol="__DBL_MIN__=2.2250738585072014e-308"/>
|
||||
<definedSymbol symbol="__DBL_EPSILON__=2.2204460492503131e-16"/>
|
||||
<definedSymbol symbol="__DBL_DENORM_MIN__=4.9406564584124654e-324"/>
|
||||
<definedSymbol symbol="__DBL_HAS_DENORM__=1"/>
|
||||
<definedSymbol symbol="__DBL_HAS_INFINITY__=1"/>
|
||||
<definedSymbol symbol="__DBL_HAS_QUIET_NAN__=1"/>
|
||||
<definedSymbol symbol="__LDBL_MANT_DIG__=53"/>
|
||||
<definedSymbol symbol="__LDBL_DIG__=15"/>
|
||||
<definedSymbol symbol="__LDBL_MIN_EXP__=(-1021)"/>
|
||||
<definedSymbol symbol="__LDBL_MIN_10_EXP__=(-307)"/>
|
||||
<definedSymbol symbol="__LDBL_MAX_EXP__=1024"/>
|
||||
<definedSymbol symbol="__LDBL_MAX_10_EXP__=308"/>
|
||||
<definedSymbol symbol="__DECIMAL_DIG__=17"/>
|
||||
<definedSymbol symbol="__LDBL_MAX__=1.7976931348623157e+308L"/>
|
||||
<definedSymbol symbol="__LDBL_MIN__=2.2250738585072014e-308L"/>
|
||||
<definedSymbol symbol="__LDBL_EPSILON__=2.2204460492503131e-16L"/>
|
||||
<definedSymbol symbol="__LDBL_DENORM_MIN__=4.9406564584124654e-324L"/>
|
||||
<definedSymbol symbol="__LDBL_HAS_DENORM__=1"/>
|
||||
<definedSymbol symbol="__LDBL_HAS_INFINITY__=1"/>
|
||||
<definedSymbol symbol="__LDBL_HAS_QUIET_NAN__=1"/>
|
||||
<definedSymbol symbol="__DEC32_MANT_DIG__=7"/>
|
||||
<definedSymbol symbol="__DEC32_MIN_EXP__=(-95)"/>
|
||||
<definedSymbol symbol="__DEC32_MAX_EXP__=96"/>
|
||||
<definedSymbol symbol="__DEC32_MIN__=1E-95DF"/>
|
||||
<definedSymbol symbol="__DEC32_MAX__=9.999999E96DF"/>
|
||||
<definedSymbol symbol="__DEC32_EPSILON__=1E-6DF"/>
|
||||
<definedSymbol symbol="__DEC32_DEN__=0.000001E-95DF"/>
|
||||
<definedSymbol symbol="__DEC64_MANT_DIG__=16"/>
|
||||
<definedSymbol symbol="__DEC64_MIN_EXP__=(-383)"/>
|
||||
<definedSymbol symbol="__DEC64_MAX_EXP__=384"/>
|
||||
<definedSymbol symbol="__DEC64_MIN__=1E-383DD"/>
|
||||
<definedSymbol symbol="__DEC64_MAX__=9.999999999999999E384DD"/>
|
||||
<definedSymbol symbol="__DEC64_EPSILON__=1E-15DD"/>
|
||||
<definedSymbol symbol="__DEC64_DEN__=0.000000000000001E-383DD"/>
|
||||
<definedSymbol symbol="__DEC128_MANT_DIG__=34"/>
|
||||
<definedSymbol symbol="__DEC128_MIN_EXP__=(-6143)"/>
|
||||
<definedSymbol symbol="__DEC128_MAX_EXP__=6144"/>
|
||||
<definedSymbol symbol="__DEC128_MIN__=1E-6143DL"/>
|
||||
<definedSymbol symbol="__DEC128_MAX__=9.999999999999999999999999999999999E6144DL"/>
|
||||
<definedSymbol symbol="__DEC128_EPSILON__=1E-33DL"/>
|
||||
<definedSymbol symbol="__DEC128_DEN__=0.000000000000000000000000000000001E-6143DL"/>
|
||||
<definedSymbol symbol="__REGISTER_PREFIX__"/>
|
||||
<definedSymbol symbol="__USER_LABEL_PREFIX__"/>
|
||||
<definedSymbol symbol="__VERSION__="4.2.0 20070413 (prerelease)""/>
|
||||
<definedSymbol symbol="__VERSION__="4.1.1""/>
|
||||
<definedSymbol removed="true" symbol="__VERSION__="4.2.1""/>
|
||||
<definedSymbol symbol="__GNUC_GNU_INLINE__=1"/>
|
||||
<definedSymbol symbol="__NO_INLINE__=1"/>
|
||||
<definedSymbol symbol="__FINITE_MATH_ONLY__=0"/>
|
||||
<definedSymbol symbol="__CHAR_UNSIGNED__=1"/>
|
||||
<definedSymbol symbol="__arm__=1"/>
|
||||
<definedSymbol symbol="__APCS_32__=1"/>
|
||||
<definedSymbol symbol="__ARMEL__=1"/>
|
||||
<definedSymbol symbol="__SOFTFP__=1"/>
|
||||
<definedSymbol symbol="__VFP_FP__=1"/>
|
||||
<definedSymbol symbol="__THUMB_INTERWORK__=1"/>
|
||||
<definedSymbol symbol="__ARM_ARCH_4T__=1"/>
|
||||
<definedSymbol symbol="__ARM_EABI__=1"/>
|
||||
<definedSymbol symbol="__GXX_TYPEINFO_EQUALITY_INLINE=0"/>
|
||||
<definedSymbol symbol="__ELF__=1"/>
|
||||
<definedSymbol symbol="__USES_INITFINI__=1"/>
|
||||
<definedSymbol symbol="GCC_ARMCM3_LM3S102"/>
|
||||
<definedSymbol symbol="inline="/>
|
||||
<definedSymbol symbol="PACK_STRUCT_END=__attribute\(\(packed\)\)"/>
|
||||
<definedSymbol symbol="ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\)"/>
|
||||
<definedSymbol symbol="sprintf=usprintf"/>
|
||||
<definedSymbol removed="true" symbol="sprintf=xprintf"/>
|
||||
<definedSymbol removed="true" symbol="sprintf=xxprintf"/>
|
||||
<definedSymbol symbol="snprintf=usnprintf"/>
|
||||
<definedSymbol symbol="printf=uipprintf"/>
|
||||
<definedSymbol removed="true" symbol="printf=xprintf"/>
|
||||
<definedSymbol removed="true" symbol="printf=xxprintf"/>
|
||||
<definedSymbol symbol="__USING_SJLJ_EXCEPTIONS__=1"/>
|
||||
<definedSymbol symbol="__thumb__=1"/>
|
||||
<definedSymbol symbol="__THUMBEL__=1"/>
|
||||
<definedSymbol symbol="ROWLEY_LPC23xx"/>
|
||||
<definedSymbol symbol="THUMB_INTERWORK"/>
|
||||
<definedSymbol symbol="__OPTIMIZE__=1"/>
|
||||
<definedSymbol symbol="__OPTIMIZE_SIZE__=1"/>
|
||||
<definedSymbol symbol="SAM7_GCC"/>
|
||||
</collector>
|
||||
</instance>
|
||||
</scannerInfo>
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="org.eclipse.cdt.internal.ui.MakeView">
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<cHelpSettings>
|
||||
<project name="RTOSDemo"/>
|
||||
</cHelpSettings>
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<item value="1" key="org.eclipse.cdt.uiformatter_page.line_wrapping_tab_page.last_category_index"/>
|
||||
<item value="549" key="org.eclipse.cdt.uiformatter_pagemodify_dialog.preferred_height"/>
|
||||
<item value="138" key="org.eclipse.cdt.uiformatter_pagemodify_dialog.preferred_x"/>
|
||||
<item value="0" key="org.eclipse.cdt.uiformatter_pagemodify_dialog.preferred_y"/>
|
||||
<item value="645" key="org.eclipse.cdt.uiformatter_pagemodify_dialog.preferred_width"/>
|
||||
<section name="completion_proposal_size">
|
||||
</section>
|
||||
<section name="PDOMSearchPage">
|
||||
</section>
|
||||
</section>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
|
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
#Sun Aug 19 15:20:24 BST 2007
|
||||
eclipse.preferences.version=1
|
||||
indexer/preferenceScope=0
|
|
@ -0,0 +1,3 @@
|
|||
#Sun Aug 19 15:19:23 BST 2007
|
||||
org.eclipse.cdt.debug.core.cDebug.common_source_containers=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<sourceLookupDirector>\r\n<sourceContainers duplicates\="false"/>\r\n</sourceLookupDirector>\r\n
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,5 @@
|
|||
#Tue Oct 23 21:13:09 BST 2007
|
||||
pref_state_memento.org.eclipse.cdt.debug.ui.ModulesView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<ModulesViewMemento org.eclipse.cdt.debug.ui.SASH_DETAILS_PART\="570" org.eclipse.cdt.debug.ui.SASH_VIEW_PART\="429"/>
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.debug.ui.DebugView.org.eclipse.cdt.debug.ui.cDebug.show_full_paths=true
|
||||
org.eclipse.debug.ui.BreakpointView.org.eclipse.cdt.debug.ui.cDebug.show_full_paths=true
|
|
@ -0,0 +1,3 @@
|
|||
#Wed Nov 21 16:20:43 GMT 2007
|
||||
eclipse.preferences.version=1
|
||||
properties/RTOSDemo.null.976634949/0.1109417601=\#\r\n\#Wed Nov 21 16\:20\:43 GMT 2007\r\n0.1109417601\=\\\#\\r\\n\\\#Wed Nov 21 16\\\:20\\\:43 GMT 2007\\r\\nrcState\\\=0\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.build.core.settings.holder.1502006385\=\\\#\\r\\n\\\#Wed Nov 21 16\\\:20\\\:43 GMT 2007\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.build.core.settings.holder.1021181093\=\\\#\\r\\n\\\#Wed Nov 21 16\\\:20\\\:43 GMT 2007\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.build.core.settings.holder.164584712\=\\\#\\r\\n\\\#Wed Nov 21 16\\\:20\\\:43 GMT 2007\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.build.core.settings.holder.libs.260784574\=\\\#\\r\\n\\\#Wed Nov 21 16\\\:20\\\:43 GMT 2007\\r\\nrebuildState\\\=false\\r\\n\r\norg.eclipse.cdt.build.core.prefbase.toolchain.1816209921\=\\\#\\r\\n\\\#Wed Nov 21 16\\\:20\\\:43 GMT 2007\\r\\nrebuildState\\\=false\\r\\n\r\n
|
|
@ -0,0 +1,12 @@
|
|||
#Thu Aug 23 20:22:58 BST 2007
|
||||
useQuickDiffPrefPage=true
|
||||
closeBrackets=false
|
||||
ensureNewlineAtEOF=true
|
||||
useAnnotationsPrefPage=true
|
||||
closeAngularBrackets=false
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.cdt.ui.text.templates.custom=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
|
||||
hoverModifierMasks=org.eclipse.cdt.ui.BestMatchHover;0;org.eclipse.cdt.ui.CSourceHover;131072;org.eclipse.cdt.debug.internal.ui.editors.DebugTextHover;0;org.eclipse.cdt.ui.CDocHover;0;org.eclipse.cdt.ui.AnnotationHover;0;
|
||||
hoverModifiers=org.eclipse.cdt.ui.BestMatchHover;0;org.eclipse.cdt.ui.CSourceHover;Shift;org.eclipse.cdt.debug.internal.ui.editors.DebugTextHover;\!0;org.eclipse.cdt.ui.CDocHover;\!0;org.eclipse.cdt.ui.AnnotationHover;\!0;
|
||||
closeBraces=false
|
||||
closeStrings=false
|
|
@ -0,0 +1,5 @@
|
|||
#Fri Aug 31 14:25:00 BST 2007
|
||||
version=1
|
||||
eclipse.preferences.version=1
|
||||
pathvariable.FreeRTOS_ROOT=C\:/E/Dev/FreeRTOS
|
||||
description.autobuilding=false
|
|
@ -0,0 +1,3 @@
|
|||
#Sat Nov 17 13:34:58 GMT 2007
|
||||
prefWatchExpressions=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<watchExpressions/>\r\n
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,14 @@
|
|||
#Wed Nov 07 18:56:22 GMT 2007
|
||||
org.eclipse.debug.ui.PREF_FILTER_WORKING_SETS=false
|
||||
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<launchPerspectives/>\r\n
|
||||
org.eclipse.debug.ui.BreakpointView+org.eclipse.debug.ui.ShowSupportedBreakpointsAction=true
|
||||
pref_state_memento.org.eclipse.debug.ui.VariableView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="315" org.eclipse.debug.ui.SASH_VIEW_PART\="684"/>
|
||||
pref_state_memento.org.eclipse.debug.ui.RegisterView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="198" org.eclipse.debug.ui.SASH_VIEW_PART\="801"/>
|
||||
org.eclipse.debug.ui.memory.columnSize\:org.eclipse.cdt.debug.core=4
|
||||
pref_state_memento.org.eclipse.debug.ui.ExpressionView=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<VariablesViewMemento org.eclipse.debug.ui.SASH_DETAILS_PART\="315" org.eclipse.debug.ui.SASH_VIEW_PART\="684"/>
|
||||
org.eclipse.debug.ui.PREF_FILTER_LAUNCH_CLOSED=false
|
||||
preferredDetailPanes=DefaultDetailPane\:DefaultDetailPane|
|
||||
org.eclipse.debug.ui.PREF_FILTER_LAUNCH_DELETED=false
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.debug.ui.memory.rowSize\:org.eclipse.cdt.debug.core=16
|
||||
org.eclipse.debug.ui.user_view_bindings=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<viewBindings>\r\n<view id\="org.eclipse.debug.ui.ExpressionView">\r\n<perspective id\="org.eclipse.debug.ui.DebugPerspective" userAction\="opened"/>\r\n</view>\r\n</viewBindings>\r\n
|
|
@ -0,0 +1,7 @@
|
|||
#Sun Aug 26 17:32:13 BST 2007
|
||||
browser.x=177
|
||||
browser.w=1024
|
||||
eclipse.preferences.version=1
|
||||
browser.h=768
|
||||
browser.maximized=false
|
||||
browser.y=128
|
|
@ -0,0 +1,3 @@
|
|||
#Sun Aug 19 19:39:29 BST 2007
|
||||
org.eclipse.search.defaultPerspective=org.eclipse.search.defaultPerspective.none
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,3 @@
|
|||
#Fri Aug 31 18:19:04 BST 2007
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.team.ui.first_time=false
|
|
@ -0,0 +1,3 @@
|
|||
#Sun Aug 19 20:45:57 BST 2007
|
||||
eclipse.preferences.version=1
|
||||
overviewRuler_migration=migrated_3.1
|
|
@ -0,0 +1,4 @@
|
|||
#Tue Nov 06 22:57:01 GMT 2007
|
||||
eclipse.preferences.version=1
|
||||
tipsAndTricks=true
|
||||
platformState=1187207632259
|
|
@ -0,0 +1,3 @@
|
|||
#Sun Aug 19 20:45:58 BST 2007
|
||||
eclipse.preferences.version=1
|
||||
showIntro=false
|
|
@ -0,0 +1,3 @@
|
|||
#Mon Aug 20 21:59:49 BST 2007
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.ui.commands=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<org.eclipse.ui.commands>\r\n<keyBinding contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="CTRL+B"/>\r\n<keyBinding commandId\="org.eclipse.ui.project.buildAll" contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F7"/>\r\n<keyBinding contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F11"/>\r\n<keyBinding contextId\="org.eclipse.debug.ui.debugging" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F5"/>\r\n<keyBinding commandId\="org.eclipse.debug.ui.commands.StepInto" contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F11"/>\r\n<keyBinding contextId\="org.eclipse.debug.ui.debugging" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F6"/>\r\n<keyBinding commandId\="org.eclipse.debug.ui.commands.StepOver" contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F10"/>\r\n<keyBinding commandId\="org.eclipse.debug.ui.commands.DebugLast" contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="CTRL+D"/>\r\n<keyBinding contextId\="org.eclipse.ui.textEditorScope" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="CTRL+D"/>\r\n<keyBinding contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="CTRL+F11"/>\r\n<keyBinding commandId\="org.eclipse.debug.ui.commands.RunLast" contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F5"/>\r\n<keyBinding contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F5"/>\r\n<keyBinding contextId\="org.eclipse.ui.textEditorScope" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="CTRL+K"/>\r\n<keyBinding commandId\="org.eclipse.ui.edit.findNext" contextId\="org.eclipse.ui.contexts.window" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F3"/>\r\n<keyBinding contextId\="org.eclipse.cdt.make.ui.makefileEditorScope" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F3"/>\r\n<keyBinding contextId\="org.eclipse.cdt.ui.cEditorScope" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F3"/>\r\n<keyBinding contextId\="org.eclipse.cdt.ui.cViewScope" keyConfigurationId\="org.eclipse.ui.defaultAcceleratorConfiguration" keySequence\="F3"/>\r\n</org.eclipse.ui.commands>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
|
||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc}/../Common/drivers/OpenOCD/openocd-pp.exe"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="--file SAM7_flash.cfg"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc}"/>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
|
||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc}/../Common/drivers/OpenOCD/openocd-pp.exe"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="--file SAM7_pp.cfg"/>
|
||||
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc}"/>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.cdt.launch.localCLaunch">
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.mi.core.AUTO_SOLIB" value="true"/>
|
||||
<listAttribute key="org.eclipse.cdt.debug.mi.core.AUTO_SOLIB_LIST"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.DEBUG_NAME" value="gdb"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.DEV" value="/dev/ttyS0"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.DEV_SPEED" value="115200"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.GDB_INIT" value=".gdbinit"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.HOST" value="localhost"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.PORT" value="10000"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.mi.core.REMOTE_TCP" value="false"/>
|
||||
<listAttribute key="org.eclipse.cdt.debug.mi.core.SOLIB_PATH"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.mi.core.STOP_ON_SOLIB_EVENTS" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.commandFactory" value="org.eclipse.cdt.debug.mi.core.standardCommandFactory"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.protocol" value="mi"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.mi.core.verboseMode" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="org.eclipse.cdt.debug.mi.core.GDBServerCDebugger"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="RTOSDemo.elf"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="RTOSDemo"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.launch.use_terminal" value="true"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/RTOSDemo"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.cdt.debug.gdbjtag.launchConfigurationType">
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbremote.core.imageFileName" value="C:\E\Dev\FreeRTOS\Demo\CORTEX_LM3S8962_Eclipse\RTOSDemo\RTOSDemo.elf"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbremote.core.initCommands" value="target remote:3333 monitor sleep 500 monitor arm7_9 force_hw_bkpts enable monitor sleep 500 monitor soft_reset_halt delete monitor sleep 500 b main monitor sleep 500 c monitor sleep 500 delete "/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbremote.core.ipAddress" value="localhost"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbremote.core.loadImage" value="false"/>
|
||||
<intAttribute key="org.eclipse.cdt.debug.gdbremote.core.portNumber" value="3333"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.gdbremote.core.runCommands" value=""/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbremote.core.useRemoteTarget" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.DEBUG_NAME" value="arm-elf-gdb.exe"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.GDB_INIT" value=""/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.commandFactory" value="Standard"/>
|
||||
<stringAttribute key="org.eclipse.cdt.debug.mi.core.protocol" value="mi"/>
|
||||
<booleanAttribute key="org.eclipse.cdt.debug.mi.core.verboseMode" value="false"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <globalVariableList/> "/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList> <memoryBlockExpressionItem> <expression text="2107200"/> </memoryBlockExpressionItem> </memoryBlockExpressionList> "/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="RTOSDemo.elf"/>
|
||||
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="RTOSDemo"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/RTOSDemo"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,41 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="org.eclipse.debug.ui.STRING_VARIABLE_SELECTION_DIALOG_SECTION">
|
||||
<item value="326" key="DIALOG_WIDTH"/>
|
||||
<item value="-33" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value="309" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="530" key="DIALOG_HEIGHT"/>
|
||||
<item value="1|Tahoma|8.25|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma" key="DIALOG_FONT_NAME"/>
|
||||
</section>
|
||||
<section name="org.eclipse.debug.ui.LAUNCH_CONFIGURATIONS_DIALOG_SECTION">
|
||||
<item value="966" key="DIALOG_WIDTH"/>
|
||||
<item value="154" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value=", org.eclipse.ui.externaltools.ProgramLaunchConfigurationType, org.eclipse.cdt.debug.gdbjtag.launchConfigurationType, " key="org.eclipse.debug.ui.EXPANDED_NODES"/>
|
||||
<item value="274" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="640" key="DIALOG_HEIGHT"/>
|
||||
<item value="237" key="org.eclipse.debug.ui.DIALOG_SASH_WEIGHTS_1"/>
|
||||
<item value="762" key="org.eclipse.debug.ui.DIALOG_SASH_WEIGHTS_2"/>
|
||||
<item value="1|Tahoma|8.25|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma" key="DIALOG_FONT_NAME"/>
|
||||
</section>
|
||||
<section name="org.eclipse.debug.ui.SELECT_LAUNCH_SHORTCUT_DIALOG">
|
||||
<item value="450" key="DIALOG_WIDTH"/>
|
||||
<item value="215" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value="479" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="450" key="DIALOG_HEIGHT"/>
|
||||
<item value="1|Tahoma|8.25|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma" key="DIALOG_FONT_NAME"/>
|
||||
</section>
|
||||
<section name="org.eclipse.debug.ui.SELECT_CONFIGURATION_TYPE_DIALOG">
|
||||
<item value="300" key="DIALOG_WIDTH"/>
|
||||
<item value="46" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value="301" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="350" key="DIALOG_HEIGHT"/>
|
||||
<item value="1|Tahoma|8.25|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma" key="DIALOG_FONT_NAME"/>
|
||||
</section>
|
||||
<section name="FAVORITES_DIALOG_SECTION">
|
||||
<item value="227" key="DIALOG_WIDTH"/>
|
||||
<item value="360" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value="731" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="233" key="DIALOG_HEIGHT"/>
|
||||
<item value="1|Tahoma|8.25|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma" key="DIALOG_FONT_NAME"/>
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchHistory>
|
||||
<launchGroup id="org.eclipse.ui.externaltools.launchGroup">
|
||||
<mruHistory>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="OpenOCD Server.launch"/> "/>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="OpenOCD Programmer.launch"/> "/>
|
||||
</mruHistory>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.profile">
|
||||
<mruHistory/>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.debug">
|
||||
<mruHistory>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="RTOSDemo.launch"/> "/>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="RTOSDemo.elf.launch"/> "/>
|
||||
</mruHistory>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.run">
|
||||
<mruHistory>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="RTOSDemo.elf.launch"/> "/>
|
||||
</mruHistory>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
</launchHistory>
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
</section>
|
|
@ -0,0 +1,2 @@
|
|||
#Sun Aug 26 17:54:18 BST 2007
|
||||
__DEFAULT__=true
|
|
@ -0,0 +1,4 @@
|
|||
#Sun Aug 26 17:36:29 BST 2007
|
||||
__DEFAULT__=false
|
||||
org.eclipse.help.ui.localSearch.master=true
|
||||
expression=relative path
|
|
@ -0,0 +1,4 @@
|
|||
#Sun Aug 26 17:29:25 BST 2007
|
||||
__DEFAULT__=false
|
||||
org.eclipse.help.ui.localSearch.master=true
|
||||
expression=working set
|
|
@ -0,0 +1,4 @@
|
|||
#Sun Aug 26 17:54:21 BST 2007
|
||||
__DEFAULT__=false
|
||||
org.eclipse.help.ui.localSearch.master=true
|
||||
expression=working sets
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="RefactoringPropertyPage">
|
||||
<item value="true" key="org.eclipse.ltk.ui.refactoring.sortRefactorings"/>
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="">
|
||||
<item value="1000" key="org.eclipse.search.resultpage.limit"/>
|
||||
</section>
|
||||
<section name="DialogBounds_SearchDialog">
|
||||
<item value="519" key="DIALOG_WIDTH"/>
|
||||
<item value="259" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value="385" key="DIALOG_HEIGHT"/>
|
||||
<item value="445" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="1|Tahoma|8.25|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma" key="DIALOG_FONT_NAME"/>
|
||||
</section>
|
||||
<section name="Search">
|
||||
<list key="Search.processedPageIds">
|
||||
<item value="org.eclipse.search.internal.ui.text.TextSearchPage"/>
|
||||
<item value="org.eclipse.cdt.ui.pdomSearchPage"/>
|
||||
</list>
|
||||
<list key="Search.enabledPageIds">
|
||||
<item value="org.eclipse.search.internal.ui.text.TextSearchPage"/>
|
||||
<item value="org.eclipse.cdt.ui.pdomSearchPage"/>
|
||||
</list>
|
||||
</section>
|
||||
<section name="org.eclipse.search.text.FileSearchResultPage">
|
||||
<item value="1000" key="org.eclipse.search.resultpage.limit"/>
|
||||
</section>
|
||||
<section name="TextSearchPage">
|
||||
<item value="false" key="CASE_SENSITIVE"/>
|
||||
<item value="false" key="REG_EX_SEARCH"/>
|
||||
<item value="false" key="SEARCH_DERIVED"/>
|
||||
<item value="1" key="HISTORY_SIZE"/>
|
||||
<section name="HISTORY0">
|
||||
<item value="false" key="isRegExSearch"/>
|
||||
<item value="struct timer" key="textPattern"/>
|
||||
<item value="0" key="scope"/>
|
||||
<item value="true" key="ignoreCase"/>
|
||||
<list key="fileNamePatterns">
|
||||
<item value="*.c *.h"/>
|
||||
</list>
|
||||
<list key="workingSets">
|
||||
</list>
|
||||
</section>
|
||||
</section>
|
||||
<section name="SearchDialog.ScopePart">
|
||||
<item value="0" key="scope"/>
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="CheatSheetCategoryBasedSelectionDialog">
|
||||
<item value="326" key="DIALOG_WIDTH"/>
|
||||
<item value="154" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value="542" key="DIALOG_HEIGHT"/>
|
||||
<item value="541" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="1|Tahoma|8.25|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma" key="DIALOG_FONT_NAME"/>
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="ResourceNavigator">
|
||||
<item value="FreeRTOS_LM3S8962_Demo" key="ResourceWorkingSetFilter.STORE_WORKING_SET"/>
|
||||
<item value="1" key="ResourceViewer.STORE_SORT_TYPE"/>
|
||||
</section>
|
||||
<section name="org.eclipse.ui.views.task">
|
||||
</section>
|
||||
<section name="org.eclipse.ui.views.problem">
|
||||
</section>
|
||||
<section name="SaveAsDialogSettings">
|
||||
<item value="438" key="DIALOG_WIDTH"/>
|
||||
<item value="147" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value="625" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="553" key="DIALOG_HEIGHT"/>
|
||||
<item value="1|Tahoma|8.25|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma" key="DIALOG_FONT_NAME"/>
|
||||
</section>
|
||||
<section name="CleanDialogSettings">
|
||||
<item value="443" key="DIALOG_WIDTH"/>
|
||||
<item value="true" key="BUILD_NOW"/>
|
||||
<item value="251" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value="391" key="DIALOG_HEIGHT"/>
|
||||
<item value="479" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="false" key="TOGGLE_SELECTED"/>
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<item value="1024" key="introLaunchBar.location"/>
|
||||
</section>
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="org.eclipse.ui.texteditor.FindReplaceDialog_dialogBounds">
|
||||
<item value="243" key="DIALOG_WIDTH"/>
|
||||
<item value="209" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value="1044" key="DIALOG_X_ORIGIN"/>
|
||||
<item value="356" key="DIALOG_HEIGHT"/>
|
||||
<item value="1|Tahoma|8.25|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma" key="DIALOG_FONT_NAME"/>
|
||||
</section>
|
||||
<section name="org.eclipse.ui.texteditor.FindReplaceDialog">
|
||||
<item value="false" key="wrap"/>
|
||||
<item value="false" key="casesensitive"/>
|
||||
<item value="false" key="isRegEx"/>
|
||||
<item value="false" key="incremental"/>
|
||||
<item value="false" key="wholeword"/>
|
||||
<item value="xTaskCreate" key="selection"/>
|
||||
<list key="findhistory">
|
||||
<item value="xTaskCreate"/>
|
||||
<item value="stallsent"/>
|
||||
<item value="COUNT_MASK"/>
|
||||
<item value="QUEUE_LENGTH"/>
|
||||
<item value="uxQueueMessage"/>
|
||||
<item value="bktALLOWABLE_MARGIN"/>
|
||||
<item value="xAreBlockTimeTestTasksStillRunning"/>
|
||||
<item value="vProcessInput"/>
|
||||
</list>
|
||||
<list key="replacehistory">
|
||||
<item value="lEMACSend"/>
|
||||
<item value="partstNUM_LEDS"/>
|
||||
<item value="DESCRIPTORNUM"/>
|
||||
<item value="MAC_TXPRODUCEINDEX"/>
|
||||
<item value="MAC_TXDESCRIPTORNUMBER"/>
|
||||
<item value="MAC_TXSTATUS"/>
|
||||
<item value="MAC_TXDESCRIPTOR"/>
|
||||
<item value="MAC_RXDESCRIPTORNUMBER"/>
|
||||
</list>
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="WorkbenchPreferenceDialogSettings">
|
||||
<item value="146" key="DIALOG_Y_ORIGIN"/>
|
||||
<item value="269" key="DIALOG_X_ORIGIN"/>
|
||||
</section>
|
||||
<section name="org.eclipse.ui.preferences.keysPreferencePage">
|
||||
<item value="true" key="uncategorizedFilter"/>
|
||||
<item value="false" key="showAllField"/>
|
||||
<item value="true" key="internalFilter"/>
|
||||
<item value="true" key="actionSetFilter"/>
|
||||
</section>
|
||||
<section name="ImportExportAction">
|
||||
<item value="org.eclipse.ui.wizards.import.FileSystem" key="ImportExportPage.STORE_SELECTED_IMPORT_WIZARD_ID"/>
|
||||
<list key="ImportExportPage.STORE_EXPANDED_IMPORT_CATEGORIES">
|
||||
<item value="org.eclipse.ui.Basic"/>
|
||||
</list>
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,358 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<workbench progressCount="21" version="2.0">
|
||||
<workbenchAdvisor/>
|
||||
<window height="768" maximized="true" width="1024" x="66" y="69">
|
||||
<fastViewData fastViewLocation="1024"/>
|
||||
<perspectiveBar>
|
||||
<itemSize x="160"/>
|
||||
</perspectiveBar>
|
||||
<coolbarLayout locked="0">
|
||||
<coolItem id="group.file" itemType="typeGroupMarker"/>
|
||||
<coolItem id="org.eclipse.ui.workbench.file" itemType="typeToolBarContribution" x="130" y="22"/>
|
||||
<coolItem id="additions" itemType="typeGroupMarker"/>
|
||||
<coolItem id="org.eclipse.cdt.ui.CElementCreationActionSet" itemType="typeToolBarContribution" x="161" y="22"/>
|
||||
<coolItem id="org.eclipse.cdt.ui.buildConfigActionSet" itemType="typeToolBarContribution" x="85" y="22"/>
|
||||
<coolItem id="org.eclipse.debug.ui.launchActionSet" itemType="typeToolBarContribution" x="124" y="22"/>
|
||||
<coolItem id="org.eclipse.search.searchActionSet" itemType="typeToolBarContribution" x="61" y="22"/>
|
||||
<coolItem id="org.eclipse.ui.edit.text.actionSet.presentation" itemType="typeToolBarContribution" x="61" y="22"/>
|
||||
<coolItem id="group.nav" itemType="typeGroupMarker"/>
|
||||
<coolItem id="org.eclipse.ui.workbench.navigate" itemType="typeToolBarContribution" x="185" y="22"/>
|
||||
<coolItem id="group.editor" itemType="typeGroupMarker"/>
|
||||
<coolItem id="org.eclipse.cdt.ui.editor.asm.AsmEditor" itemType="typeToolBarContribution" x="-1" y="-1"/>
|
||||
<coolItem id="org.eclipse.ui.DefaultTextEditor" itemType="typePlaceholder" x="-1" y="-1"/>
|
||||
<coolItem id="org.eclipse.cdt.ui.editor.CEditor" itemType="typePlaceholder" x="-1" y="-1"/>
|
||||
<coolItem id="org.eclipse.cdt.make.editor" itemType="typeToolBarContribution" x="-1" y="-1"/>
|
||||
<coolItem id="group.help" itemType="typeGroupMarker"/>
|
||||
<coolItem id="org.eclipse.ui.workbench.help" itemType="typeToolBarContribution" x="-1" y="-1"/>
|
||||
</coolbarLayout>
|
||||
<page aggregateWorkingSetId="Aggregate for window 1188147282312" focus="true" label="Workspace - C/C++">
|
||||
<editors>
|
||||
<editorArea activeWorkbook="DefaultEditorWorkbook">
|
||||
<info part="DefaultEditorWorkbook">
|
||||
<folder appearance="1" expanded="2">
|
||||
<presentation id="org.eclipse.ui.internal.presentations.r33.WorkbenchPresentationFactory_33"/>
|
||||
</folder>
|
||||
</info>
|
||||
</editorArea>
|
||||
</editors>
|
||||
<views>
|
||||
<view id="org.eclipse.debug.ui.ExpressionView" partName="Expressions">
|
||||
<viewState/>
|
||||
</view>
|
||||
<view id="org.eclipse.ui.navigator.ProjectExplorer" partName="Project Explorer">
|
||||
<viewState CommonNavigator.LINKING_ENABLED="0" CommonNavigator.LINKING_ENABLED.delayed="0" org.eclipse.cdt.ui.cview.groupincludes="false" org.eclipse.cdt.ui.editor.CUChildren="true" org.eclipse.ui.navigator.resources.workingSets.showTopLevelWorkingSets="0"/>
|
||||
</view>
|
||||
<view id="org.eclipse.ui.views.PropertySheet" partName="Properties">
|
||||
<viewState/>
|
||||
</view>
|
||||
<view id="org.eclipse.search.ui.views.SearchView" partName="Search">
|
||||
<viewState isPinned="false">
|
||||
<view IMemento.internal.id="" org.eclipse.search.lastActivation="0"/>
|
||||
</viewState>
|
||||
</view>
|
||||
<view id="org.eclipse.ui.views.ResourceNavigator" partName="Navigator">
|
||||
<viewState LINK_NAVIGATOR_TO_EDITOR="0" sorter="1">
|
||||
<filters>
|
||||
<filter element=".*" isEnabled="false"/>
|
||||
<filter element="*.class" isEnabled="false"/>
|
||||
</filters>
|
||||
<expanded>
|
||||
<element path="/RTOSDemo"/>
|
||||
</expanded>
|
||||
<selection>
|
||||
<element path="/RTOSDemo/main.c"/>
|
||||
</selection>
|
||||
</viewState>
|
||||
</view>
|
||||
<view id="org.eclipse.debug.ui.DebugView" partName="Debug">
|
||||
<viewState/>
|
||||
</view>
|
||||
<view id="org.eclipse.ui.views.ProblemView" partName="Problems">
|
||||
<viewState columnWidth0="781" columnWidth1="78" columnWidth2="153" columnWidth3="63" columnWidth4="0" horizontalPosition="0" verticalPosition="0">
|
||||
<columnOrder columnOrderIndex="0"/>
|
||||
<columnOrder columnOrderIndex="1"/>
|
||||
<columnOrder columnOrderIndex="2"/>
|
||||
<columnOrder columnOrderIndex="3"/>
|
||||
<columnOrder columnOrderIndex="4"/>
|
||||
</viewState>
|
||||
</view>
|
||||
<view id="org.eclipse.ui.console.ConsoleView" partName="Console">
|
||||
<viewState/>
|
||||
</view>
|
||||
<view id="org.eclipse.debug.ui.BreakpointView" partName="Breakpoints">
|
||||
<viewState>
|
||||
<isTrackingSelection value="false"/>
|
||||
</viewState>
|
||||
</view>
|
||||
<view id="org.eclipse.debug.ui.VariableView" partName="Variables">
|
||||
<viewState/>
|
||||
</view>
|
||||
<view id="org.eclipse.ui.views.TaskList" partName="Tasks">
|
||||
<viewState columnWidth0="43" columnWidth1="19" columnWidth2="253" columnWidth3="78" columnWidth4="283" columnWidth5="63" columnWidth6="0" horizontalPosition="0" verticalPosition="0">
|
||||
<columnOrder columnOrderIndex="0"/>
|
||||
<columnOrder columnOrderIndex="1"/>
|
||||
<columnOrder columnOrderIndex="2"/>
|
||||
<columnOrder columnOrderIndex="3"/>
|
||||
<columnOrder columnOrderIndex="4"/>
|
||||
<columnOrder columnOrderIndex="5"/>
|
||||
<columnOrder columnOrderIndex="6"/>
|
||||
</viewState>
|
||||
</view>
|
||||
</views>
|
||||
<perspectives activePart="org.eclipse.ui.views.ResourceNavigator" activePerspective="org.eclipse.cdt.ui.CPerspective">
|
||||
<perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">
|
||||
<descriptor class="org.eclipse.cdt.internal.ui.CPerspectiveFactory" id="org.eclipse.cdt.ui.CPerspective" label="C/C++"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.cheatsheets.actionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.search.searchActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.annotationNavigation"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.navigation"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.externaltools.ExternalToolsSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.actionSet.keyBindings"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.WorkingSetActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.actionSet.openFiles"/>
|
||||
<alwaysOnActionSet id="org.eclipse.update.ui.softwareUpdates"/>
|
||||
<alwaysOnActionSet id="org.eclipse.cdt.ui.SearchActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.cdt.ui.CElementCreationActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.NavigateActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.debug.ui.breakpointActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.cdt.make.ui.makeTargetActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.cdt.ui.CodingActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.debug.ui.launchActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.cdt.ui.buildConfigActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.cdt.ui.NavigationActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.cdt.ui.OpenActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.presentation"/>
|
||||
<show_view_action id="org.eclipse.ui.console.ConsoleView"/>
|
||||
<show_view_action id="org.eclipse.search.ui.views.SearchView"/>
|
||||
<show_view_action id="org.eclipse.ui.views.ContentOutline"/>
|
||||
<show_view_action id="org.eclipse.ui.views.ProblemView"/>
|
||||
<show_view_action id="org.eclipse.cdt.ui.CView"/>
|
||||
<show_view_action id="org.eclipse.ui.views.ResourceNavigator"/>
|
||||
<show_view_action id="org.eclipse.ui.views.PropertySheet"/>
|
||||
<show_view_action id="org.eclipse.ui.views.TaskList"/>
|
||||
<show_view_action id="org.eclipse.cdt.make.ui.views.MakeView"/>
|
||||
<show_view_action id="org.eclipse.ui.navigator.ProjectExplorer"/>
|
||||
<show_view_action id="org.eclipse.cdt.ui.includeBrowser"/>
|
||||
<show_in_time id="org.eclipse.ui.views.ResourceNavigator" time="1187629972828"/>
|
||||
<new_wizard_action id="org.eclipse.cdt.ui.wizards.ConvertToMakeWizard"/>
|
||||
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewCWizard2"/>
|
||||
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewCWizard1"/>
|
||||
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewSourceFolderCreationWizard"/>
|
||||
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewFolderCreationWizard"/>
|
||||
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewSourceFileCreationWizard"/>
|
||||
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewHeaderFileCreationWizard"/>
|
||||
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewFileCreationWizard"/>
|
||||
<new_wizard_action id="org.eclipse.cdt.ui.wizards.NewClassCreationWizard"/>
|
||||
<perspective_action id="org.eclipse.debug.ui.DebugPerspective"/>
|
||||
<perspective_action id="org.eclipse.team.ui.TeamSynchronizingPerspective"/>
|
||||
<view id="org.eclipse.ui.navigator.ProjectExplorer"/>
|
||||
<view id="org.eclipse.ui.views.ResourceNavigator"/>
|
||||
<view id="org.eclipse.ui.views.ProblemView"/>
|
||||
<view id="org.eclipse.ui.views.TaskList"/>
|
||||
<view id="org.eclipse.ui.console.ConsoleView"/>
|
||||
<view id="org.eclipse.ui.views.PropertySheet"/>
|
||||
<view id="org.eclipse.search.ui.views.SearchView"/>
|
||||
<fastViewBars/>
|
||||
<layout>
|
||||
<mainWindow>
|
||||
<info folder="true" part="topLeft">
|
||||
<folder activePageID="org.eclipse.ui.views.ResourceNavigator" appearance="2" expanded="2">
|
||||
<page content="org.eclipse.ui.navigator.ProjectExplorer" label="Project Explorer"/>
|
||||
<page content="org.eclipse.ui.views.ResourceNavigator" label="Navigator"/>
|
||||
<page content="org.eclipse.cdt.ui.CView" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.views.BookmarkView" label="LabelNotFound"/>
|
||||
<presentation id="org.eclipse.ui.internal.presentations.r33.WorkbenchPresentationFactory_33">
|
||||
<part id="0"/>
|
||||
<part id="1"/>
|
||||
</presentation>
|
||||
</folder>
|
||||
</info>
|
||||
<info folder="true" part="org.eclipse.ui.internal.ViewStack@b4d39c" ratio="0.75" ratioLeft="756" ratioRight="252" relationship="2" relative="topLeft">
|
||||
<folder appearance="2" expanded="2">
|
||||
<page content="org.eclipse.help.ui.HelpView" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.internal.introview" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.cheatsheets.views.CheatSheetView" label="LabelNotFound"/>
|
||||
<presentation id="org.eclipse.ui.internal.presentations.r33.WorkbenchPresentationFactory_33"/>
|
||||
</folder>
|
||||
</info>
|
||||
<info part="org.eclipse.ui.editorss" ratio="0.19510439" ratioLeft="271" ratioRight="1118" relationship="2" relative="topLeft"/>
|
||||
<info folder="true" part="bottom" ratio="0.5195652" ratioLeft="478" ratioRight="442" relationship="4" relative="org.eclipse.ui.editorss">
|
||||
<folder activePageID="org.eclipse.ui.console.ConsoleView" appearance="2" expanded="2">
|
||||
<page content="org.eclipse.ui.views.ProblemView" label="Problems"/>
|
||||
<page content="org.eclipse.ui.views.TaskList" label="Tasks"/>
|
||||
<page content="org.eclipse.ui.console.ConsoleView" label="Console"/>
|
||||
<page content="org.eclipse.ui.views.PropertySheet" label="Properties"/>
|
||||
<page content="org.eclipse.search.ui.views.SearchView" label="Search"/>
|
||||
<presentation id="org.eclipse.ui.internal.presentations.r33.WorkbenchPresentationFactory_33">
|
||||
<part id="0"/>
|
||||
<part id="1"/>
|
||||
<part id="2"/>
|
||||
<part id="3"/>
|
||||
<part id="4"/>
|
||||
</presentation>
|
||||
</folder>
|
||||
</info>
|
||||
<info folder="true" part="topRight" ratio="0.75" ratioLeft="567" ratioRight="189" relationship="2" relative="org.eclipse.ui.editorss">
|
||||
<folder appearance="2" expanded="2">
|
||||
<page content="org.eclipse.ui.views.ContentOutline" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.cdt.make.ui.views.MakeView" label="LabelNotFound"/>
|
||||
<presentation id="org.eclipse.ui.internal.presentations.r33.WorkbenchPresentationFactory_33"/>
|
||||
</folder>
|
||||
</info>
|
||||
</mainWindow>
|
||||
</layout>
|
||||
</perspective>
|
||||
<perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">
|
||||
<descriptor class="org.eclipse.debug.internal.ui.DebugPerspectiveFactory" id="org.eclipse.debug.ui.DebugPerspective" label="Debug"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.cheatsheets.actionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.search.searchActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.annotationNavigation"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.navigation"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.externaltools.ExternalToolsSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.actionSet.keyBindings"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.WorkingSetActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.actionSet.openFiles"/>
|
||||
<alwaysOnActionSet id="org.eclipse.update.ui.softwareUpdates"/>
|
||||
<alwaysOnActionSet id="org.eclipse.debug.ui.launchActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.cdt.debug.ui.debugActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.NavigateActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.debug.ui.breakpointActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.jdt.debug.ui.JDTDebugActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.jdt.ui.JavaActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.debug.ui.debugActionSet"/>
|
||||
<show_view_action id="org.eclipse.debug.ui.DebugView"/>
|
||||
<show_view_action id="org.eclipse.debug.ui.VariableView"/>
|
||||
<show_view_action id="org.eclipse.debug.ui.BreakpointView"/>
|
||||
<show_view_action id="org.eclipse.debug.ui.ExpressionView"/>
|
||||
<show_view_action id="org.eclipse.ui.views.ContentOutline"/>
|
||||
<show_view_action id="org.eclipse.ui.console.ConsoleView"/>
|
||||
<show_view_action id="org.eclipse.ui.views.TaskList"/>
|
||||
<show_view_action id="org.eclipse.cdt.debug.ui.SignalsView"/>
|
||||
<show_view_action id="org.eclipse.debug.ui.RegisterView"/>
|
||||
<show_view_action id="org.eclipse.debug.ui.MemoryView"/>
|
||||
<show_view_action id="org.eclipse.cdt.debug.ui.DisassemblyView"/>
|
||||
<show_view_action id="org.eclipse.cdt.debug.ui.ModulesView"/>
|
||||
<show_view_action id="org.eclipse.ui.views.ProblemView"/>
|
||||
<perspective_action id="org.eclipse.cdt.ui.CPerspective"/>
|
||||
<view id="org.eclipse.ui.console.ConsoleView"/>
|
||||
<view id="org.eclipse.ui.views.TaskList"/>
|
||||
<view id="org.eclipse.ui.views.ProblemView"/>
|
||||
<view id="org.eclipse.debug.ui.DebugView"/>
|
||||
<view id="org.eclipse.debug.ui.VariableView"/>
|
||||
<view id="org.eclipse.debug.ui.BreakpointView"/>
|
||||
<view id="org.eclipse.debug.ui.ExpressionView"/>
|
||||
<fastViewBars/>
|
||||
<layout>
<mainWindow>
<info folder="true" part="org.eclipse.debug.internal.ui.NavigatorFolderView">
<folder activePageID="org.eclipse.debug.ui.DebugView" appearance="2" expanded="2">
<page content="org.eclipse.debug.ui.DebugView" label="Debug"/>
|
||||
<page content="org.eclipse.ui.views.ResourceNavigator" label="LabelNotFound"/>
|
||||
<presentation id="org.eclipse.ui.internal.presentations.r33.WorkbenchPresentationFactory_33">
<part id="0"/>
|
||||
</presentation>
|
||||
</folder>
|
||||
</info>
|
||||
<info folder="true" part="stickyFolderRight" ratio="0.75" ratioLeft="1044" ratioRight="348" relationship="2" relative="org.eclipse.debug.internal.ui.NavigatorFolderView">
<folder appearance="2" expanded="2">
<page content="org.eclipse.help.ui.HelpView" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.internal.introview" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.cheatsheets.views.CheatSheetView" label="LabelNotFound"/>
|
||||
</folder>
|
||||
</info>
|
||||
<info folder="true" part="org.eclipse.debug.internal.ui.ConsoleFolderView" ratio="0.773913" ratioLeft="712" ratioRight="208" relationship="4" relative="org.eclipse.debug.internal.ui.NavigatorFolderView">
<folder activePageID="org.eclipse.ui.console.ConsoleView" appearance="2" expanded="2">
<page content="org.eclipse.ui.console.ConsoleView" label="Console"/>
|
||||
<page content="org.eclipse.ui.views.TaskList" label="Tasks"/>
|
||||
<page content="org.eclipse.ui.views.ProblemView" label="Problems"/>
|
||||
<page content="org.eclipse.debug.ui.MemoryView" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.views.BookmarkView" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.views.PropertySheet" label="LabelNotFound"/>
|
||||
<presentation id="org.eclipse.ui.internal.presentations.r33.WorkbenchPresentationFactory_33">
<part id="0"/>
|
||||
<part id="1"/>
|
||||
<part id="2"/>
|
||||
</presentation>
|
||||
</folder>
|
||||
</info>
|
||||
<info part="org.eclipse.ui.editorss" ratio="0.370945" ratioLeft="263" ratioRight="446" relationship="4" relative="org.eclipse.debug.internal.ui.NavigatorFolderView"/>
|
||||
<info folder="true" part="org.eclipse.debug.internal.ui.OutlineFolderView" ratio="0.475162" ratioLeft="660" ratioRight="729" relationship="2" relative="org.eclipse.ui.editorss">
<folder appearance="2" expanded="2">
<page content="org.eclipse.cdt.debug.ui.DisassemblyView" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.views.ContentOutline" label="LabelNotFound"/>
|
||||
<presentation id="org.eclipse.ui.internal.presentations.r33.WorkbenchPresentationFactory_33"/>
|
||||
</folder>
|
||||
</info>
|
||||
<info folder="true" part="org.eclipse.debug.internal.ui.ToolsFolderView" ratio="0.49964002" ratioLeft="694" ratioRight="695" relationship="2" relative="org.eclipse.debug.internal.ui.NavigatorFolderView">
<folder activePageID="org.eclipse.debug.ui.BreakpointView" appearance="2" expanded="2">
<page content="org.eclipse.debug.ui.VariableView" label="Variables"/>
|
||||
<page content="org.eclipse.debug.ui.BreakpointView" label="Breakpoints"/>
|
||||
<page content="org.eclipse.debug.ui.ExpressionView" label="Expressions"/>
|
||||
<page content="org.eclipse.debug.ui.RegisterView" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.cdt.debug.ui.ModulesView" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.cdt.debug.ui.SignalsView" label="LabelNotFound"/>
|
||||
<presentation id="org.eclipse.ui.internal.presentations.r33.WorkbenchPresentationFactory_33">
<part id="0"/>
|
||||
<part id="1"/>
|
||||
<part id="2"/>
|
||||
</presentation>
|
||||
</folder>
|
||||
</info>
|
||||
</mainWindow>
|
||||
</layout>
|
||||
</perspective>
|
||||
</perspectives>
|
||||
<workingSets>
|
||||
<workingSet IMemento.internal.id="FreeRTOS_LM3S8962_Demo"/>
|
||||
</workingSets>
|
||||
<navigationHistory/>
|
||||
<input factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/" type="8"/>
|
||||
</page>
|
||||
<workbenchWindowAdvisor/>
|
||||
<actionBarAdvisor/>
|
||||
<trimLayout>
|
||||
<trimArea IMemento.internal.id="128">
|
||||
<trimItem IMemento.internal.id="org.eclipse.ui.internal.WorkbenchWindow.topBar"/>
|
||||
</trimArea>
|
||||
<trimArea IMemento.internal.id="1024">
|
||||
<trimItem IMemento.internal.id="org.eclise.ui.internal.FastViewBar"/>
|
||||
<trimItem IMemento.internal.id="org.eclipse.jface.action.StatusLineManager"/>
|
||||
<trimItem IMemento.internal.id="org.eclipse.ui.internal.progress.ProgressRegion"/>
|
||||
</trimArea>
|
||||
</trimLayout>
|
||||
</window>
|
||||
<mruList>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="tasks.c" tooltip="RTOSDemo/FreeRTOS.org Source/tasks.c">
|
||||
<persistable path="/RTOSDemo/FreeRTOS.org Source/tasks.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="main.c" tooltip="RTOSDemo/main.c">
|
||||
<persistable path="/RTOSDemo/main.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="USB_ISR.c" tooltip="RTOSDemo/USB/USB_ISR.c">
|
||||
<persistable path="/RTOSDemo/USB/USB_ISR.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="USBSample.c" tooltip="RTOSDemo/USB/USBSample.c">
|
||||
<persistable path="/RTOSDemo/USB/USBSample.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="queue.c" tooltip="RTOSDemo/FreeRTOS.org Source/queue.c">
|
||||
<persistable path="/RTOSDemo/FreeRTOS.org Source/queue.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.make.editor" name="Makefile" tooltip="RTOSDemo/Makefile">
|
||||
<persistable path="/RTOSDemo/Makefile"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="blocktim.c" tooltip="RTOSDemo/Common Demo Files/Minimal/blocktim.c">
|
||||
<persistable path="/RTOSDemo/Common Demo Files/Minimal/blocktim.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="QPeek.c" tooltip="RTOSDemo/Common Demo Files/Minimal/QPeek.c">
|
||||
<persistable path="/RTOSDemo/Common Demo Files/Minimal/QPeek.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="GenQTest.c" tooltip="RTOSDemo/Common Demo Files/Minimal/GenQTest.c">
|
||||
<persistable path="/RTOSDemo/Common Demo Files/Minimal/GenQTest.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="dynamic.c" tooltip="RTOSDemo/Common Demo Files/Minimal/dynamic.c">
|
||||
<persistable path="/RTOSDemo/Common Demo Files/Minimal/dynamic.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="BlockQ.c" tooltip="RTOSDemo/Common Demo Files/Minimal/BlockQ.c">
|
||||
<persistable path="/RTOSDemo/Common Demo Files/Minimal/BlockQ.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="ParTest.c" tooltip="RTOSDemo/ParTest/ParTest.c">
|
||||
<persistable path="/RTOSDemo/ParTest/ParTest.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="FreeRTOSConfig.h" tooltip="RTOSDemo/FreeRTOSConfig.h">
|
||||
<persistable path="/RTOSDemo/FreeRTOSConfig.h"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="httpd.c" tooltip="RTOSDemo/webserver/httpd.c">
|
||||
<persistable path="/RTOSDemo/webserver/httpd.c"/>
|
||||
</file>
|
||||
<file factoryID="org.eclipse.ui.part.FileEditorInputFactory" id="org.eclipse.cdt.ui.editor.CEditor" name="portmacro.h" tooltip="RTOSDemo/FreeRTOS.org Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h">
|
||||
<persistable path="/RTOSDemo/FreeRTOS.org Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h"/>
|
||||
</file>
|
||||
</mruList>
|
||||
</workbench>
|
|
@ -0,0 +1,64 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<workingSetManager>
|
||||
<workingSet editPageId="org.eclipse.cdt.ui.CElementWorkingSetPage" factoryID="org.eclipse.ui.internal.WorkingSetFactory" label="FreeRTOS_LM3S8962_Demo" name="FreeRTOS_LM3S8962_Demo">
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/webserver/httpd-fs.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/timer.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip_arp.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uiplib.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/FreeRTOS.org Source/queue.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uipopt.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip-split.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/Minimal/dynamic.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/psock.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip-fw.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/webserver/httpd-fsdata.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip-neighbor.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/FreeRTOS.org Source/include" type="2"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/webserver/httpd-fs" type="2"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/timer.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/ParTest/ParTest.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/Minimal/QPeek.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/FreeRTOS.org Source/portable/MemMang/heap_2.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/main.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/Minimal/flash.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/FreeRTOS.org Source/portable/GCC/ARM7_AT91SAM7S/lib_AT91SAM7X256.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/webserver/EMAC_ISR.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/FreeRTOS.org Source/list.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/clock.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/lc.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/FreeRTOS.org Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/USB/USB_ISR.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/webserver/httpd-cgi.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/webserver/uIP_Task.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/FreeRTOS.org Source/portable/GCC/ARM7_AT91SAM7S/portISR.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/webserver/SAM7_EMAC.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/Minimal/BlockQ.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/FreeRTOS.org Source/portable/GCC/ARM7_AT91SAM7S/port.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/psock.h" type="1"/>
|
||||
<item factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/RTOSDemo/Makefile" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip-neighbor.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/FreeRTOSConfig.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/lc-switch.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/Minimal/GenQTest.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/FreeRTOS.org Source/tasks.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip-fw.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uiplib.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/lc-addrlabels.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip-split.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/webserver/httpd.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/USB/USBSample.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/boot.s" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/Minimal/blocktim.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/webserver/http-strings.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip_arch.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/uip_arp.c" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/ethernet/uIP/uip-1.0/uip/pt.h" type="1"/>
|
||||
<item factoryID="org.eclipse.cdt.ui.PersistableCElementFactory" path="/RTOSDemo/Common Demo Files/include" type="2"/>
|
||||
</workingSet>
|
||||
<workingSet aggregate="true" factoryID="org.eclipse.ui.internal.WorkingSetFactory" label="Window Working Set" name="Aggregate for window 1188147282312">
|
||||
<workingSet IMemento.internal.id="FreeRTOS_LM3S8962_Demo"/>
|
||||
</workingSet>
|
||||
<mruList name="FreeRTOS_LM3S8962_Demo"/>
|
||||
</workingSetManager>
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="FileSystemImportWizard">
|
||||
<item value="false" key="WizardFileSystemResourceImportPage1.STORE_OVERWRITE_EXISTING_RESOURCES_ID"/>
|
||||
<item value="false" key="WizardFileSystemResourceImportPage1.STORE_CREATE_CONTAINER_STRUCTURE_ID"/>
|
||||
<list key="WizardFileSystemResourceImportPage1.STORE_SOURCE_NAMES_ID">
|
||||
<item value="C:\E\Dev\FreeRTOS\Demo\CORTEX_LM3S8962_Eclipse"/>
|
||||
</list>
|
||||
</section>
|
||||
</section>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue