Add Rowley CrossFire LPC2138 demo files.
This commit is contained in:
88
Demo/ARM7_LPC2138_Rowley/FreeRTOSConfig.h
Normal file
88
Demo/ARM7_LPC2138_Rowley/FreeRTOSConfig.h
Normal file
@ -0,0 +1,88 @@
|
||||
/*
|
||||
FreeRTOS.org V4.0.5 - Copyright (C) 2003-2006 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.
|
||||
***************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef FREERTOS_CONFIG_H
|
||||
#define FREERTOS_CONFIG_H
|
||||
|
||||
#include <LPC2138.h>
|
||||
#define vPortYieldProcessor swi_handler
|
||||
|
||||
/* For compatability with the LPC2106 header. */
|
||||
#define T0_IR T0IR
|
||||
#define T0_PR T0PR
|
||||
#define T0_MR0 T0MR0
|
||||
#define T0_MCR T0MCR
|
||||
#define T0_TCR T0TCR
|
||||
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* 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
|
||||
/* In this case configCPU_CLOCK_HZ is actually set to the pclk frequency, not
|
||||
the CPU frequency. */
|
||||
#define configCPU_CLOCK_HZ ( 58982400UL ) /* =14.7456MHz xtal multiplied by 4 using the PLL. */
|
||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 6 )
|
||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 128 )
|
||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 18 * 1024 ) )
|
||||
#define configMAX_TASK_NAME_LEN ( 15 )
|
||||
#define configUSE_TRACE_FACILITY 1
|
||||
#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 */
|
54
Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzp
Normal file
54
Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzp
Normal file
@ -0,0 +1,54 @@
|
||||
<!DOCTYPE CrossStudio_Project_File>
|
||||
<solution version="1" Name="RTOSDemo" >
|
||||
<project Name="RTOSDemo" >
|
||||
<configuration arm_target_loader_parameter="14745600" Target="LPC2138" arm_simulator_memory_simulation_parameter="LPC21;0x80000;0x10000" property_groups_file_path="$(StudioDir)/targets/Philips_LPC210X/propertyGroups.xml" oscillator_frequency="14.7456MHz" linker_memory_map_file="$(StudioDir)/targets/Philips_LPC210X/Philips_LPC2138_MemoryMap.xml" gcc_entry_point="reset_handler" arm_architecture="v4T" linker_additional_files="$(StudioDir)/lib/liblpc2000$(LibExt)$(LIB)" project_directory="" link_include_startup_code="No" project_type="Executable" Name="Common" arm_target_debug_interface_type="ARM7TDI" arm_core_type="ARM7TDMI-S" arm_simulator_memory_simulation_filename="$(StudioDir)/targets/Philips_LPC210X/LPC2000SimulatorMemory.dll" />
|
||||
<configuration linker_section_placement_file="$(StudioDir)/targets/sram_placement.xml" target_reset_script="SRAMReset()" Name="RAM" Placement="RAM" />
|
||||
<configuration arm_target_flash_loader_file_path="$(StudioDir)/targets/Philips_LPC210X/Release/Loader.elf" linker_section_placement_file="$(StudioDir)/targets/flash_placement.xml" target_reset_script="FLASHReset()" arm_target_flash_loader_type="Comms Channel Loader" Name="Flash" Placement="Flash" />
|
||||
<folder Name="Source Files" >
|
||||
<configuration filter="c;cpp;cxx;cc;h;s;asm;inc" Name="Common" />
|
||||
<folder Name="RTOS Source" >
|
||||
<file file_name="../../Source/tasks.c" Name="tasks.c" >
|
||||
<configuration build_exclude_from_build="No" Name="THUMB Flash Debug" />
|
||||
</file>
|
||||
<file file_name="../../Source/list.c" Name="list.c" />
|
||||
<file file_name="../../Source/queue.c" Name="queue.c" />
|
||||
<file file_name="../../Source/portable/MemMang/heap_1.c" Name="heap_1.c" />
|
||||
<file file_name="../../Source/portable/GCC/ARM7_LPC2000/portISR.c" Name="portISR.c" >
|
||||
<configuration arm_instruction_set="ARM" Name="THUMB" />
|
||||
</file>
|
||||
<file file_name="../../Source/portable/GCC/ARM7_LPC2000/port.c" Name="port.c" />
|
||||
</folder>
|
||||
<folder Name="Demo Source" >
|
||||
<file file_name="main.c" Name="main.c" />
|
||||
<file file_name="../Common/Minimal/PollQ.c" Name="PollQ.c" />
|
||||
<file file_name="../Common/Minimal/BlockQ.c" Name="BlockQ.c" />
|
||||
<file file_name="../Common/Minimal/death.c" Name="death.c" />
|
||||
<file file_name="../Common/Minimal/dynamic.c" Name="dynamic.c" />
|
||||
<file file_name="../Common/Minimal/integer.c" Name="integer.c" />
|
||||
<file file_name="../Common/Minimal/semtest.c" Name="semtest.c" />
|
||||
<file file_name="mainISR.c" Name="mainISR.c" >
|
||||
<configuration arm_instruction_set="ARM" Name="THUMB" />
|
||||
</file>
|
||||
<file file_name="../Common/Minimal/blocktim.c" Name="blocktim.c" />
|
||||
</folder>
|
||||
</folder>
|
||||
<folder Name="System Files" >
|
||||
<file file_name="$(StudioDir)/source/crt0.s" Name="crt0.s" />
|
||||
<file file_name="$(StudioDir)/targets/Philips_LPC210X/Philips_LPC210X_Startup.s" Name="Philips_LPC210X_Startup.s" />
|
||||
<file file_name="$(StudioDir)/targets/Philips_LPC210X/Philips_LPC210X_Target.js" Name="Philips_LPC210X_Target.js" >
|
||||
<configuration Name="Common" file_type="Reset Script" />
|
||||
</file>
|
||||
</folder>
|
||||
<file file_name="threads.js" Name="threads.js" />
|
||||
</project>
|
||||
<configuration inherited_configurations="ARM;Flash;Debug" Name="ARM Flash Debug" />
|
||||
<configuration arm_library_instruction_set="ARM" c_preprocessor_definitions="__ARM" arm_instruction_set="ARM" hidden="Yes" Name="ARM" />
|
||||
<configuration c_preprocessor_definitions="__FLASH_BUILD" hidden="Yes" Name="Flash" />
|
||||
<configuration c_preprocessor_definitions="DEBUG" link_include_startup_code="No" gcc_optimization_level="None" build_debug_information="Yes" hidden="Yes" Name="Debug" />
|
||||
<configuration inherited_configurations="ARM;Flash;Release" Name="ARM Flash Release" />
|
||||
<configuration c_preprocessor_definitions="NDEBUG" link_include_startup_code="No" gcc_optimization_level="Level 1" build_debug_information="No" hidden="Yes" Name="Release" />
|
||||
<configuration inherited_configurations="THUMB;Flash;Debug" Name="THUMB Flash Debug" />
|
||||
<configuration arm_library_instruction_set="THUMB" c_preprocessor_definitions="__THUMB;THUMB_INTERWORK" arm_instruction_set="THUMB" hidden="Yes" Name="THUMB" />
|
||||
<configuration inherited_configurations="THUMB;Flash;Release" Name="THUMB Flash Release" />
|
||||
<configuration c_preprocessor_definitions="GCC_ARM7;SUPERVISOR_START;VECTORED_IRQ_INTERRUPTS" c_user_include_directories=".;..\\..\\Source\\include;..\\..\\Source\\GCC\\ARM7_LPC2000;..\\Common\\Include" Name="Common" c_system_include_directories="$(StudioDir)/include;$(StudioDir)/include/targets" />
|
||||
</solution>
|
84
Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzs
Normal file
84
Demo/ARM7_LPC2138_Rowley/RTOSDemo.hzs
Normal file
@ -0,0 +1,84 @@
|
||||
<!DOCTYPE CrossStudio_for_ARM_Session_File>
|
||||
<session>
|
||||
<Autos>
|
||||
<Watches active="0" />
|
||||
</Autos>
|
||||
<Bookmarks/>
|
||||
<Breakpoints>
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="144" length="0" triggertype="0" useHWbreakpoint="false" group="Breakpoints" breakdatatype="0" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="" filename="C:\E\Dev\_FreeRTOS\Demo\ARM7_LPC2138_Rowley\main.c" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="ARM Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="D_Abort" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="ARM Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="3" mask="0" comparison="0" expression="FIQ" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="ARM Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="3" mask="0" comparison="0" expression="IRQ" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="ARM Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="P_Abort" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="ARM Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="3" mask="0" comparison="0" expression="Reset" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="ARM Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="3" mask="0" comparison="0" expression="SWI" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="ARM Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="Undef" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="Cortex-M3 Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="BusFault" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="Cortex-M3 Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="ExceptionEntryReturnFault" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="Cortex-M3 Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="HardFault" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="Cortex-M3 Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="MemManage" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="Cortex-M3 Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="3" mask="0" comparison="0" expression="Reset" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="Cortex-M3 Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="UsageFault_CheckingError" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="Cortex-M3 Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="UsageFault_Coprocessor" filename="" />
|
||||
<BreakpointListItem actiontype="0" chainFrom="" line="-1" length="0" triggertype="0" useHWbreakpoint="false" group="Cortex-M3 Exceptions" breakdatatype="5" value="0" name="unnamed" counter="0" state="2" mask="0" comparison="0" expression="UsageFault_StateError" filename="" />
|
||||
</Breakpoints>
|
||||
<ExecutionCountWindow/>
|
||||
<Memory1>
|
||||
<MemoryWindow autoEvaluate="0" addressText="0x102248" numColumns="8" sizeText="128" dataSize="1" radix="16" addressSpace="" />
|
||||
</Memory1>
|
||||
<Memory2>
|
||||
<MemoryWindow autoEvaluate="0" addressText="" numColumns="8" sizeText="" dataSize="1" radix="16" addressSpace="" />
|
||||
</Memory2>
|
||||
<Memory3>
|
||||
<MemoryWindow autoEvaluate="0" addressText="" numColumns="8" sizeText="" dataSize="1" radix="16" addressSpace="" />
|
||||
</Memory3>
|
||||
<Memory4>
|
||||
<MemoryWindow autoEvaluate="0" addressText="" numColumns="8" sizeText="" dataSize="1" radix="16" addressSpace="" />
|
||||
</Memory4>
|
||||
<Project>
|
||||
<ProjectSessionItem path="RTOSDemo" name="unnamed" />
|
||||
<ProjectSessionItem path="RTOSDemo;RTOSDemo" name="unnamed" />
|
||||
<ProjectSessionItem path="RTOSDemo;RTOSDemo;Source Files" name="unnamed" />
|
||||
<ProjectSessionItem path="RTOSDemo;RTOSDemo;Source Files;RTOS Source" name="unnamed" />
|
||||
</Project>
|
||||
<Register1>
|
||||
<RegisterWindow unsignedDisplays="" asciiDisplays="" octalDisplays="" openGroups="CPU - Current Mode" visibleGroups="CPU - Current Mode" decimalDisplays="" binaryDisplays="" />
|
||||
</Register1>
|
||||
<Register2>
|
||||
<RegisterWindow unsignedDisplays="" asciiDisplays="" octalDisplays="" openGroups="" visibleGroups="" decimalDisplays="" binaryDisplays="" />
|
||||
</Register2>
|
||||
<Register3>
|
||||
<RegisterWindow unsignedDisplays="" asciiDisplays="" octalDisplays="" openGroups="" visibleGroups="" decimalDisplays="" binaryDisplays="" />
|
||||
</Register3>
|
||||
<Register4>
|
||||
<RegisterWindow unsignedDisplays="" asciiDisplays="" octalDisplays="" openGroups="" visibleGroups="" decimalDisplays="" binaryDisplays="" />
|
||||
</Register4>
|
||||
<SourceNavigatorWindow/>
|
||||
<TraceWindow>
|
||||
<Trace wrap="Yes" type="1" enabled="Yes" />
|
||||
</TraceWindow>
|
||||
<Watch1>
|
||||
<Watches active="1" >
|
||||
<Watchpoint evalMode="1" linenumber="0" evalType="1" radix="-1" name="pxCurrentTCB" expression="pxCurrentTCB" filename="" />
|
||||
</Watches>
|
||||
</Watch1>
|
||||
<Watch2>
|
||||
<Watches active="0" />
|
||||
</Watch2>
|
||||
<Watch3>
|
||||
<Watches active="0" />
|
||||
</Watch3>
|
||||
<Watch4>
|
||||
<Watches active="0" />
|
||||
</Watch4>
|
||||
<Files>
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" x="19" debugPath="C:\Devtools\Rowley Associates Limited\CrossWorks for ARM 1.6\source\crt0.s" y="27" useHTMLEdit="0" path="C:\Devtools\Rowley Associates Limited\CrossWorks for ARM 1.6\source\crt0.s" left="0" selected="0" name="unnamed" top="60" />
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" x="0" debugPath="C:\Devtools\Rowley Associates Limited\CrossWorks for ARM 1.6\targets\Philips_LPC210X\Philips_LPC210X_Startup.s" y="142" useHTMLEdit="0" path="C:\Devtools\Rowley Associates Limited\CrossWorks for ARM 1.6\targets\Philips_LPC210X\Philips_LPC210X_Startup.s" left="0" selected="0" name="unnamed" top="120" />
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" x="0" debugPath="C:\E\Dev\FreeRTOS\Source\portable\GCC\ARM7_LPC2000\port.c" y="0" useHTMLEdit="0" path="C:\E\Dev\FreeRTOS\Source\portable\GCC\ARM7_LPC2000\port.c" left="0" selected="0" name="unnamed" top="0" />
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" x="22" debugPath="C:\E\Dev\FreeRTOS\\Source\portable\GCC\ARM7_LPC2000\portmacro.h" y="223" useHTMLEdit="0" path="C:\E\Dev\FreeRTOS\\Source\portable\GCC\ARM7_LPC2000\portmacro.h" left="0" selected="0" name="unnamed" top="0" />
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" x="57" debugPath="C:\E\Dev\FreeRTOS\Source\list.c" y="93" useHTMLEdit="0" path="C:\E\Dev\FreeRTOS\Source\list.c" left="0" selected="0" name="unnamed" top="72" />
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" x="0" debugPath="C:\E\Dev\FreeRTOS\\Source\\include\list.h" y="0" useHTMLEdit="0" path="C:\E\Dev\FreeRTOS\\Source\\include\list.h" left="0" selected="0" name="unnamed" top="65" />
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" x="0" debugPath="C:\E\Dev\FreeRTOS\Source\tasks.c" y="0" useHTMLEdit="0" path="C:\E\Dev\FreeRTOS\Source\tasks.c" left="0" selected="1" name="unnamed" top="156" />
|
||||
</Files>
|
||||
<ARMCrossStudioWindow activeProject="RTOSDemo" autoConnectTarget="/USB CrossConnect for ARM" debugSearchFileMap="" fileDialogInitialDirectory="C:\E\Dev\FreeRTOS\Demo\ARM7_LPC2138_Rowley" fileDialogDefaultFilter="*.js" autoConnectCapabilities="1407" debugSearchPath="" buildConfiguration="THUMB Flash Debug" />
|
||||
</session>
|
330
Demo/ARM7_LPC2138_Rowley/main.c
Normal file
330
Demo/ARM7_LPC2138_Rowley/main.c
Normal file
File diff suppressed because it is too large
Load Diff
54
Demo/ARM7_LPC2138_Rowley/mainISR.c
Normal file
54
Demo/ARM7_LPC2138_Rowley/mainISR.c
Normal file
@ -0,0 +1,54 @@
|
||||
/*
|
||||
FreeRTOS.org V4.0.5 - Copyright (C) 2003-2006 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.
|
||||
***************************************************************************
|
||||
*/
|
||||
#include "FreeRTOS.h"
|
||||
#include "semphr.h"
|
||||
|
||||
#define isrCLEAR_EINT_1 2
|
||||
|
||||
/*
|
||||
* Interrupt routine that simply wakes vButtonHandlerTask on each interrupt
|
||||
* generated by a push of the built in button.
|
||||
*/
|
||||
void vButtonISR( void ) __attribute__ ((naked));
|
||||
extern xSemaphoreHandle xButtonSemaphore;
|
||||
|
||||
void vButtonISR( void )
|
||||
{
|
||||
portENTER_SWITCHING_ISR();
|
||||
xSemaphoreGiveFromISR( xButtonSemaphore, pdFALSE );
|
||||
EXTINT = isrCLEAR_EINT_1;
|
||||
VICVectAddr = 0;
|
||||
portEXIT_SWITCHING_ISR( pdTRUE );
|
||||
}
|
||||
|
||||
|
||||
|
118
Demo/ARM7_LPC2138_Rowley/threads.js
Normal file
118
Demo/ARM7_LPC2138_Rowley/threads.js
Normal file
@ -0,0 +1,118 @@
|
||||
function decode_stack(sp)
|
||||
{
|
||||
var i;
|
||||
var a = new Array();
|
||||
|
||||
var current_task;
|
||||
|
||||
current_task = Debug.evaluate("pxCurrentTCB");
|
||||
|
||||
if( current_task == 0 )
|
||||
return;
|
||||
|
||||
sp += 4; /* skip stored ulCriticalNesting */
|
||||
a[16] = Debug.evaluate("*(unsigned long*)" + sp);
|
||||
|
||||
for (i = 0; i <= 15; i++)
|
||||
{
|
||||
sp += 4;
|
||||
a[i] = Debug.evaluate("*(unsigned long*)" + sp);
|
||||
}
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
function add_task(task, state)
|
||||
{
|
||||
var tcb, task_name;
|
||||
|
||||
var current_task;
|
||||
|
||||
current_task = Debug.evaluate("pxCurrentTCB");
|
||||
|
||||
if( current_task == 0 )
|
||||
return;
|
||||
|
||||
tcb = Debug.evaluate("*(tskTCB *)" + task);
|
||||
task_name = Debug.evaluate("(char*)&(*(tskTCB *)" + task + ").pcTaskName[0]");
|
||||
Threads.add("#" + tcb.uxTCBNumber + " \"" + task_name + "\"", tcb.uxPriority, state, decode_stack(tcb.pxTopOfStack));
|
||||
}
|
||||
|
||||
function add_list(list, state, current_task)
|
||||
{
|
||||
var i, index, item, end;
|
||||
var current_task;
|
||||
|
||||
current_task = Debug.evaluate("pxCurrentTCB");
|
||||
|
||||
if( current_task == 0 )
|
||||
return;
|
||||
|
||||
if (list.uxNumberOfItems)
|
||||
{
|
||||
index = list.pxIndex;
|
||||
end = list.xListEnd;
|
||||
for (i = 0; i < list.uxNumberOfItems + 1; i++)
|
||||
{
|
||||
item = Debug.evaluate("*(xListItem *)" + index);
|
||||
if (index != end)
|
||||
{
|
||||
task = item.pvOwner;
|
||||
if (task) add_task(task, (task == current_task) ? "executing" : state);
|
||||
}
|
||||
index = item.pxNext;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function update()
|
||||
{
|
||||
var i, current_task, list, lists, max_priority;
|
||||
|
||||
Threads.clear();
|
||||
|
||||
current_task = Debug.evaluate("pxCurrentTCB");
|
||||
|
||||
if( current_task == 0 )
|
||||
return;
|
||||
|
||||
Threads.newqueue("Ready");
|
||||
lists = Debug.evaluate("pxReadyTasksLists");
|
||||
if (lists)
|
||||
{
|
||||
max_priority = Debug.evaluate("uxTopUsedPriority");
|
||||
max_priority = Debug.evaluate("*(long *)" + max_priority);
|
||||
|
||||
for (i = 0; i <= max_priority; i++)
|
||||
{
|
||||
list = Debug.evaluate("((xList*)" + lists + ")[" + (max_priority - i) + "]");
|
||||
add_list(list, "ready", current_task);
|
||||
}
|
||||
}
|
||||
|
||||
Threads.newqueue("Blocked");
|
||||
|
||||
list = Debug.evaluate("pxDelayedTaskList");
|
||||
if (list)
|
||||
{
|
||||
list = Debug.evaluate("**(xList **)" + list);
|
||||
add_list(list, "blocked");
|
||||
}
|
||||
|
||||
list = Debug.evaluate("pxOverflowDelayedTaskList");
|
||||
if (list)
|
||||
{
|
||||
list = Debug.evaluate("**(xList **)" + list);
|
||||
add_list(list, "blocked");
|
||||
}
|
||||
|
||||
Threads.newqueue("Suspended");
|
||||
|
||||
list = Debug.evaluate("xSuspendedTaskList");
|
||||
if (list)
|
||||
{
|
||||
list = Debug.evaluate("*(xList *)" + list);
|
||||
add_list(list, "suspended");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user