]> git.sur5r.net Git - freertos/commitdiff
Update to V5.0.0. V5.0.0
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Wed, 16 Apr 2008 08:00:30 +0000 (08:00 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Wed, 16 Apr 2008 08:00:30 +0000 (08:00 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@324 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

240 files changed:
Demo/ARM7_AT91FR40008_GCC/FreeRTOSConfig.h
Demo/ARM7_AT91FR40008_GCC/Makefile
Demo/ARM7_AT91FR40008_GCC/ParTest/ParTest.c
Demo/ARM7_AT91FR40008_GCC/main.c
Demo/ARM7_AT91FR40008_GCC/serial/serial.c
Demo/ARM7_AT91FR40008_GCC/serial/serialISR.c
Demo/ARM7_AT91SAM7S64_IAR/FreeRTOSConfig.h
Demo/ARM7_AT91SAM7S64_IAR/ParTest/ParTest.c
Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.c
Demo/ARM7_AT91SAM7S64_IAR/main.c
Demo/ARM7_AT91SAM7S64_IAR/serial/serial.c
Demo/ARM7_LPC2106_GCC/FreeRTOSConfig.h
Demo/ARM7_LPC2106_GCC/Makefile
Demo/ARM7_LPC2106_GCC/ParTest/ParTest.c
Demo/ARM7_LPC2106_GCC/main.c
Demo/ARM7_LPC2106_GCC/serial/serial.c
Demo/ARM7_LPC2106_GCC/serial/serialISR.c
Demo/ARM7_LPC2129_IAR/FreeRTOSConfig.h
Demo/ARM7_LPC2129_IAR/ParTest/ParTest.c
Demo/ARM7_LPC2129_IAR/main.c
Demo/ARM7_LPC2129_IAR/serial/serial.c
Demo/ARM7_LPC2138_Rowley/FreeRTOSConfig.h
Demo/ARM7_LPC2138_Rowley/main.c
Demo/ARM7_LPC2138_Rowley/mainISR.c
Demo/ARM7_LPC2368_Rowley/ParTest/ParTest.c
Demo/ARM7_LPC2368_Rowley/main.c
Demo/ARM7_LPC2368_Rowley/webserver/uIP_Task.c
Demo/ARM7_STR71x_IAR/FreeRTOSConfig.h
Demo/ARM7_STR71x_IAR/ParTest/ParTest.c
Demo/ARM7_STR71x_IAR/main.c
Demo/ARM7_STR71x_IAR/serial/serial.c
Demo/ARM7_STR75x_IAR/FreeRTOSConfig.h
Demo/ARM7_STR75x_IAR/ParTest/ParTest.c
Demo/ARM7_STR75x_IAR/main.c
Demo/ARM7_STR75x_IAR/serial/serial.c
Demo/ARM9_STR91X_IAR/FreeRTOSConfig.h
Demo/ARM9_STR91X_IAR/ParTest/ParTest.c
Demo/ARM9_STR91X_IAR/main.c
Demo/ARM9_STR91X_IAR/serial/serial.c
Demo/ARM9_STR91X_IAR/webserver/uIP_Task.c
Demo/AVR32_UC3/main.c
Demo/AVR_ATMega323_IAR/FreeRTOSConfig.h
Demo/AVR_ATMega323_IAR/ParTest/ParTest.c
Demo/AVR_ATMega323_IAR/main.c
Demo/AVR_ATMega323_IAR/regtest.c
Demo/AVR_ATMega323_IAR/regtest.h
Demo/AVR_ATMega323_IAR/serial/serial.c
Demo/AVR_ATMega323_WinAVR/FreeRTOSConfig.h
Demo/AVR_ATMega323_WinAVR/ParTest/ParTest.c
Demo/AVR_ATMega323_WinAVR/main.c
Demo/AVR_ATMega323_WinAVR/regtest.c
Demo/AVR_ATMega323_WinAVR/regtest.h
Demo/AVR_ATMega323_WinAVR/serial/serial.c
Demo/CORTEX_LM3S102_GCC/Demo1/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_GCC/Demo1/main.c
Demo/CORTEX_LM3S102_GCC/Demo2/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_GCC/Demo2/main.c
Demo/CORTEX_LM3S102_GCC/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_GCC/ParTest/ParTest.c
Demo/CORTEX_LM3S102_GCC/main.c
Demo/CORTEX_LM3S102_KEIL/Demo1/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_KEIL/Demo1/main.c
Demo/CORTEX_LM3S102_KEIL/Demo2/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_KEIL/Demo2/main.c
Demo/CORTEX_LM3S102_KEIL/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_KEIL/ParTest/ParTest.c
Demo/CORTEX_LM3S102_KEIL/main.c
Demo/CORTEX_LM3S102_Rowley/Demo1/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_Rowley/Demo1/ParTest.c
Demo/CORTEX_LM3S102_Rowley/Demo1/main.c
Demo/CORTEX_LM3S102_Rowley/Demo2/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_Rowley/Demo2/ParTest.c
Demo/CORTEX_LM3S102_Rowley/Demo2/main.c
Demo/CORTEX_LM3S102_Rowley/Demo3/FreeRTOSConfig.h
Demo/CORTEX_LM3S102_Rowley/Demo3/ParTest.c
Demo/CORTEX_LM3S102_Rowley/Demo3/main.c
Demo/CORTEX_LM3S316_IAR/FreeRTOSConfig.h
Demo/CORTEX_LM3S316_IAR/ParTest/ParTest.c
Demo/CORTEX_LM3S316_IAR/commstest.c
Demo/CORTEX_LM3S316_IAR/commstest.h
Demo/CORTEX_LM3S316_IAR/main.c
Demo/CORTEX_LM3S811_GCC/FreeRTOSConfig.h
Demo/CORTEX_LM3S811_GCC/main.c
Demo/CORTEX_LM3S811_IAR/FreeRTOSConfig.h
Demo/CORTEX_LM3S811_IAR/main.c
Demo/CORTEX_LM3S811_KEIL/FreeRTOSConfig.h
Demo/CORTEX_LM3S811_KEIL/heap/heap_1.c
Demo/CORTEX_LM3S811_KEIL/main.c
Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/FreeRTOSConfig.h
Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/Makefile
Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/ParTest/ParTest.c
Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/bitmap.h
Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.c [new file with mode: 0644]
Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.h [new file with mode: 0644]
Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/main.c
Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/timertest.c
Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.c
Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uIP_Task.c
Demo/CORTEX_LM3Sxxxx_IAR_Keil/FreeRTOSConfig.h
Demo/CORTEX_LM3Sxxxx_IAR_Keil/ParTest/ParTest.c
Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Opt
Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.Uv2
Demo/CORTEX_LM3Sxxxx_IAR_Keil/RTOSDemo.ewp
Demo/CORTEX_LM3Sxxxx_IAR_Keil/bitmap.h
Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.c [new file with mode: 0644]
Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.h [new file with mode: 0644]
Demo/CORTEX_LM3Sxxxx_IAR_Keil/main.c
Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.dbgdt
Demo/CORTEX_LM3Sxxxx_IAR_Keil/settings/RTOSDemo.wsdt
Demo/CORTEX_LM3Sxxxx_IAR_Keil/startup_ewarm.c
Demo/CORTEX_LM3Sxxxx_IAR_Keil/timertest.c
Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.c
Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uIP_Task.c
Demo/CORTEX_STM32F103_IAR/FreeRTOSConfig.h
Demo/CORTEX_STM32F103_IAR/ParTest/ParTest.c
Demo/CORTEX_STM32F103_IAR/main.c
Demo/CORTEX_STM32F103_IAR/serial/serial.c
Demo/CORTEX_STM32F103_IAR/timertest.c
Demo/CORTEX_STM32F103_Primer_GCC/FreeRTOSConfig.h
Demo/CORTEX_STM32F103_Primer_GCC/ParTest/ParTest.c
Demo/CORTEX_STM32F103_Primer_GCC/bitmap.h
Demo/CORTEX_STM32F103_Primer_GCC/main.c
Demo/CORTEX_STM32F103_Primer_GCC/timertest.c
Demo/Cygnal/FreeRTOSConfig.h
Demo/Cygnal/Makefile
Demo/Cygnal/ParTest/ParTest.c
Demo/Cygnal/main.c
Demo/Cygnal/serial/serial.c
Demo/Flshlite/FRConfig.h
Demo/Flshlite/FileIO/fileIO.c
Demo/Flshlite/FreeRTOSConfig.h
Demo/Flshlite/ParTest/ParTest.c
Demo/Flshlite/main.c
Demo/Flshlite/serial/serial.c
Demo/HCS12_CodeWarrior_small/FreeRTOSConfig.h
Demo/HCS12_CodeWarrior_small/ParTest/ParTest.c
Demo/HCS12_CodeWarrior_small/main.c
Demo/HCS12_CodeWarrior_small/serial/serial.c
Demo/HCS12_GCC_banked/FreeRTOSConfig.h
Demo/HCS12_GCC_banked/ParTest.c
Demo/HCS12_GCC_banked/main.c
Demo/HCS12_GCC_banked/startup.c
Demo/MB91460_Softune/SRC/crflash_modified.c
Demo/MB91460_Softune/SRC/main.c
Demo/MB91460_Softune/SRC/partest/partest.c
Demo/MB91460_Softune/SRC/serial/serial.c
Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/FreeRTOSConfig.h
Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/crflash_sk16fx100mpc.c
Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/main.c
Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/partest/partest.c
Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/serial/serial.c
Demo/PC/FRConfig.h
Demo/PC/FileIO/fileIO.c
Demo/PC/FreeRTOSConfig.h
Demo/PC/ParTest/ParTest.c
Demo/PC/main.c
Demo/PC/serial/serial.c
Demo/PIC18_MPLAB/FreeRTOSConfig.h
Demo/PIC18_MPLAB/ParTest/ParTest.c
Demo/PIC18_MPLAB/main1.c
Demo/PIC18_MPLAB/main2.c
Demo/PIC18_MPLAB/main3.c
Demo/PIC18_MPLAB/serial/serial.c
Demo/PIC24_MPLAB/FreeRTOSConfig.h
Demo/PIC24_MPLAB/ParTest/ParTest.c
Demo/PIC24_MPLAB/lcd.c
Demo/PIC24_MPLAB/lcd.h
Demo/PIC24_MPLAB/main.c
Demo/PIC24_MPLAB/serial/serial.c
Demo/PIC24_MPLAB/timertest.c
Demo/PIC24_MPLAB/timertest.h
Demo/PIC32MX_MPLAB/FreeRTOSConfig.h
Demo/PIC32MX_MPLAB/ParTest/ParTest.c
Demo/PIC32MX_MPLAB/RegisterTestTasks.s
Demo/PIC32MX_MPLAB/lcd.c
Demo/PIC32MX_MPLAB/lcd.h
Demo/PIC32MX_MPLAB/main.c
Demo/PIC32MX_MPLAB/serial/serial.c
Demo/PIC32MX_MPLAB/timertest.c
Demo/PIC32MX_MPLAB/timertest.h
Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c
Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
Demo/PPC405_Xilinx_Virtex4_GCC/__xps/rtosdemo_compiler.opt
Demo/PPC405_Xilinx_Virtex4_GCC/system.xmp
Demo/PPC405_Xilinx_Virtex4_GCC/system_incl.make
Demo/WizNET_DEMO_GCC_ARM7/FreeRTOSConfig.h
Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.c
Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.h
Demo/WizNET_DEMO_GCC_ARM7/Makefile
Demo/WizNET_DEMO_GCC_ARM7/TCP.c
Demo/WizNET_DEMO_GCC_ARM7/TCP.h
Demo/WizNET_DEMO_GCC_ARM7/TCPISR.c
Demo/WizNET_DEMO_GCC_ARM7/html_pages.h
Demo/WizNET_DEMO_GCC_ARM7/i2c.c
Demo/WizNET_DEMO_GCC_ARM7/i2c.h
Demo/WizNET_DEMO_GCC_ARM7/i2cISR.c
Demo/WizNET_DEMO_GCC_ARM7/main.c
Demo/WizNET_DEMO_TERN_186/FreeRTOSConfig.h
Demo/WizNET_DEMO_TERN_186/HTTPTask.c
Demo/WizNET_DEMO_TERN_186/HTTPTask.h
Demo/WizNET_DEMO_TERN_186/main.c
Demo/WizNET_DEMO_TERN_186/serial/serial.c
Demo/dsPIC_MPLAB/FreeRTOSConfig.h
Demo/dsPIC_MPLAB/ParTest/ParTest.c
Demo/dsPIC_MPLAB/lcd.c
Demo/dsPIC_MPLAB/lcd.h
Demo/dsPIC_MPLAB/main.c
Demo/dsPIC_MPLAB/serial/serial.c
Demo/dsPIC_MPLAB/timertest.c
Demo/dsPIC_MPLAB/timertest.h
Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.c
Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.h
Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.c
Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.h
Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC_ISR.c
Demo/lwIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
Demo/lwIP_Demo_Rowley_ARM7/ParTest/ParTest.c
Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.c
Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.h
Demo/lwIP_Demo_Rowley_ARM7/USB/USBIsr.c
Demo/lwIP_Demo_Rowley_ARM7/USB/descriptors.h
Demo/lwIP_Demo_Rowley_ARM7/USB/usb.h
Demo/lwIP_Demo_Rowley_ARM7/main.c
Demo/lwIP_Demo_Rowley_ARM7/makefile
Demo/msp430_CrossWorks/FreeRTOSConfig.h
Demo/msp430_CrossWorks/ParTest/ParTest.c
Demo/msp430_CrossWorks/main.c
Demo/msp430_CrossWorks/serial/serial.c
Demo/msp430_GCC/FreeRTOSConfig.h
Demo/msp430_GCC/ParTest/ParTest.c
Demo/msp430_GCC/main.c
Demo/msp430_GCC/makefile
Demo/msp430_GCC/serial/serial.c
Demo/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79
Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c
Demo/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h
Demo/uIP_Demo_IAR_ARM7/ParTest/ParTest.c
Demo/uIP_Demo_IAR_ARM7/main.c

index 5fe8eebbb12016a8e8ed572941bda117daffc510..8ed8c2fcb60a533a9f118539182a09165a7a104d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5ecbd9981f4c35284ebb699bc62a1262c839ce93..8503ffa8e636c700b8b3913e58c5cb71dc2502f4 100644 (file)
@@ -1,4 +1,4 @@
-#      FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+#      FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 #\r
 #      This file is part of the FreeRTOS.org distribution.\r
 #\r
index a634708b7053269d6090c63e694262d719c83efb..30f4ea1ceb5e5fdee0837d2ee68a673b5f48fa04 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 496b71f669488d175db51fbfc0bad5fa0d6fd929..11b7c1367505b72aa451294ccf71b0302b2b432b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 255eb1d7bde63af8cbeb90eb26c839c0e1befe59..6e24043989e1b6374a3f0ce6dd3a7d3bf077b5fa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 70a775f59b2d9e57b7add7da582b8ecd88c1266e..b499fee154d6dd67df6147bc821c0fb325e09f02 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-  FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+  FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
   This file is part of the FreeRTOS.org distribution.\r
 \r
index 361614ce907ca07d85a2daf79bf8d9ecd247552d..6b735cc82eab96fc5b14dcb10e25bcfbbb59631f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 86291af0781d238d4a643de75a4592bc719da139..a384123903c3cff38034a70e6adbd9b65aa0a70a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5f1c8d86328111afdb59648ed9da28ca1c736523..12b1028ace65f3a18d886a164f1c5520c4b1793d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f6774a7aa2ba511e244c6afe8f09d4e7695f6ce9..f604253079b45d8ea54d020cab4e644f3ba62520 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 47d0fd8f97b1d1070441d9157e20edffccec99b5..5048c8bf785dc0f0155744c405a68f05be65383b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3cf599337fd7ce6cbd5582b347a8a28c3557147f..7f8ed28641c0d01d1d5777549440309af989b60a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index cd7c99309608be76d0262dfbcf9137199ef020c6..3e85db6e950dedacdea964e84ddb73e8edbe6419 100644 (file)
@@ -1,4 +1,4 @@
-#      FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+#      FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 #\r
 #      This file is part of the FreeRTOS.org distribution.\r
 #\r
index e629fcabde2830bbc88d9d544185da5bc809564f..9630d3dd5927928dcdf2d62cdaf1fdf134557ad1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e3863dc9b1f4c81acc606071313032928996712f..509b476644e77dbe5e554ef8947661de681e6a20 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 04ed2716b02fd717b6a5f4e087f0ddd2d0a06109..6627ca8bec156ba91147694879ca0cbe606a0023 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7e053e1718f8d09d3cd750cca9edd6b915145707..5ae128fead493d546d42788056697acc5ab14579 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0d3ba96b5063e6fd599f37e22c29718f4899e641..8eee8b48c61e929e9d80ffd6f81d38a32aad450f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f8c6d874ff0a830cf070eac4ccff7135a62b3ff8..71b31719b4d1ad5f93dba865b161c96825404b9f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 1c8bcad19ee8a88620fb348815cb294d1362d940..fa8f60c3ee9d37e7fbdfe486b08e39be9e78dcb2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index a4d8c25f41348cfb864699b2874894062dd14ecb..ea923b61df6f53093db637a4049cb9b379ae8f1f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 361ca55cf3efa0a5fbaf507b15355cb97f3a179f..fd8aa8ec511dddda013cee94728b363e5f0e4ccc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 9b167ca7ee56c5e8df920178480d4698fafaf1a1..ec5fdabf657b8dc81987f20c58cad009b5dd8237 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index fb07b17eb5b0e1e99556ee9b2b530eb1d4940992..46146a99f3c73b20d1f648f3882feaf08f24ae4a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index d8caf9cb2fc59bfaf5fe1d6bca9dc55876c930d7..7916363918965b282fdd01b805ce1153a10cdd9b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 28c333addea65db17722dd3dd432dc9f397c611e..bad607a08234beb567e977d1d3d2df06b604b7cb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3bd8b8ae5654b7b07fde9ba11dbad8d99a54031f..c905f0b54c1ddb1b42a15a1a8bae033cc9633c35 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3d4f1dd44395ffea278b7e8160e2070981ffd787..dff09ebea516e5e51397753776c1d955ee9b2437 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0ab56c36d4706498af5a938c427d2535f5653697..6a8fedfad14cbc4ed46dd547cb6dda9c7c29fe29 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index be5f1aa6b7a594eae57a116896305a2343807056..038d98a1b7f02a0a86d4d4e74ce8521d0e766b33 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7fd7d675900acf1cc52007653684be987a081ede..d7247cf425eaef68ac876300ae6200d75d17bc14 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 49e9067023be0099471d474fba07b391b84974dd..214cb85688bf327f5f4b28056bd232170f51a52d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b0f0936d223825da8385be8416a6b7b33c0da173..98889734a04b8137a2e82536849a27112e31b3a3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f8b8d8bb0c22dc8631c8955f5405a6b3d03c9513..ac63dd9a0699c7f45b8c08c45fe7afdb3bea0f32 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 29548a8098b3f4406f66fe78a7c19cf5e72a3ee7..a7b576da9be69373707599ae215b03f24bedbef8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5c68e3a4d7f60b65e5eaf9417c289d06ec0490e0..77e984a7c732531fc8e9feca49463ba29a10a128 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS distribution.\r
 \r
index 83220dad5ada8f4d2814ea6eee244fb546eb9c6f..246295423a4415caee5eb8236d93b3c052482f73 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS distribution.\r
 \r
index 3f2c2b9804007f9dcc835292fdd014fb5ed22e00..b116a742186c073eaf5bf3401abae91e65c97270 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS distribution.\r
 \r
index 6df42f0c4d7042dcf23366d525df3666418a69ba..db4099e3d7c55c26325c4e76d80c32028cc9d1a3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS distribution.\r
 \r
index 8921c7f42324c469a18d8446ef000dc77a071750..2a6299e68911472943d49c27a55a24f450ab1ead 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5d7217a1d61f098aa0213643f0af3b0324b15e28..cfe21ded9e5ecce8044b0f2c1ce689215057c7ae 100644 (file)
@@ -30,7 +30,7 @@
  *****************************************************************************/\r
 \r
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index acb24e8bdf636e9bd45221a726a416a3917e7862..aea72abf163b9b9e98e10700adea626ccf5bc845 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c796c7abe3811df242d2e2fa8b6a757e17bc9e7d..539084ad734d67c70834c6e15b468ab2f74df061 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 8d15de009d48e2f44b77a3fa265c1ee2cd11580d..02df2a142e7a2ce36e74829734d5baf876b0c007 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0f57d9b33794fe090d4f839e03b749ab15e15848..ce93a155b427ef2442f2fe1d051ce36a2475b9a6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7c6021666341727050523130edadd2fa81c37328..c1f5a2f08bbc82cc7ef86c659ec117552357531e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index d9259abbb4c4c330dba6cb4fc86378a43cb608fa..dd3e7ca78d634f24883a6f3dfd97b46ab9025a2f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index afd86a9a7ba9dfd58f64e137fe85160700b17eb2..c2af929834ee60352fca41fb93c3b3a08611266b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c796c7abe3811df242d2e2fa8b6a757e17bc9e7d..539084ad734d67c70834c6e15b468ab2f74df061 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 20b013caaf7d60efab0c2ea5431e8c83fe8bc6c1..b3a5cf1a8f21de7f99568679910939ad9fa36de9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0f57d9b33794fe090d4f839e03b749ab15e15848..ce93a155b427ef2442f2fe1d051ce36a2475b9a6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7c6021666341727050523130edadd2fa81c37328..c1f5a2f08bbc82cc7ef86c659ec117552357531e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 268d99161d0dbeffd885e2054e8f29f5c2a96c0b..78b85e0799f9a017760283dbe51b431edbbc38fd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index cb188c7d6e6793724dbd81bf9397fb9d550a17e4..589c390e5c01ca718c864d29a5fff23c3305566a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e4ddc3f30f96ed274ef43f19861e9aa1ba22dc93..868d05c24bf4a2b5fc0de8121f019b1b8a12f640 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 21934fd8033f055a76656754ee7a3b3404fedd6b..9a86d9933c542a280c8c15c752e6880ee732cc71 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 847ff8233185212d5bbdf4be9e7258051d568cb2..b520655a40c16aef45e7d373dd2b4b23563eac67 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index cb188c7d6e6793724dbd81bf9397fb9d550a17e4..589c390e5c01ca718c864d29a5fff23c3305566a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5e5ea368200ae6d1f47794473e517ec65ead1c49..684a2e02e30801d06a5776ccb88ec44d4e459f1c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e4ddc3f30f96ed274ef43f19861e9aa1ba22dc93..868d05c24bf4a2b5fc0de8121f019b1b8a12f640 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index cb188c7d6e6793724dbd81bf9397fb9d550a17e4..589c390e5c01ca718c864d29a5fff23c3305566a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0f3c7ed6fa12453b5a11cff22565fdf3bfe2f5fb..8d4a7680afaf1eb3615dba078713cae854b5645e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 21934fd8033f055a76656754ee7a3b3404fedd6b..9a86d9933c542a280c8c15c752e6880ee732cc71 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 6247dbe469d4c4faf411b06570abd945d1b4d604..e9107c9ead227f668a66ba2c60031049327a7de5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 25a2688e0ca92a137a85b6a168dfef71464c8693..5faf5cc36923d83a36046f7c2721f9c2ab621766 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5e5ea368200ae6d1f47794473e517ec65ead1c49..684a2e02e30801d06a5776ccb88ec44d4e459f1c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0f3c7ed6fa12453b5a11cff22565fdf3bfe2f5fb..8d4a7680afaf1eb3615dba078713cae854b5645e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index cb188c7d6e6793724dbd81bf9397fb9d550a17e4..589c390e5c01ca718c864d29a5fff23c3305566a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5e5ea368200ae6d1f47794473e517ec65ead1c49..684a2e02e30801d06a5776ccb88ec44d4e459f1c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e46aa70b84b80a2a75742145d25f3c4ac3ffa31e..9ba1077059297e89fb4b0c0383bed9df069c7a14 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 21934fd8033f055a76656754ee7a3b3404fedd6b..9a86d9933c542a280c8c15c752e6880ee732cc71 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5e5ea368200ae6d1f47794473e517ec65ead1c49..684a2e02e30801d06a5776ccb88ec44d4e459f1c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e2f2028806eb805a810221c89be229832cf0188e..4039e249e51192c9d73ecd5a247998d5e9a06ee5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index fe24d4faa0a60ae04856a9ee45e571e402466cc6..837b9e8dd1a2868e0e1a1f5f9f91ebee89f2e2d6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 4bc5c10c551deab6ea3f0b80e99b4e8f5082b411..a6716bbeca7eb97580078bbd85ba3f059b4c0b88 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index bd8adc111419ca22f7c3f43d93fcc2bcf3a5b3ea..9658cfde135c145c16eb6b210f74c0da7d83fe51 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b8f0283dbedca269dfec9b0a6aaeb8b950ef8ca5..17fbce53b1cdb1e749566f3a328c43e2ecfad535 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5e5ea368200ae6d1f47794473e517ec65ead1c49..684a2e02e30801d06a5776ccb88ec44d4e459f1c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 4213be7d50cd678d4e5ed7bddee072268eeff8a1..e032a252159e8d30bb3d8814298d3820938fe52c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 948463a9248ce6f3d02bf64117d451afeea360fa..c4cf0f28d9b5286ef2faf3e38fbe3f1bc3a1ba81 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 89f6679003953db319649f2461808c3c7dc4e90a..6b72eefbedf7e09d54034ff08b4e0817410542ad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e580cda2fa8d0fc91662bf8e21a54fb42fcfd873..290a2c3b4d87fd9332c27c8edf5509a815c0c182 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5c5810397b540cf3eeaeb4fc28017fe3955a9df3..ef7ec8a47a65f0633404a0f4d29b5572c23d1b05 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index ea05ad5263a40561f7fe273af5b2633e241ff27c..bd41b125f22d8f7ceb9e7ec18cf554db0351727c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 4441aa06423ef1fc8e0aba8ebd2804d2e9ed2309..27bb1ef6055f25845664a2bc8fcdc6261c22f4cc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 9c2c17421e235b277a03c240b7e7b813cdd1802c..0a2a932779a16779e30d8bce02a9dc3732e43404 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 59c23f5af85f0e5bf4f3ce84b708fb007c74c3ef..9c340590361abccd8b0ae235fd7365604be43d29 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0233d9510b7f434f6afc1d24504676268b4c09b8..77a489fab46df6cf965675ca3c519f8394db08d3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c81bcfdaf191412e041ef9f4b33cf165e345e4d1..f3d93dfa09aba57cbbcc74485bc396fc8313c440 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
@@ -61,7 +61,7 @@
  *----------------------------------------------------------*/\r
 \r
 #define configUSE_PREEMPTION                   1\r
-#define configUSE_IDLE_HOOK                            1\r
+#define configUSE_IDLE_HOOK                            0\r
 #define configUSE_TICK_HOOK                            1\r
 #define configCPU_CLOCK_HZ                             ( ( unsigned portLONG ) 50000000 )\r
 #define configTICK_RATE_HZ                             ( ( portTickType ) 1000 )\r
index 0ba1464ccffd29274aa1cf73eee5c47d89591113..832beab2247d564af52aecbc001bb624fb760181 100644 (file)
@@ -1,4 +1,4 @@
-#      FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+#      FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 #\r
 #      This file is part of the FreeRTOS.org distribution.\r
 #\r
 #      ***************************************************************************\r
 \r
 \r
+#/************************************************************************* \r
+# * Please ensure to read http://www.freertos.org/portLM3Sxxxx_Eclipse.html\r
+# * which provides information on configuring and running this demo for the\r
+# * various Luminary Micro EKs.\r
+# *************************************************************************/\r
+\r
 RTOS_SOURCE_DIR=../../../Source\r
 DEMO_COMMON_DIR=../../Common/Minimal\r
 DEMO_INCLUDE_DIR=../../Common/include\r
@@ -56,6 +62,7 @@ SOURCE=       main.c \
                ./ParTest/ParTest.c \\r
                rit128x96x4.c \\r
                osram128x64x4.c \\r
+               formike128x128x16.c \\r
                $(LUMINARY_DRIVER_DIR)/ustdlib.c \\r
                $(DEMO_COMMON_DIR)/BlockQ.c \\r
                $(DEMO_COMMON_DIR)/blocktim.c \\r
@@ -82,7 +89,7 @@ SOURCE=       main.c \
                $(RTOS_SOURCE_DIR)/portable/GCC/ARM_CM3/port.c \\r
                $(RTOS_SOURCE_DIR)/portable/MemMang/heap_2.c\r
 \r
-LIBS= $(LUMINARY_DRIVER_DIR)/arm-none-eabi-gcc/libdriver.a\r
+LIBS= $(LUMINARY_DRIVER_DIR)/arm-none-eabi-gcc/libdriver.a $(LUMINARY_DRIVER_DIR)/arm-none-eabi-gcc/libgr.a\r
 \r
 OBJS = $(SOURCE:.c=.o)\r
 \r
index df167ab768ac24b447ba51788fbf51a59b4165a4..84324a045594e8a40d4876bfb7b9eed78bfb6b3e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 02ce0b365f79e6edb1dab90a42b27736a12b3b7e..29f813fd12bf1a7591da7f40ea4b0e5be3fef61e 100644 (file)
@@ -1,7 +1,10 @@
 #ifndef BITMAP_H\r
 #define BITMAP_H\r
 \r
-const unsigned char pucImage[] =\r
+#define bmpBITMAP_HEIGHT       50\r
+#define bmpBITMAP_WIDTH                128\r
+\r
+const unsigned char pucBasicBitmap[] =\r
 {\r
 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,\r
 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,\r
@@ -165,7 +168,169 @@ const unsigned char pucImage[] =
 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00,\r
 0x00 };\r
 \r
-#define bmpBITMAP_HEIGHT       50\r
-#define bmpBITMAP_WIDTH                128\r
+const unsigned char pucGrLibBitmap[] =\r
+{\r
+    IMAGE_FMT_4BPP_COMP,\r
+    124, 0,\r
+    49, 0,\r
+\r
+    15,\r
+    0x00, 0x00, 0x00,\r
+    0x00, 0x0c, 0x00,\r
+    0x20, 0x44, 0x20,\r
+    0x00, 0x75, 0x00,\r
+    0x69, 0x69, 0x69,\r
+    0x00, 0xc2, 0x00,\r
+    0x00, 0xd2, 0x00,\r
+    0x38, 0xb6, 0x38,\r
+    0x00, 0xea, 0x00,\r
+    0x00, 0xf2, 0x00,\r
+    0xaa, 0xb2, 0xaa,\r
+    0x65, 0xff, 0x65,\r
+    0x69, 0xff, 0x69,\r
+    0x6d, 0xff, 0x6d,\r
+    0x71, 0xff, 0x71,\r
+    0xff, 0xff, 0xff,\r
+\r
+    0x03, 0x21, 0x33, 0x53, 0x33, 0x33, 0x33, 0xe9, 0xd4, 0xf8, 0xa7, 0x5f,\r
+    0x17, 0x07, 0x06, 0x35, 0x33, 0x12, 0x03, 0x23, 0x96, 0x68, 0x88, 0x88,\r
+    0x88, 0xe9, 0xd4, 0xf8, 0xa7, 0x5f, 0x17, 0x07, 0x06, 0x86, 0x69, 0x32,\r
+    0x03, 0x29, 0x66, 0x65, 0x66, 0x66, 0x66, 0xe9, 0xd4, 0xf8, 0xa7, 0x5f,\r
+    0x17, 0x07, 0x06, 0x56, 0x66, 0x92, 0x07, 0x78, 0x63, 0x11, 0x11, 0x11,\r
+    0xe9, 0xd4, 0xa7, 0xf0, 0x5f, 0x17, 0x07, 0x07, 0x11, 0x36, 0x87, 0x78,\r
+    0x0f, 0x63, 0x00, 0x00, 0x00, 0xe9, 0xd4, 0xa7, 0x5f, 0xe0, 0x17, 0x07,\r
+    0x07, 0x00, 0x36, 0x87, 0x78, 0x63, 0xfe, 0x07, 0x07, 0x77, 0x2f, 0x07,\r
+    0x07, 0x02, 0x36, 0x1e, 0x87, 0x78, 0x63, 0x07, 0x07, 0x77, 0x2f, 0x00,\r
+    0x10, 0x01, 0x22, 0x20, 0x07, 0x00, 0x00, 0x22, 0x21, 0x84, 0x03, 0x36,\r
+    0x87, 0x78, 0x63, 0x02, 0x02, 0xaa, 0x01, 0xa2, 0x22, 0x20, 0x02, 0x77,\r
+    0x77, 0x77, 0xe9, 0x3a, 0x22, 0x22, 0x7a, 0xa4, 0x71, 0x20, 0x0a, 0x27,\r
+    0xb8, 0x29, 0x72, 0xb2, 0x9e, 0x93, 0x36, 0x87, 0x78, 0x40, 0x63, 0x62,\r
+    0x2a, 0xff, 0xf2, 0xaa, 0x40, 0x07, 0x08, 0xad, 0xdd, 0xdd, 0xdd, 0xe9,\r
+    0xd7, 0x72, 0x00, 0x40, 0x00, 0xa6, 0xdd, 0xda, 0x70, 0x00, 0x00, 0x02,\r
+    0x00, 0x77, 0xdd, 0xdc, 0xcc, 0xcd, 0xde, 0xc7, 0x20, 0x00, 0x00, 0x00,\r
+    0x00, 0x00, 0x01, 0x27, 0xde, 0xdc, 0x08, 0xcc, 0xcc, 0xdd, 0xea, 0x99,\r
+    0x36, 0x87, 0x78, 0x40, 0x63, 0x69, 0x02, 0xaf, 0xaa, 0xf2, 0x2f, 0xa0,\r
+    0x04, 0x02, 0xdb, 0xbb, 0xbb, 0xbb, 0xe9, 0xbc, 0xe7, 0x10, 0x20, 0x00,\r
+    0x07, 0xa5, 0xbb, 0xbd, 0x70, 0x00, 0x10, 0x00, 0x27, 0xec, 0x3b, 0xcd,\r
+    0xd7, 0x00, 0x00, 0x80, 0x9f, 0xbd, 0x20, 0x00, 0x00, 0x36, 0x87, 0x78,\r
+    0x40, 0x63, 0x69, 0x02, 0xfa, 0x2a, 0xf2, 0x2f, 0xa0, 0x31, 0x02, 0xdb,\r
+    0x43, 0x31, 0x42, 0x00, 0x07, 0xa7, 0x0a, 0x70, 0x00, 0x02, 0xdd, 0x41,\r
+    0xcc, 0x21, 0xce, 0x04, 0x70, 0x00, 0x00, 0x02, 0x7d, 0x39, 0xbc, 0xcb,\r
+    0x00, 0xbb, 0xbd, 0x20, 0x00, 0x00, 0x36, 0x87, 0x78, 0x20, 0x63, 0x00,\r
+    0x69, 0xfa, 0x0a, 0xf2, 0x2f, 0xa0, 0x01, 0x02, 0xdb, 0xbb, 0xbb, 0xdd,\r
+    0xdd, 0xdc, 0x11, 0x08, 0xe7, 0x00, 0x07, 0xad, 0xbb, 0xcd, 0xdd, 0xda,\r
+    0x09, 0x70, 0x00, 0x2d, 0xcb, 0x41, 0xcc, 0xdd, 0xd1, 0x04, 0xe7, 0x00,\r
+    0x00, 0x07, 0xeb, 0x51, 0xdc, 0xcd, 0x00, 0xdd, 0xdd, 0x20, 0x00, 0x00,\r
+    0x36, 0x87, 0x78, 0x00, 0x63, 0x00, 0x00, 0x00, 0x02, 0xfa, 0x2a, 0xf2,\r
+    0x00, 0xaf, 0xa0, 0x02, 0xdb, 0xbb, 0xbd, 0x72, 0x22, 0x00, 0x77, 0xdc,\r
+    0xbb, 0xbb, 0xc7, 0x20, 0x07, 0x77, 0x04, 0x77, 0x77, 0xcb, 0xbb, 0xbc,\r
+    0xd1, 0x20, 0x01, 0x28, 0x7d, 0xbb, 0x42, 0x27, 0x41, 0xcd, 0x20, 0x00,\r
+    0x40, 0x27, 0x51, 0x72, 0x22, 0x22, 0x27, 0x7c, 0x20, 0x00, 0x00, 0x00,\r
+    0x36, 0x87, 0x78, 0x63, 0x00, 0x00, 0x00, 0x00, 0x02, 0xaf, 0xaa, 0xfa,\r
+    0xff, 0x20, 0x02, 0x10, 0xdb, 0xbb, 0xbe, 0x61, 0x2d, 0xbb, 0xbb, 0xcc,\r
+    0xa8, 0x29, 0x00, 0x89, 0xbd, 0xc3, 0xeb, 0xbb, 0xbb, 0x00, 0xd7, 0x10,\r
+    0x00, 0x00, 0x2c, 0xcb, 0xbb, 0xbd, 0x58, 0x70, 0x12, 0xc7, 0x13, 0x29,\r
+    0x36, 0x87, 0x78, 0x40, 0x63, 0xa9, 0x00, 0xaf, 0xff, 0xff, 0xfa, 0x20,\r
+    0x08, 0x02, 0xdb, 0xbb, 0xbd, 0x39, 0x07, 0xdb, 0xbb, 0x72, 0xcc, 0x03,\r
+    0x8c, 0x82, 0xbd, 0x70, 0x84, 0xbc, 0x03, 0xd2, 0x00, 0x2d, 0xbb, 0xbb,\r
+    0xd7, 0x19, 0x01, 0x02, 0x00, 0x00, 0x36, 0x87, 0x78, 0x63, 0xa2, 0x0a,\r
+    0x10, 0xaf, 0xff, 0xa2, 0x0a, 0xbd, 0x20, 0x00, 0x00, 0x0c, 0x07, 0xdb,\r
+    0xbb, 0xc7, 0xc9, 0x8e, 0x00, 0x2c, 0x40, 0xcb, 0xc4, 0x00, 0x7c, 0xbb,\r
+    0xbb, 0xe7, 0x00, 0x06, 0x2d, 0xbb, 0xbb, 0xc7, 0x10, 0x92, 0x31, 0x36,\r
+    0x10, 0x87, 0x78, 0x63, 0xab, 0x22, 0x22, 0x00, 0x00, 0x00, 0x02, 0xdb,\r
+    0xbb, 0xbd, 0x20, 0x00, 0x00, 0x07, 0x18, 0xcb, 0xbb, 0xd7, 0x0a, 0x8d,\r
+    0x00, 0x2d, 0xbb, 0x23, 0xbb, 0xc7, 0x82, 0x00, 0x2e, 0xbb, 0x39, 0x91,\r
+    0x20, 0xbd, 0x72, 0x8b, 0x00, 0x00, 0x36, 0x87, 0x78, 0x48, 0x63, 0x33,\r
+    0x02, 0x20, 0xe1, 0xdb, 0xbb, 0xbd, 0x01, 0x20, 0x00, 0x02, 0x7d, 0xbb,\r
+    0xbb, 0xe2, 0x6b, 0x94, 0x8b, 0x00, 0x00, 0x81, 0xd7, 0x82, 0x00, 0x2d,\r
+    0x00, 0xbb, 0xbb, 0xc7, 0x20, 0x2c, 0xcb, 0xbb, 0xbb, 0x10, 0xdd, 0x77,\r
+    0x22, 0x7b, 0x36, 0x87, 0x78, 0x63, 0x80, 0x32, 0x02, 0xaa, 0xf2, 0x22,\r
+    0x20, 0x02, 0xdb, 0x00, 0xbb, 0xbc, 0x77, 0x77, 0x77, 0xdb, 0xbb, 0xce,\r
+    0x42, 0x71, 0x63, 0xdb, 0xbb, 0xbd, 0x20, 0x19, 0x7d, 0x10, 0xbb, 0xbb,\r
+    0xd2, 0x82, 0x00, 0x27, 0xcb, 0xbb, 0x00, 0xc7, 0x20, 0x07, 0xeb, 0xbb,\r
+    0xbb, 0xbb, 0xcd, 0x21, 0xd7, 0x72, 0x72, 0x36, 0x87, 0x78, 0x63, 0x32,\r
+    0x01, 0x4f, 0xff, 0xf2, 0xaf, 0xa0, 0x02, 0xdb, 0x41, 0x03, 0xdd, 0xdc,\r
+    0xbb, 0xbc, 0xd7, 0x20, 0x22, 0x89, 0x42, 0xbd, 0xba, 0x7d, 0xbb, 0xbb,\r
+    0xd2, 0x82, 0x00, 0x02, 0x27, 0xcb, 0xbb, 0xcc, 0x20, 0x02, 0x89, 0xbb,\r
+    0x08, 0xbb, 0xbc, 0xdd, 0x72, 0x31, 0x36, 0x87, 0x78, 0x40, 0x63, 0x31,\r
+    0x02, 0xaf, 0xaa, 0xf2, 0x2f, 0xa0, 0x21, 0x02, 0xdb, 0x3a, 0xbb, 0xbb,\r
+    0xc7, 0x20, 0x31, 0x88, 0x59, 0xdb, 0xbb, 0xbd, 0xb2, 0x7d, 0xbb, 0xbb,\r
+    0x40, 0xd2, 0x7b, 0x27, 0xcb, 0xbb, 0xcc, 0x20, 0x00, 0x00, 0x27, 0xec,\r
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbc, 0xe7, 0x84, 0x29, 0x36, 0x87, 0x78, 0x63,\r
+    0x31, 0x02, 0xfa, 0x02, 0x0a, 0xf2, 0x2f, 0xa0, 0x02, 0xdb, 0x42, 0xbb,\r
+    0x31, 0xbb, 0xc7, 0x39, 0x5a, 0xdb, 0xbb, 0xbd, 0xb2, 0x08, 0x7d, 0xbb,\r
+    0xbb, 0xd2, 0x7b, 0x27, 0xcb, 0xbb, 0x00, 0xcc, 0x20, 0x00, 0x02, 0x77,\r
+    0xed, 0xcb, 0xbb, 0x00, 0xbb, 0xbb, 0xbd, 0x71, 0x00, 0x00, 0x36, 0x87,\r
+    0x20, 0x78, 0x63, 0x31, 0x02, 0xfa, 0x0a, 0xf2, 0x2f, 0x00, 0xa0, 0x02,\r
+    0xdb, 0xbb, 0xbb, 0xcd, 0xdd, 0xcb, 0x18, 0xbb, 0xbc, 0xe2, 0x69, 0x59,\r
+    0xdb, 0xbb, 0xbd, 0x42, 0x20, 0x19, 0x7d, 0xbb, 0xbb, 0xd2, 0x7b, 0x27,\r
+    0x10, 0xcb, 0xbb, 0xcb, 0x79, 0x02, 0x27, 0x7d, 0xdc, 0x00, 0xbb, 0xbb,\r
+    0xbb, 0xe2, 0x00, 0x00, 0x36, 0x87, 0x20, 0x78, 0x63, 0x31, 0x02, 0xfa,\r
+    0x2a, 0xf2, 0xaf, 0x00, 0xa0, 0x02, 0xdb, 0xbb, 0xbd, 0x72, 0x27, 0x4c,\r
+    0x1d, 0xbb, 0xbb, 0xd7, 0x69, 0x59, 0x89, 0x20, 0x19, 0x42, 0x7d, 0x7e,\r
+    0x2c, 0xbb, 0xbb, 0xc7, 0x7a, 0x00, 0x10, 0x22, 0x7c, 0xcb, 0x63, 0x36,\r
+    0x87, 0x78, 0x63, 0x80, 0x31, 0x02, 0xaf, 0xfa, 0xff, 0xff, 0x20, 0x02,\r
+    0x00, 0xdb, 0xbb, 0xbd, 0x20, 0x00, 0x2c, 0xcb, 0xbb, 0x28, 0xcb, 0x20,\r
+    0x61, 0x00, 0x8c, 0x00, 0x00, 0x2d, 0x12, 0xbb, 0xbb, 0xd7, 0x82, 0x00,\r
+    0x2e, 0xbe, 0x00, 0x21, 0x02, 0x7c, 0x63, 0x36, 0x87, 0x78, 0x63, 0x32,\r
+    0x00, 0x2f, 0xff, 0xff, 0xfa, 0x00, 0x02, 0xdb, 0xbb, 0x00, 0xbd, 0x20,\r
+    0x00, 0x07, 0xdb, 0xbb, 0xbe, 0x20, 0xc2, 0x62, 0x8c, 0x00, 0x00, 0x2c,\r
+    0xcb, 0xc4, 0x00, 0x0c, 0x7d, 0xbb, 0xbb, 0xe7, 0x3a, 0x19, 0x2d, 0xbb,\r
+    0x00, 0xbb, 0xc7, 0x00, 0x00, 0x36, 0x87, 0x78, 0x63, 0x80, 0x3a, 0x02,\r
+    0xaa, 0xaa, 0x40, 0x00, 0x02, 0xdb, 0x00, 0xbb, 0xbd, 0x20, 0x00, 0x02,\r
+    0xcc, 0xbb, 0xbd, 0x63, 0x70, 0x63, 0x8b, 0x00, 0x00, 0x07, 0x49, 0x7a,\r
+    0x98, 0x09, 0xbb, 0xd2, 0x3a, 0x19, 0x2d, 0xbb, 0xbb, 0x01, 0xd7, 0x00,\r
+    0x00, 0x36, 0x87, 0x78, 0x63, 0x3a, 0x14, 0xaa, 0x22, 0x20, 0x0b, 0xbd,\r
+    0xc9, 0x7d, 0xbb, 0x30, 0xbb, 0xd2, 0x61, 0x8e, 0x00, 0x02, 0xeb, 0xbb,\r
+    0x20, 0xbb, 0xd7, 0x79, 0x27, 0xcb, 0xbb, 0xbd, 0x70, 0x24, 0x00, 0x02,\r
+    0x6a, 0x00, 0x7d, 0x6b, 0x36, 0x87, 0x24, 0x78, 0x63, 0x39, 0x02, 0xff,\r
+    0x62, 0x02, 0xdb, 0x21, 0xbb, 0xbd, 0x21, 0x2e, 0xbb, 0xbb, 0xe7, 0x61,\r
+    0x80, 0x8e, 0x00, 0x02, 0x7d, 0xbb, 0xbb, 0xbd, 0x72, 0x00, 0x22, 0x27,\r
+    0xcc, 0xbb, 0xbb, 0xcd, 0x20, 0x00, 0x08, 0x07, 0xe7, 0x72, 0x22, 0xa3,\r
+    0xe2, 0x00, 0x00, 0x00, 0x36, 0x87, 0x78, 0x63, 0x00, 0x00, 0x00, 0x02,\r
+    0x20, 0xaf, 0xa0, 0xd2, 0xdb, 0xbb, 0xbd, 0x20, 0x00, 0x03, 0x00, 0x2b,\r
+    0xcb, 0xbb, 0xc7, 0x10, 0x8f, 0x11, 0x01, 0x2d, 0xcb, 0xbb, 0xbb, 0xdd,\r
+    0xb7, 0xcd, 0xd1, 0x00, 0xe7, 0x00, 0x00, 0x07, 0xdc, 0xdd, 0xcb, 0x7b,\r
+    0x00, 0xdd, 0xcb, 0xbb, 0xbc, 0x72, 0x00, 0x00, 0x36, 0x10, 0x87, 0x78,\r
+    0x63, 0x01, 0x00, 0x2a, 0xfa, 0x42, 0x01, 0x22, 0x20, 0x02, 0xdb, 0xbb,\r
+    0xbd, 0x20, 0x01, 0xb0, 0xcc, 0x00, 0x8d, 0xb9, 0xec, 0xbb, 0xbb, 0xbb,\r
+    0x00, 0xcc, 0xcb, 0xbb, 0xbb, 0xbe, 0x71, 0x00, 0x00, 0x05, 0x27, 0xcb,\r
+    0xbb, 0xcc, 0xcc, 0x81, 0xce, 0x29, 0x08, 0x36, 0x87, 0x78, 0x63, 0x02,\r
+    0xaa, 0xff, 0xff, 0x02, 0xff, 0xa0, 0x02, 0xdb, 0xbb, 0xbd, 0x61, 0x02,\r
+    0x0e, 0xeb, 0xbb, 0xbd, 0x70, 0x5a, 0x8c, 0x09, 0x27, 0x00, 0xec, 0xbb,\r
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbd, 0xd7, 0x54, 0x10, 0xa1, 0xcb, 0xa4, 0xd2,\r
+    0x31, 0x36, 0x87, 0x20, 0x78, 0x63, 0x01, 0x02, 0xff, 0xff, 0xff, 0xff,\r
+    0x02, 0xa0, 0x07, 0xad, 0xdd, 0xda, 0x20, 0x99, 0xde, 0x1c, 0xdd, 0xde,\r
+    0xc2, 0x21, 0x8d, 0x0a, 0x7c, 0xed, 0x04, 0xcc, 0xcc, 0xcc, 0xde, 0xd7,\r
+    0x92, 0x2c, 0xed, 0x40, 0xdc, 0xa7, 0x36, 0x87, 0x78, 0x63, 0x00, 0x02,\r
+    0x00, 0x22, 0x02, 0xaa, 0xaa, 0xaa, 0xaa, 0x20, 0x02, 0x1b, 0x77, 0x77,\r
+    0x77, 0x5a, 0xc9, 0x72, 0x21, 0x8e, 0x88, 0xaa, 0x27, 0x77, 0x7b, 0x9d,\r
+    0x12, 0x27, 0x77, 0x20, 0x77, 0xb7, 0x3d, 0x36, 0x87, 0x78, 0x63, 0x00,\r
+    0x3e, 0x02, 0xaa, 0x43, 0x22, 0xc6, 0x87, 0x3e, 0x12, 0x21, 0x22, 0x22,\r
+    0x06, 0x01, 0x22, 0x22, 0x21, 0x04, 0x00, 0x36, 0x87, 0x78, 0x63, 0x00,\r
+    0x02, 0xfa, 0x22, 0x3f, 0xaa, 0x20, 0x26, 0xc6, 0x87, 0x3f, 0x07, 0x07,\r
+    0x00, 0x36, 0x87, 0x78, 0x63, 0x00, 0x02, 0xfa, 0x02, 0x7e, 0xff, 0x07,\r
+    0x07, 0x77, 0x2f, 0x07, 0x06, 0x36, 0x00, 0x87, 0x78, 0x63, 0x00, 0x02,\r
+    0xff, 0xaa, 0xfa, 0x07, 0x44, 0x44, 0x44, 0x20, 0x02, 0xd9, 0xc1, 0xd4,\r
+    0xf0, 0xa7, 0x5f, 0x17, 0x04, 0x42, 0x00, 0x00, 0x36, 0x00, 0x87, 0x78,\r
+    0x63, 0x00, 0x02, 0xff, 0xff, 0xff, 0x9f, 0xe9, 0xa0, 0x0a, 0xc4, 0x94,\r
+    0xa7, 0x5f, 0x17, 0x80, 0x04, 0xfa, 0x20, 0x00, 0x36, 0x87, 0x78, 0x63,\r
+    0x13, 0x00, 0x00, 0xaf, 0x03, 0xa0, 0x0a, 0x07, 0xbf, 0xe0, 0x77, 0x2f,\r
+    0x07, 0xfa, 0x20, 0x00, 0x36, 0x87, 0x00, 0x78, 0x63, 0x00, 0x00, 0x02,\r
+    0xaa, 0xfa, 0xaa, 0x0f, 0xaa, 0xaa, 0x20, 0x02, 0xd9, 0xc1, 0xd4, 0xa7,\r
+    0xe0, 0x5f, 0x17, 0x05, 0x00, 0x00, 0x36, 0x87, 0x78, 0x03, 0x63, 0x00,\r
+    0x00, 0x00, 0x02, 0xff, 0xd9, 0xc1, 0xfc, 0xd4, 0xa7, 0x5f, 0x17, 0x07,\r
+    0x03, 0x36, 0x87, 0x23, 0x78, 0x63, 0x01, 0x02, 0x44, 0x20, 0x07, 0x07,\r
+    0xf0, 0x77, 0x2f, 0x07, 0x05, 0x36, 0x87, 0x78, 0x63, 0xfe, 0x07, 0x07,\r
+    0x77, 0x2f, 0x07, 0x07, 0x02, 0x36, 0x1f, 0x87, 0x78, 0x63, 0x07, 0x07,\r
+    0x77, 0x2f, 0x07, 0xc0, 0x07, 0x02, 0x36, 0x87, 0x78, 0x63, 0x11, 0x11,\r
+    0x7f, 0x11, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x00, 0x11, 0x36,\r
+    0x87, 0x29, 0x66, 0x55, 0x55, 0x55, 0xfe, 0xe9, 0xd4, 0xa7, 0x5f, 0x17,\r
+    0x07, 0x07, 0x55, 0x00, 0x66, 0x92, 0x23, 0x96, 0x68, 0x88, 0x88, 0x88,\r
+    0xfe, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x06, 0x86, 0x01, 0x69, 0x32,\r
+    0x21, 0x33, 0x55, 0x55, 0x55, 0xe9, 0xfc, 0xd4, 0xa7, 0x5f, 0x17, 0x07,\r
+    0x07, 0x55, 0x33, 0x00, 0x12,\r
+};\r
+\r
 \r
 #endif\r
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.c b/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.c
new file mode 100644 (file)
index 0000000..87ff5fe
--- /dev/null
@@ -0,0 +1,902 @@
+//*****************************************************************************\r
+//\r
+// formike128x128x16.c - Display driver for the Formike Electronic\r
+//                       KWH015C04-F01 CSTN panel with an ST7637 controller.\r
+//\r
+// Copyright (c) 2008 Luminary Micro, Inc.  All rights reserved.\r
+// \r
+// Software License Agreement\r
+// \r
+// Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
+// exclusively on LMI's microcontroller products.\r
+// \r
+// The software is owned by LMI and/or its suppliers, and is protected under\r
+// applicable copyright laws.  All rights are reserved.  You may not combine\r
+// this software with "viral" open-source software in order to form a larger\r
+// program.  Any use in violation of the foregoing restrictions may subject\r
+// the user to criminal sanctions under applicable laws, as well as to civil\r
+// liability for the breach of the terms and conditions of this license.\r
+// \r
+// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
+// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
+// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
+// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
+// \r
+// This is part of revision 2523 of the Stellaris Peripheral Driver Library.\r
+//\r
+//*****************************************************************************\r
+\r
+//*****************************************************************************\r
+//\r
+//! \addtogroup ek_lm3s3748_api\r
+//! @{\r
+//\r
+//*****************************************************************************\r
+\r
+#include "hw_gpio.h"\r
+#include "hw_memmap.h"\r
+#include "hw_types.h"\r
+#include "gpio.h"\r
+#include "sysctl.h"\r
+#include "rom.h"\r
+#include "grlib.h"\r
+#include "formike128x128x16.h"\r
+#include <string.h>\r
+\r
+//*****************************************************************************\r
+//\r
+// Defines for the pins that are used to communicate with the ST7637.\r
+//\r
+//*****************************************************************************\r
+#define LCD_A0_BASE            GPIO_PORTB_BASE\r
+#define LCD_A0_PIN             GPIO_PIN_2\r
+#define LCD_WR_BASE            GPIO_PORTC_BASE\r
+#define LCD_WR_PIN             GPIO_PIN_4\r
+#define LCD_RD_BASE            GPIO_PORTC_BASE\r
+#define LCD_RD_PIN             GPIO_PIN_5\r
+#define LCD_BL_BASE            GPIO_PORTF_BASE\r
+#define LCD_BL_PIN             GPIO_PIN_1\r
+#define LCD_DATA_BASE          GPIO_PORTG_BASE\r
+\r
+//*****************************************************************************\r
+//\r
+// Translates a 24-bit RGB color to a display driver-specific color.\r
+//\r
+// \param c is the 24-bit RGB color.  The least-significant byte is the blue\r
+// channel, the next byte is the green channel, and the third byte is the red\r
+// channel.\r
+//\r
+// This macro translates a 24-bit RGB color into a value that can be written\r
+// into the display's frame buffer in order to reproduce that color, or the\r
+// closest possible approximation of that color.\r
+//\r
+// \return Returns the display-driver specific color.\r
+//\r
+//*****************************************************************************\r
+#define DPYCOLORTRANSLATE(c)    ((((c) & 0x00ff0000) >> 19) |               \\r
+                                 ((((c) & 0x0000ff00) >> 5) & 0x000007e0) | \\r
+                                 ((((c) & 0x000000ff) << 8) & 0x0000f800))\r
+\r
+//*****************************************************************************\r
+//\r
+// Writes a data word to the ST7637.\r
+//\r
+//*****************************************************************************\r
+static void\r
+WriteData(unsigned char ucData)\r
+{\r
+    //\r
+    // Write the data to the data bus.\r
+    //\r
+    HWREG(LCD_DATA_BASE + GPIO_O_DATA + (0xff << 2)) = ucData;\r
+\r
+    //\r
+    // Assert the write enable signal.\r
+    //\r
+    HWREG(LCD_WR_BASE + GPIO_O_DATA + (LCD_WR_PIN << 2)) = 0;\r
+\r
+    //\r
+    // Deassert the write enable signal.\r
+    //\r
+    HWREG(LCD_WR_BASE + GPIO_O_DATA + (LCD_WR_PIN << 2)) = LCD_WR_PIN;\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+// Writes a command to the ST7637.\r
+//\r
+//*****************************************************************************\r
+static void\r
+WriteCommand(unsigned char ucData)\r
+{\r
+    //\r
+    // Write the command to the data bus.\r
+    //\r
+    HWREG(LCD_DATA_BASE + GPIO_O_DATA + (0xff << 2)) = ucData;\r
+\r
+    //\r
+    // Set the A0 signal low, indicating a command.\r
+    //\r
+    HWREG(LCD_A0_BASE + GPIO_O_DATA + (LCD_A0_PIN << 2)) = 0;\r
+\r
+    //\r
+    // Assert the write enable signal.\r
+    //\r
+    HWREG(LCD_WR_BASE + GPIO_O_DATA + (LCD_WR_PIN << 2)) = 0;\r
+\r
+    //\r
+    // Deassert the write enable signal.\r
+    //\r
+    HWREG(LCD_WR_BASE + GPIO_O_DATA + (LCD_WR_PIN << 2)) = LCD_WR_PIN;\r
+\r
+    //\r
+    // Set the A0 signal high, indicating that following writes are data.\r
+    //\r
+    HWREG(LCD_A0_BASE + GPIO_O_DATA + (LCD_A0_PIN << 2)) = LCD_A0_PIN;\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Initializes the display driver.\r
+//!\r
+//! This function initializes the ST7637 display controller on the panel,\r
+//! preparing it to display data.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+void\r
+Formike128x128x16Init(void)\r
+{\r
+    unsigned long ulClockMS, ulCount;\r
+\r
+    //\r
+    // Get the value to pass to SysCtlDelay() in order to delay for 1 ms.\r
+    //\r
+    ulClockMS = SysCtlClockGet() / (3 * 1000);\r
+\r
+    //\r
+    // Enable the GPIO peripherals used to interface to the ST7637.\r
+    //\r
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);\r
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);\r
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);\r
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);\r
+\r
+    //\r
+    // Configure the pins that connect to the LCD as GPIO outputs.\r
+    //\r
+    GPIOPinTypeGPIOOutput(LCD_A0_BASE, LCD_A0_PIN);\r
+    GPIOPinTypeGPIOOutput(LCD_WR_BASE, LCD_WR_PIN);\r
+    GPIOPinTypeGPIOOutput(LCD_RD_BASE, LCD_RD_PIN);\r
+    GPIOPinTypeGPIOOutput(LCD_BL_BASE, LCD_BL_PIN);\r
+    GPIOPinTypeGPIOOutput(LCD_DATA_BASE, 0xff);\r
+\r
+    //\r
+    // Set the LCD control pins to their default values.\r
+    //\r
+    GPIOPinWrite(LCD_A0_BASE, LCD_A0_PIN, LCD_A0_PIN);\r
+    GPIOPinWrite(LCD_WR_BASE, LCD_WR_PIN | LCD_RD_PIN,\r
+                     LCD_WR_PIN | LCD_RD_PIN);\r
+    GPIOPinWrite(LCD_BL_BASE, LCD_BL_PIN, 0);\r
+    GPIOPinWrite(LCD_DATA_BASE, 0xff, 0x00);\r
+\r
+    //\r
+    // Perform a software reset of the ST7637.\r
+    //\r
+    WriteCommand(0x01);\r
+\r
+    //\r
+    // Delay for 120ms.\r
+    //\r
+    SysCtlDelay(ulClockMS * 120);\r
+\r
+    //\r
+    // Disable auto-load of mask rom data.\r
+    //\r
+    WriteCommand(0xD7);\r
+    WriteData(0xBF);\r
+\r
+    //\r
+    // Set the OTP control mode to read.\r
+    //\r
+    WriteCommand(0xE0);\r
+    WriteData(0x00);\r
+\r
+    //\r
+    // Delay for 10ms.\r
+    //\r
+    SysCtlDelay(ulClockMS * 10);\r
+\r
+    //\r
+    // Start the OTP read.\r
+    //\r
+    WriteCommand(0xE3);\r
+\r
+    //\r
+    // Delay for 20ms.\r
+    //\r
+    SysCtlDelay(ulClockMS * 20);\r
+\r
+    //\r
+    // Cancel the OTP read (it should have finished by now).\r
+    //\r
+    WriteCommand(0xE1);\r
+\r
+    //\r
+    // Turn off the display.\r
+    //\r
+    WriteCommand(0x28);\r
+\r
+    //\r
+    // Exit sleep mode.\r
+    //\r
+    WriteCommand(0x11);\r
+\r
+    //\r
+    // Delay for 50ms.\r
+    //\r
+    SysCtlDelay(ulClockMS * 50);\r
+\r
+    //\r
+    // Program the LCD supply voltage V0 to 14V.\r
+    //\r
+    WriteCommand(0xC0);\r
+    WriteData(0x04);\r
+    WriteData(0x01);\r
+\r
+    //\r
+    // Select an LCD bias voltage ratio of 1/12.\r
+    //\r
+    WriteCommand(0xC3);\r
+    WriteData(0x00);\r
+\r
+    //\r
+    // Enable the x8 booster circuit.\r
+    //\r
+    WriteCommand(0xC4);\r
+    WriteData(0x07);\r
+\r
+    //\r
+    // Invert the column scan direction for the panel.\r
+    //\r
+    WriteCommand(0xB7);\r
+    WriteData(0xC0);\r
+\r
+    //\r
+    // Select 16bpp, 5-6-5 data input mode.\r
+    //\r
+    WriteCommand(0x3A);\r
+    WriteData(0x05);\r
+\r
+    //\r
+    // Select the memory scanning direction.  The scanning mode does not matter\r
+    // for this driver since the row/column selects will constrain the writes\r
+    // to the desired area of the display.\r
+    //\r
+    WriteCommand(0x36);\r
+    WriteData(0x00);\r
+\r
+    //\r
+    // Turn on the display.\r
+    //\r
+    WriteCommand(0x29);\r
+\r
+    //\r
+    // Clear the contents of the display buffer.\r
+    //\r
+    WriteCommand(0x2A);\r
+    WriteData(0x00);\r
+    WriteData(0x7F);\r
+    WriteCommand(0x2B);\r
+    WriteData(0x01);\r
+    WriteData(0x80);\r
+    WriteCommand(0x2c);\r
+    for(ulCount = 0; ulCount < (128 * 128); ulCount++)\r
+    {\r
+        WriteData(0x00);\r
+        WriteData(0x00);\r
+    }\r
+\r
+    //\r
+    // Enable normal operation of the LCD.\r
+    //\r
+    WriteCommand(0x13);\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Turns on the backlight.\r
+//!\r
+//! This function turns on the backlight on the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+void\r
+Formike128x128x16BacklightOn(void)\r
+{\r
+    //\r
+    // Assert the signal that turns on the backlight.\r
+    //\r
+    HWREG(LCD_BL_BASE + GPIO_O_DATA + (LCD_BL_PIN << 2)) = LCD_BL_PIN;\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Turns off the backlight.\r
+//!\r
+//! This function turns off the backlight on the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+void\r
+Formike128x128x16BacklightOff(void)\r
+{\r
+    //\r
+    // Deassert the signal that turns on the backlight.\r
+    //\r
+    HWREG(LCD_BL_BASE + GPIO_O_DATA + (LCD_BL_PIN << 2)) = 0;\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Draws a pixel on the screen.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param lX is the X coordinate of the pixel.\r
+//! \param lY is the Y coordinate of the pixel.\r
+//! \param ulValue is the color of the pixel.\r
+//!\r
+//! This function sets the given pixel to a particular color.  The coordinates\r
+//! of the pixel are assumed to be within the extents of the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16PixelDraw(void *pvDisplayData, long lX, long lY,\r
+                           unsigned long ulValue)\r
+{\r
+    //\r
+    // Set the X address of the display cursor.\r
+    //\r
+    WriteCommand(0x2a);\r
+    WriteData(lX);\r
+    WriteData(lX);\r
+\r
+    //\r
+    // Set the Y address of the display cursor.\r
+    //\r
+    WriteCommand(0x2b);\r
+    WriteData(lY + 1);\r
+    WriteData(lY + 1);\r
+\r
+    //\r
+    // Write the pixel value.\r
+    //\r
+    WriteCommand(0x2c);\r
+    WriteData(ulValue >> 8);\r
+    WriteData(ulValue);\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Draws a horizontal sequence of pixels on the screen.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param lX is the X coordinate of the first pixel.\r
+//! \param lY is the Y coordinate of the first pixel.\r
+//! \param lX0 is sub-pixel offset within the pixel data, which is valid for 1\r
+//! or 4 bit per pixel formats.\r
+//! \param lCount is the number of pixels to draw.\r
+//! \param lBPP is the number of bits per pixel; must be 1, 4, or 8.\r
+//! \param pucData is a pointer to the pixel data.  For 1 and 4 bit per pixel\r
+//! formats, the most significant bit(s) represent the left-most pixel.\r
+//! \param pucPalette is a pointer to the palette used to draw the pixels.\r
+//!\r
+//! This function draws a horizontal sequence of pixels on the screen, using\r
+//! the supplied palette.  For 1 bit per pixel format, the palette contains\r
+//! pre-translated colors; for 4 and 8 bit per pixel formats, the palette\r
+//! contains 24-bit RGB values that must be translated before being written to\r
+//! the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16PixelDrawMultiple(void *pvDisplayData, long lX, long lY,\r
+                                   long lX0, long lCount, long lBPP,\r
+                                   const unsigned char *pucData,\r
+                                   const unsigned char *pucPalette)\r
+{\r
+    unsigned long ulByte;\r
+\r
+    //\r
+    // Set the extent of the line along the X axis.\r
+    //\r
+    WriteCommand(0x2a);\r
+    WriteData(lX);\r
+    WriteData(lX + lCount - 1);\r
+\r
+    //\r
+    // Set the Y address of the display cursor.\r
+    //\r
+    WriteCommand(0x2b);\r
+    WriteData(lY + 1);\r
+    WriteData(lY + 1);\r
+\r
+    //\r
+    // Write the data RAM write command.\r
+    //\r
+    WriteCommand(0x2c);\r
+\r
+    //\r
+    // Determine how to interpret the pixel data based on the number of bits\r
+    // per pixel.\r
+    //\r
+    switch(lBPP)\r
+    {\r
+        //\r
+        // The pixel data is in 1 bit per pixel format.\r
+        //\r
+        case 1:\r
+        {\r
+            //\r
+            // Loop while there are more pixels to draw.\r
+            //\r
+            while(lCount)\r
+            {\r
+                //\r
+                // Get the next byte of image data.\r
+                //\r
+                ulByte = *pucData++;\r
+\r
+                //\r
+                // Loop through the pixels in this byte of image data.\r
+                //\r
+                for(; (lX0 < 8) && lCount; lX0++, lCount--)\r
+                {\r
+                    //\r
+                    // Draw this pixel in the appropriate color.\r
+                    //\r
+                    lBPP = ((unsigned long *)pucPalette)[(ulByte >>\r
+                                                          (7 - lX0)) & 1];\r
+                    WriteData(lBPP >> 8);\r
+                    WriteData(lBPP);\r
+                }\r
+\r
+                //\r
+                // Start at the beginning of the next byte of image data.\r
+                //\r
+                lX0 = 0;\r
+            }\r
+\r
+            //\r
+            // The image data has been drawn.\r
+            //\r
+            break;\r
+        }\r
+\r
+        //\r
+        // The pixel data is in 4 bit per pixel format.\r
+        //\r
+        case 4:\r
+        {\r
+            //\r
+            // Loop while there are more pixels to draw.  "Duff's device" is\r
+            // used to jump into the middle of the loop if the first nibble of\r
+            // the pixel data should not be used.  Duff's device makes use of\r
+            // the fact that a case statement is legal anywhere within a\r
+            // sub-block of a switch statement.  See\r
+            // http://en.wikipedia.org/wiki/Duff's_device for detailed\r
+            // information about Duff's device.\r
+            //\r
+            switch(lX0 & 1)\r
+            {\r
+                case 0:\r
+                    while(lCount)\r
+                    {\r
+                        //\r
+                        // Get the upper nibble of the next byte of pixel data\r
+                        // and extract the corresponding entry from the\r
+                        // palette.\r
+                        //\r
+                        ulByte = (*pucData >> 4) * 3;\r
+                        ulByte = (*(unsigned long *)(pucPalette + ulByte) &\r
+                                  0x00ffffff);\r
+\r
+                        //\r
+                        // Translate this palette entry and write it to the\r
+                        // screen.\r
+                        //\r
+                        ulByte = DPYCOLORTRANSLATE(ulByte);\r
+                        WriteData(ulByte >> 8);\r
+                        WriteData(ulByte);\r
+\r
+                        //\r
+                        // Decrement the count of pixels to draw.\r
+                        //\r
+                        lCount--;\r
+\r
+                        //\r
+                        // See if there is another pixel to draw.\r
+                        //\r
+                        if(lCount)\r
+                        {\r
+                case 1:\r
+                            //\r
+                            // Get the lower nibble of the next byte of pixel\r
+                            // data and extract the corresponding entry from\r
+                            // the palette.\r
+                            //\r
+                            ulByte = (*pucData++ & 15) * 3;\r
+                            ulByte = (*(unsigned long *)(pucPalette + ulByte) &\r
+                                      0x00ffffff);\r
+\r
+                            //\r
+                            // Translate this palette entry and write it to the\r
+                            // screen.\r
+                            //\r
+                            ulByte = DPYCOLORTRANSLATE(ulByte);\r
+                            WriteData(ulByte >> 8);\r
+                            WriteData(ulByte);\r
+\r
+                            //\r
+                            // Decrement the count of pixels to draw.\r
+                            //\r
+                            lCount--;\r
+                        }\r
+                    }\r
+            }\r
+\r
+            //\r
+            // The image data has been drawn.\r
+            //\r
+            break;\r
+        }\r
+\r
+        //\r
+        // The pixel data is in 8 bit per pixel format.\r
+        //\r
+        case 8:\r
+        {\r
+            //\r
+            // Loop while there are more pixels to draw.\r
+            //\r
+            while(lCount--)\r
+            {\r
+                //\r
+                // Get the next byte of pixel data and extract the\r
+                // corresponding entry from the palette.\r
+                //\r
+                ulByte = *pucData++ * 3;\r
+                ulByte = *(unsigned long *)(pucPalette + ulByte) & 0x00ffffff;\r
+\r
+                //\r
+                // Translate this palette entry and write it to the screen.\r
+                //\r
+                ulByte = DPYCOLORTRANSLATE(ulByte);\r
+                WriteData(ulByte >> 8);\r
+                WriteData(ulByte);\r
+            }\r
+\r
+            //\r
+            // The image data has been drawn.\r
+            //\r
+            break;\r
+        }\r
+    }\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Flushes any cached drawing operations.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//!\r
+//! This functions flushes any cached drawing operations to the display.  This\r
+//! is useful when a local frame buffer is used for drawing operations, and the\r
+//! flush would copy the local frame buffer to the display.  For the ST7637\r
+//! driver, the flush is a no operation.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16Flush(void *pvDisplayData)\r
+{\r
+    //\r
+    // There is nothing to be done.\r
+    //\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Draws a horizontal line.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param lX1 is the X coordinate of the start of the line.\r
+//! \param lX2 is the X coordinate of the end of the line.\r
+//! \param lY is the Y coordinate of the line.\r
+//! \param ulValue is the color of the line.\r
+//!\r
+//! This function draws a horizontal line on the display.  The coordinates of\r
+//! the line are assumed to be within the extents of the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16LineDrawH(void *pvDisplayData, long lX1, long lX2, long lY,\r
+                           unsigned long ulValue)\r
+{\r
+    //\r
+    // Set the extent of the line along the X axis.\r
+    //\r
+    WriteCommand(0x2a);\r
+    WriteData(lX1);\r
+    WriteData(lX2);\r
+\r
+    //\r
+    // Set the Y address of the display cursor.\r
+    //\r
+    WriteCommand(0x2b);\r
+    WriteData(lY + 1);\r
+    WriteData(lY + 1);\r
+\r
+    //\r
+    // Write the data RAM write command.\r
+    //\r
+    WriteCommand(0x2c);\r
+\r
+    //\r
+    // Loop through the pixels of this horizontal line.\r
+    //\r
+    while(lX1++ <= lX2)\r
+    {\r
+        //\r
+        // Write the pixel value.\r
+        //\r
+        WriteData(ulValue >> 8);\r
+        WriteData(ulValue);\r
+    }\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Draws a vertical line.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param lX is the X coordinate of the line.\r
+//! \param lY1 is the Y coordinate of the start of the line.\r
+//! \param lY2 is the Y coordinate of the end of the line.\r
+//! \param ulValue is the color of the line.\r
+//!\r
+//! This function draws a vertical line on the display.  The coordinates of the\r
+//! line are assumed to be within the extents of the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16LineDrawV(void *pvDisplayData, long lX, long lY1, long lY2,\r
+                           unsigned long ulValue)\r
+{\r
+    //\r
+    // Set the X address of the display cursor.\r
+    //\r
+    WriteCommand(0x2a);\r
+    WriteData(lX);\r
+    WriteData(lX);\r
+\r
+    //\r
+    // Set the extent of the line along the Y axis.\r
+    //\r
+    WriteCommand(0x2b);\r
+    WriteData(lY1 + 1);\r
+    WriteData(lY2 + 1);\r
+\r
+    //\r
+    // Write the data RAM write command.\r
+    //\r
+    WriteCommand(0x2c);\r
+\r
+    //\r
+    // Loop through the pixels of this vertical line.\r
+    //\r
+    while(lY1++ <= lY2)\r
+    {\r
+        //\r
+        // Write the pixel value.\r
+        //\r
+        WriteData(ulValue >> 8);\r
+        WriteData(ulValue);\r
+    }\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Fills a rectangle.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param pRect is a pointer to the structure describing the rectangle.\r
+//! \param ulValue is the color of the rectangle.\r
+//!\r
+//! This function fills a rectangle on the display.  The coordinates of the\r
+//! rectangle are assumed to be within the extents of the display, and the\r
+//! rectangle specification is fully inclusive (i.e. both sXMin and sXMax are\r
+//! drawn, along with sYMin and sYMax).\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16RectFill(void *pvDisplayData, const tRectangle *pRect,\r
+                          unsigned long ulValue)\r
+{\r
+    long lCount;\r
+\r
+    //\r
+    // Set the extent of the rectangle along the X axis.\r
+    //\r
+    WriteCommand(0x2a);\r
+    WriteData(pRect->sXMin);\r
+    WriteData(pRect->sXMax);\r
+\r
+    //\r
+    // Set the extent of the rectangle along the Y axis.\r
+    //\r
+    WriteCommand(0x2b);\r
+    WriteData(pRect->sYMin + 1);\r
+    WriteData(pRect->sYMax + 1);\r
+\r
+    //\r
+    // Write the data RAM write command.\r
+    //\r
+    WriteCommand(0x2c);\r
+\r
+    //\r
+    // Loop through the pixels in this rectangle.\r
+    //\r
+    for(lCount = ((pRect->sXMax - pRect->sXMin + 1) *\r
+                  (pRect->sYMax - pRect->sYMin + 1)); lCount > 0; lCount--)\r
+    {\r
+        //\r
+        // Write the pixel value.\r
+        //\r
+        WriteData(ulValue >> 8);\r
+        WriteData(ulValue);\r
+    }\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Translates a 24-bit RGB color to a display driver-specific color.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param ulValue is the 24-bit RGB color.  The least-significant byte is the\r
+//! blue channel, the next byte is the green channel, and the third byte is the\r
+//! red channel.\r
+//!\r
+//! This function translates a 24-bit RGB color into a value that can be\r
+//! written into the display's frame buffer in order to reproduce that color,\r
+//! or the closest possible approximation of that color.\r
+//!\r
+//! \return Returns the display-driver specific color.\r
+//\r
+//*****************************************************************************\r
+static unsigned long\r
+Formike128x128x16ColorTranslate(void *pvDisplayData, unsigned long ulValue)\r
+{\r
+    //\r
+    // Translate from a 24-bit RGB color to a 5-6-5 RGB color.\r
+    //\r
+    return(DPYCOLORTRANSLATE(ulValue));\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! The display structure that describes the driver for the Formike Electronic\r
+//! KWH015C04-F01 CSTN panel with an ST7637 controller.\r
+//\r
+//*****************************************************************************\r
+const tDisplay g_sFormike128x128x16 =\r
+{\r
+    sizeof(tDisplay),\r
+    0,\r
+    128,\r
+    128,\r
+    Formike128x128x16PixelDraw,\r
+    Formike128x128x16PixelDrawMultiple,\r
+    Formike128x128x16LineDrawH,\r
+    Formike128x128x16LineDrawV,\r
+    Formike128x128x16RectFill,\r
+    Formike128x128x16ColorTranslate,\r
+    Formike128x128x16Flush\r
+};\r
+\r
+//*****************************************************************************\r
+//\r
+// Close the Doxygen group.\r
+//! @}\r
+//\r
+//*****************************************************************************\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+/* FreeRTOS.org demo wrappers.  These are required so the prototypes for the\r
+functions are the same as for the display drivers used by other evaluation\r
+kits. */\r
+\r
+static tContext sContext;\r
+\r
+void vFormike128x128x16Clear( void )\r
+{\r
+const tRectangle xRectangle = { 0, 0, 127, 127 };\r
+\r
+    GrContextForegroundSet( &sContext, ClrBlack );\r
+    GrRectFill( &sContext, &xRectangle );\r
+       GrContextForegroundSet(&sContext, ClrWhite);\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vFormike128x128x16StringDraw( const char *pcString, unsigned long lX, unsigned long lY, unsigned char ucColor )\r
+{\r
+       GrContextForegroundSet(&sContext, ClrWhite);\r
+       GrStringDraw( &sContext, pcString, strlen( pcString ), lX, lY, false );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vFormike128x128x16Init( unsigned long ul )\r
+{\r
+tRectangle rectScreen;\r
+const unsigned char *pcAppName = "www.FreeRTOS.org";\r
+\r
+       ( void ) ul;\r
+       \r
+    Formike128x128x16Init();\r
+    Formike128x128x16BacklightOn();\r
+    GrContextInit(&sContext, &g_sFormike128x128x16);\r
+    GrContextFontSet(&sContext, &g_sFontCmss12);\r
+    rectScreen.sXMin = 0;\r
+\r
+       /* Fill the screen with a black rectangle. */\r
+    rectScreen.sYMin = 0;\r
+    rectScreen.sXMax = g_sFormike128x128x16.usWidth - 1;\r
+    rectScreen.sYMax = g_sFormike128x128x16.usHeight - 1;\r
+    GrContextForegroundSet(&sContext, ClrBlack);\r
+    GrRectFill(&sContext, &rectScreen);\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vFormike128x128x16ImageDraw( const unsigned char *pucImage, unsigned long ulX, unsigned long ulY, unsigned long ulWidth, unsigned long ulHeight )\r
+{\r
+       GrImageDraw( &sContext, pucImage, ( long ) ulX, ( long ) ulY);\r
+}\r
+\r
+\r
+\r
+\r
diff --git a/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.h b/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/formike128x128x16.h
new file mode 100644 (file)
index 0000000..feaec75
--- /dev/null
@@ -0,0 +1,51 @@
+//*****************************************************************************\r
+//\r
+// formike128x128x16.h - Prototypes for the Formike Electronic KWH015C04-F01\r
+//                       display driver.\r
+//\r
+// Copyright (c) 2008 Luminary Micro, Inc.  All rights reserved.\r
+// \r
+// Software License Agreement\r
+// \r
+// Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
+// exclusively on LMI's microcontroller products.\r
+// \r
+// The software is owned by LMI and/or its suppliers, and is protected under\r
+// applicable copyright laws.  All rights are reserved.  You may not combine\r
+// this software with "viral" open-source software in order to form a larger\r
+// program.  Any use in violation of the foregoing restrictions may subject\r
+// the user to criminal sanctions under applicable laws, as well as to civil\r
+// liability for the breach of the terms and conditions of this license.\r
+// \r
+// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
+// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
+// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
+// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
+// \r
+// This is part of revision 2523 of the Stellaris Peripheral Driver Library.\r
+//\r
+//*****************************************************************************\r
+\r
+#ifndef __FORMIKE128X128X16_H__\r
+#define __FORMIKE128X128X16_H__\r
+\r
+//*****************************************************************************\r
+//\r
+// Prototypes for the globals exported by this driver.\r
+//\r
+//*****************************************************************************\r
+extern void Formike128x128x16Init(void);\r
+extern void Formike128x128x16BacklightOn(void);\r
+extern void Formike128x128x16BacklightOff(void);\r
+extern const tDisplay g_sFormike128x128x16;\r
+\r
+/* FreeRTOS.org demo wrappers.  These are required so the prototypes for the\r
+functions are the same as for the display drivers used by other evaluation\r
+kits. */\r
+void vFormike128x128x16Clear( void );\r
+void vFormike128x128x16StringDraw( const char *pcString, unsigned long lX, unsigned long lY, unsigned char ucColor );\r
+void vFormike128x128x16Init( unsigned long ul );\r
+void vFormike128x128x16ImageDraw( const unsigned char *pucImage, unsigned long ulX, unsigned long ulY, unsigned long ulWidth, unsigned long ulHeight );\r
+\r
+#endif // __FORMIKE128X128X16_H__\r
index 0261cecaf6e17a942dc9bf1bde14fff3237fdbf9..20897f6ecefe8975e0c5c3ff3600a3de36ab0bd3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
 \r
 \r
 \r
+\r
+/************************************************************************* \r
+ * Please ensure to read http://www.freertos.org/portLM3Sxxxx_Eclipse.html\r
+ * which provides information on configuring and running this demo for the\r
+ * various Luminary Micro EKs.\r
+ *************************************************************************/\r
+\r
+\r
+\r
+\r
 /* Standard includes. */\r
 #include <stdio.h>\r
 \r
 #include "queue.h"\r
 #include "semphr.h"\r
 \r
+/* Hardware library includes. */\r
+#include "hw_memmap.h"\r
+#include "hw_types.h"\r
+#include "hw_sysctl.h"\r
+#include "sysctl.h"\r
+#include "gpio.h"\r
+#include "grlib.h"\r
+#include "rit128x96x4.h"\r
+#include "osram128x64x4.h"\r
+#include "formike128x128x16.h"\r
+\r
 /* Demo app includes. */\r
 #include "BlockQ.h"\r
 #include "death.h"\r
 #include "QPeek.h"\r
 #include "recmutex.h"\r
 \r
-/* Hardware library includes. */\r
-#include "hw_memmap.h"\r
-#include "hw_types.h"\r
-#include "hw_sysctl.h"\r
-#include "sysctl.h"\r
-#include "gpio.h"\r
-#include "rit128x96x4.h"\r
-#include "osram128x64x4.h"\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
@@ -149,6 +162,7 @@ the jitter time in nano seconds. */
 \r
 /* Constants used when writing strings to the display. */\r
 #define mainCHARACTER_HEIGHT                           ( 9 )\r
+#define mainMAX_ROWS_128                                       ( mainCHARACTER_HEIGHT * 14 )\r
 #define mainMAX_ROWS_96                                                ( mainCHARACTER_HEIGHT * 10 )\r
 #define mainMAX_ROWS_64                                                ( mainCHARACTER_HEIGHT * 7 )\r
 #define mainFULL_SCALE                                         ( 15 )\r
@@ -199,6 +213,11 @@ unsigned portLONG ulIdleError = pdFALSE;
 \r
 /*-----------------------------------------------------------*/\r
 \r
+/************************************************************************* \r
+ * Please ensure to read http://www.freertos.org/portLM3Sxxxx_Eclipse.html\r
+ * which provides information on configuring and running this demo for the\r
+ * various Luminary Micro EKs.\r
+ *************************************************************************/\r
 int main( void )\r
 {\r
        prvSetupHardware();\r
@@ -272,6 +291,7 @@ void vApplicationTickHook( void )
 {\r
 static xOLEDMessage xMessage = { "PASS" };\r
 static unsigned portLONG ulTicksSinceLastDisplay = 0;\r
+static portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;\r
 \r
        /* Called from every tick interrupt.  Have enough ticks passed to make it\r
        time to perform our health status check again? */\r
@@ -323,7 +343,8 @@ static unsigned portLONG ulTicksSinceLastDisplay = 0;
                }\r
 \r
                /* Send the message to the OLED gatekeeper for display. */\r
-               xQueueSendFromISR( xOLEDQueue, &xMessage, pdFALSE );\r
+               xHigherPriorityTaskWoken = pdFALSE;\r
+               xQueueSendFromISR( xOLEDQueue, &xMessage, &xHigherPriorityTaskWoken );\r
        }\r
 }\r
 /*-----------------------------------------------------------*/\r
@@ -335,13 +356,14 @@ unsigned portLONG ulY, ulMaxY;
 static portCHAR cMessage[ mainMAX_MSG_LEN ];\r
 extern unsigned portLONG ulMaxJitter;\r
 unsigned portBASE_TYPE uxUnusedStackOnEntry, uxUnusedStackNow;\r
+const unsigned portCHAR *pucImage;\r
 \r
 /* Functions to access the OLED.  The one used depends on the dev kit\r
 being used. */\r
-void ( *vOLEDInit )( unsigned portLONG );\r
-void ( *vOLEDStringDraw )( const portCHAR *, unsigned portLONG, unsigned portLONG, unsigned portCHAR );\r
-void ( *vOLEDImageDraw )( const unsigned portCHAR *, unsigned portLONG, unsigned portLONG, unsigned portLONG, unsigned portLONG );\r
-void ( *vOLEDClear )( void );\r
+void ( *vOLEDInit )( unsigned portLONG ) = NULL;\r
+void ( *vOLEDStringDraw )( const portCHAR *, unsigned portLONG, unsigned portLONG, unsigned portCHAR ) = NULL;\r
+void ( *vOLEDImageDraw )( const unsigned portCHAR *, unsigned portLONG, unsigned portLONG, unsigned portLONG, unsigned portLONG ) = NULL;\r
+void ( *vOLEDClear )( void ) = NULL;\r
 \r
        /* Just for demo purposes. */\r
        uxUnusedStackOnEntry = uxTaskGetStackHighWaterMark( NULL );\r
@@ -356,13 +378,24 @@ void ( *vOLEDClear )( void );
                                                                                vOLEDImageDraw = OSRAM128x64x4ImageDraw;\r
                                                                                vOLEDClear = OSRAM128x64x4Clear;\r
                                                                                ulMaxY = mainMAX_ROWS_64;\r
+                                                                               pucImage = pucBasicBitmap;\r
                                                                                break;\r
                                                                                \r
-               default                                         :       vOLEDInit = RIT128x96x4Init;\r
+               case SYSCTL_DID1_PRTNO_1968     :       \r
+               case SYSCTL_DID1_PRTNO_8962 :   vOLEDInit = RIT128x96x4Init;\r
                                                                                vOLEDStringDraw = RIT128x96x4StringDraw;\r
                                                                                vOLEDImageDraw = RIT128x96x4ImageDraw;\r
                                                                                vOLEDClear = RIT128x96x4Clear;\r
-                                                                               ulMaxY = mainMAX_ROWS_96;                                                                               \r
+                                                                               ulMaxY = mainMAX_ROWS_96;\r
+                                                                               pucImage = pucBasicBitmap;\r
+                                                                               break;\r
+                                                                               \r
+               default                                         :       vOLEDInit = vFormike128x128x16Init;\r
+                                                                               vOLEDStringDraw = vFormike128x128x16StringDraw;\r
+                                                                               vOLEDImageDraw = vFormike128x128x16ImageDraw;\r
+                                                                               vOLEDClear = vFormike128x128x16Clear;\r
+                                                                               ulMaxY = mainMAX_ROWS_128;\r
+                                                                               pucImage = pucGrLibBitmap;\r
                                                                                break;\r
        }\r
 \r
@@ -370,11 +403,9 @@ void ( *vOLEDClear )( void );
        \r
        /* Initialise the OLED and display a startup message. */\r
        vOLEDInit( ulSSI_FREQUENCY );   \r
-       vOLEDStringDraw( " POWERED BY FreeRTOS", 0, 0, mainFULL_SCALE );\r
+       vOLEDStringDraw( "POWERED BY FreeRTOS", 0, 0, mainFULL_SCALE );\r
        vOLEDImageDraw( pucImage, 0, mainCHARACTER_HEIGHT + 1, bmpBITMAP_WIDTH, bmpBITMAP_HEIGHT );\r
        \r
-       uxUnusedStackNow = uxTaskGetStackHighWaterMark( NULL );\r
-       \r
        for( ;; )\r
        {\r
                /* Wait for a message to arrive that requires displaying. */\r
@@ -397,69 +428,9 @@ void ( *vOLEDClear )( void );
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-void vApplicationIdleHook( void )\r
-{\r
-       /* This is just a sanity check function to test the port is\r
-       functioning correctly.  It can be removed from real applications.\r
-       \r
-       Fill the general purpose registers with known values. */\r
-       __asm volatile( "    mov r11, #10               \n"\r
-                                       "    add r0, r11, #1    \n"\r
-                                       "    add r1, r11, #2    \n"\r
-                           "    add r2, r11, #3        \n"\r
-                           "    add r3, r11, #4        \n"\r
-                           "    add r4, r11, #5        \n"\r
-                           "    add r5, r11, #6        \n"\r
-                           "    add r6, r11, #7        \n"\r
-                           "    add r7, r11, #8        \n"\r
-                           "    add r8, r11, #9        \n"\r
-                           "    add r9, r11, #10       \n"\r
-                           "    add r10, r11, #11      \n"\r
-                           "    add r12, r11, #12" );\r
-       \r
-       /* Check the values are as expected.  A context switch might\r
-       have occurred since setting the register values. */\r
-       __asm volatile( "    cmp r11, #10                       \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r0, #11                    \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r1, #12                    \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r2, #13                    \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r3, #14                    \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r4, #15                    \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r5, #16                    \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r6, #17                    \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r7, #18                    \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r8, #19                    \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r9, #20                    \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r10, #21                   \n"\r
-                           "    bne set_error_flag             \n"\r
-                           "    cmp r12, #22                   \n"\r
-                           "    bne set_error_flag             \n"\r
-                                       "        bx r14                                 \n"\r
-                                       "                                                       \n"     /* If an error is detected in the */                                    \r
-                                       "set_error_flag:                        \n" /* value of a register then the error */\r
-                                       "       ldr r1, ulIdleErrorConst\n" /* variable will be set to true.  This */\r
-                                       "       mov r0, #1                              \n" /* will cause       an error message to be */\r
-                                       "       str r0, [r1]                    \n" /* written to the OLED. */\r
-                                       "       bx r14                                  \n"\r
-                                       "                                                       \n"\r
-                                       "       .align 2                                \n"                     \r
-                                       "ulIdleErrorConst: .word ulIdleError" );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
 void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed portCHAR *pcTaskName )\r
 {\r
        for( ;; );\r
 }\r
 \r
+\r
index c17c9fe4a75164fb86a289244b9173d890bc9589..994efcdbff496a9f30656013b338646e5a9c2056 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
@@ -81,7 +81,7 @@ zero. */
 void Timer0IntHandler( void );\r
 \r
 /* Stores the value of the maximum recorded jitter between interrupts. */\r
-unsigned portLONG ulMaxJitter = 0;\r
+volatile unsigned portLONG ulMaxJitter = 0;\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
@@ -102,6 +102,9 @@ unsigned long ulFrequency;
        /* Just used to measure time. */\r
     TimerLoadSet(TIMER1_BASE, TIMER_A, timerMAX_32BIT_VALUE );\r
        \r
+       /* Ensure interrupts do not start until the scheduler is running. */\r
+       portDISABLE_INTERRUPTS();\r
+       \r
        /* The rate at which the timer will interrupt. */\r
        ulFrequency = configCPU_CLOCK_HZ / timerINTERRUPT_FREQUENCY;    \r
     TimerLoadSet( TIMER0_BASE, TIMER_A, ulFrequency );\r
@@ -116,7 +119,8 @@ unsigned long ulFrequency;
 \r
 void Timer0IntHandler( void )\r
 {\r
-unsigned portLONG ulDifference, ulCurrentCount;\r
+unsigned portLONG ulDifference;\r
+volatile unsigned portLONG ulCurrentCount;\r
 static portLONG ulMaxDifference = 0, ulLastCount = 0;\r
 \r
        /* We use the timer 1 counter value to measure the clock cycles between\r
index fd7b8c6e7726e4431d4f64376e2a00b79c08cdc5..3829a7d2e35388109a6e3d4b7f36b76969b1e470 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 166be8524c397c6d5e58a6f8fd9c8e938f956244..b3321ad9d789f24ae81bee01250a118f68afbd80 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7b03dadad09464fb0db13ef71f7cc0f9f52c3038..ff9387432fcce89772bf19b604ad58cbf1887a03 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
  * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.\r
  *----------------------------------------------------------*/\r
 \r
-#define configUSE_PREEMPTION           1\r
-#define configUSE_IDLE_HOOK                    0\r
-#define configUSE_TICK_HOOK                    1\r
-#define configCPU_CLOCK_HZ                     ( ( unsigned portLONG ) 50000000 )\r
-#define configTICK_RATE_HZ                     ( ( portTickType ) 1000 )\r
-#define configMINIMAL_STACK_SIZE       ( ( unsigned portSHORT ) 70 )\r
-#define configTOTAL_HEAP_SIZE          ( ( size_t ) ( 24000 ) )\r
-#define configMAX_TASK_NAME_LEN                ( 12 )\r
-#define configUSE_TRACE_FACILITY       1\r
-#define configUSE_16_BIT_TICKS         0\r
-#define configIDLE_SHOULD_YIELD                0\r
-#define configUSE_CO_ROUTINES          0\r
-#define configUSE_MUTEXES                      1\r
+#define configUSE_PREEMPTION                   1\r
+#define configUSE_IDLE_HOOK                            0\r
+#define configUSE_TICK_HOOK                            1\r
+#define configCPU_CLOCK_HZ                             ( ( unsigned portLONG ) 50000000 )\r
+#define configTICK_RATE_HZ                             ( ( portTickType ) 1000 )\r
+#define configMINIMAL_STACK_SIZE               ( ( unsigned portSHORT ) 70 )\r
+#define configTOTAL_HEAP_SIZE                  ( ( size_t ) ( 24000 ) )\r
+#define configMAX_TASK_NAME_LEN                        ( 12 )\r
+#define configUSE_TRACE_FACILITY               1\r
+#define configUSE_16_BIT_TICKS                 0\r
+#define configIDLE_SHOULD_YIELD                        0\r
+#define configUSE_CO_ROUTINES                  0\r
+#define configUSE_MUTEXES                              1\r
+#define configCHECK_FOR_STACK_OVERFLOW 2\r
 \r
 #define configMAX_PRIORITIES           ( ( unsigned portBASE_TYPE ) 5 )\r
 #define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
index df167ab768ac24b447ba51788fbf51a59b4165a4..84324a045594e8a40d4876bfb7b9eed78bfb6b3e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 10aef9fdad2a3ea0332cf9a579260ff599272f03..985175e9b63527fb77553dfe2e0ee48b3e754f5d 100644 (file)
@@ -20,37 +20,39 @@ OPTFFF 1,1,1,0,0,0,0,0,<..\Common\Minimal\BlockQ.c><BlockQ.c>
 OPTFFF 1,2,1,0,0,0,0,0,<..\Common\Minimal\blocktim.c><blocktim.c> \r
 OPTFFF 1,3,1,0,0,0,0,0,<..\Common\Minimal\death.c><death.c> \r
 OPTFFF 1,4,1,0,0,0,0,0,<..\Common\Minimal\integer.c><integer.c> \r
-OPTFFF 1,5,1,0,0,0,0,0,<.\main.c><main.c> \r
+OPTFFF 1,5,1,2,0,1,1,0,<.\main.c><main.c> { 44,0,0,0,2,0,0,0,3,0,0,0,255,255,255,255,255,255,255,255,252,255,255,255,232,255,255,255,110,0,0,0,115,0,0,0,248,3,0,0,22,2,0,0 }\r
 OPTFFF 1,6,1,0,0,0,0,0,<.\ParTest\ParTest.c><ParTest.c> \r
 OPTFFF 1,7,1,0,0,0,0,0,<..\Common\Minimal\PollQ.c><PollQ.c> \r
 OPTFFF 1,8,1,0,0,0,0,0,<..\Common\Minimal\semtest.c><semtest.c> \r
 OPTFFF 1,9,2,0,0,0,0,0,<.\startup_rvmdk.S><startup_rvmdk.S> \r
 OPTFFF 1,10,1,0,0,0,0,0,<.\timertest.c><timertest.c> \r
-OPTFFF 1,11,5,822083584,0,0,0,0,<.\FreeRTOSConfig.h><FreeRTOSConfig.h> \r
+OPTFFF 1,11,5,922746880,0,0,0,0,<.\FreeRTOSConfig.h><FreeRTOSConfig.h> \r
 OPTFFF 1,12,1,0,0,0,0,0,<..\Common\Minimal\GenQTest.c><GenQTest.c> \r
 OPTFFF 1,13,1,0,0,0,0,0,<..\Common\Minimal\QPeek.c><QPeek.c> \r
 OPTFFF 2,14,1,0,0,0,0,0,<.\rit128x96x4.c><rit128x96x4.c> \r
 OPTFFF 2,15,1,0,0,0,0,0,<.\osram128x64x4.c><osram128x64x4.c> \r
 OPTFFF 2,16,4,0,0,0,0,0,<..\Common\drivers\LuminaryMicro\Keil\driverlib.lib><driverlib.lib> \r
-OPTFFF 3,17,1,0,0,0,0,0,<..\..\Source\tasks.c><tasks.c> \r
-OPTFFF 3,18,1,0,0,0,0,0,<..\..\Source\list.c><list.c> \r
-OPTFFF 3,19,1,0,0,0,0,0,<..\..\Source\queue.c><queue.c> \r
-OPTFFF 3,20,1,335544320,0,0,0,0,<..\..\Source\portable\RVDS\ARM_CM3\port.c><port.c> \r
-OPTFFF 3,21,1,0,0,0,0,0,<..\..\Source\portable\MemMang\heap_2.c><heap_2.c> \r
-OPTFFF 4,22,1,822083584,0,0,0,0,<.\webserver\uIP_Task.c><uIP_Task.c> \r
-OPTFFF 4,23,1,754974720,0,0,0,0,<.\webserver\emac.c><emac.c> \r
-OPTFFF 4,24,1,0,0,0,0,0,<.\webserver\httpd.c><httpd.c> \r
-OPTFFF 4,25,1,0,0,0,0,0,<.\webserver\httpd-cgi.c><httpd-cgi.c> \r
-OPTFFF 4,26,1,0,0,0,0,0,<.\webserver\httpd-fs.c><httpd-fs.c> \r
-OPTFFF 4,27,1,0,0,0,0,0,<.\webserver\http-strings.c><http-strings.c> \r
-OPTFFF 4,28,1,0,0,0,0,0,<..\Common\ethernet\uIP\uip-1.0\uip\uip_arp.c><uip_arp.c> \r
-OPTFFF 4,29,1,0,0,0,0,0,<..\Common\ethernet\uIP\uip-1.0\uip\psock.c><psock.c> \r
-OPTFFF 4,30,1,0,0,0,0,0,<..\Common\ethernet\uIP\uip-1.0\uip\timer.c><timer.c> \r
-OPTFFF 4,31,1,0,0,0,0,0,<..\Common\ethernet\uIP\uip-1.0\uip\uip.c><uip.c> \r
+OPTFFF 2,17,1,0,0,0,0,0,<.\formike128x128x16.c><formike128x128x16.c> \r
+OPTFFF 2,18,4,0,0,0,0,0,<..\Common\drivers\LuminaryMicro\Keil\grlib.lib><grlib.lib> \r
+OPTFFF 3,19,1,0,0,0,0,0,<..\..\Source\tasks.c><tasks.c> \r
+OPTFFF 3,20,1,0,0,0,0,0,<..\..\Source\list.c><list.c> \r
+OPTFFF 3,21,1,0,0,0,0,0,<..\..\Source\queue.c><queue.c> \r
+OPTFFF 3,22,1,402653184,0,0,0,0,<..\..\Source\portable\RVDS\ARM_CM3\port.c><port.c> \r
+OPTFFF 3,23,1,0,0,0,0,0,<..\..\Source\portable\MemMang\heap_2.c><heap_2.c> \r
+OPTFFF 4,24,1,822083584,0,0,0,0,<.\webserver\uIP_Task.c><uIP_Task.c> \r
+OPTFFF 4,25,1,0,0,0,0,0,<.\webserver\emac.c><emac.c> \r
+OPTFFF 4,26,1,0,0,0,0,0,<.\webserver\httpd.c><httpd.c> \r
+OPTFFF 4,27,1,0,0,0,0,0,<.\webserver\httpd-cgi.c><httpd-cgi.c> \r
+OPTFFF 4,28,1,0,0,0,0,0,<.\webserver\httpd-fs.c><httpd-fs.c> \r
+OPTFFF 4,29,1,0,0,0,0,0,<.\webserver\http-strings.c><http-strings.c> \r
+OPTFFF 4,30,1,0,0,0,0,0,<..\Common\ethernet\uIP\uip-1.0\uip\uip_arp.c><uip_arp.c> \r
+OPTFFF 4,31,1,0,0,0,0,0,<..\Common\ethernet\uIP\uip-1.0\uip\psock.c><psock.c> \r
+OPTFFF 4,32,1,0,0,0,0,0,<..\Common\ethernet\uIP\uip-1.0\uip\timer.c><timer.c> \r
+OPTFFF 4,33,1,0,0,0,0,0,<..\Common\ethernet\uIP\uip-1.0\uip\uip.c><uip.c> \r
 \r
 \r
 TARGOPT 1, (FreeRTOS_Demo)\r
- ADSCLK=8000000\r
+ ADSCLK=6000000\r
   OPTTT 1,1,1,0\r
   OPTHX 1,65535,0,0,0\r
   OPTLX 79,66,8,<.\rvmdk\>\r
@@ -59,10 +61,10 @@ TARGOPT 1, (FreeRTOS_Demo)
   OPTXL 1,1,1,1,1,1,1,0,0\r
   OPTFL 1,0,1\r
   OPTAX 255\r
-  OPTBL 0,(Data Sheet)<DATASHTS\Luminary\LM3S6965.PDF>\r
-  OPTDL (SARMCM3.DLL)()(DLM.DLL)(-pLM3S6965)(SARMCM3.DLL)()(TLM.DLL)(-pLM3S6965)\r
+  OPTBL 0,(Data Sheet)<DATASHTS\Luminary\LM3S2965.PDF>\r
+  OPTDL (SARMCM3.DLL)()(DLM.DLL)(-pLM3S2965)(SARMCM3.DLL)()(TLM.DLL)(-pLM3S2965)\r
   OPTDBG 48126,4,()()()()()()()()()() (BIN\lmidk-agdi.dll)()()()\r
-  OPTKEY 0,(DLGTARM)((1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(101=-1,-1,-1,-1,0)(102=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)(1014=-1,-1,-1,-1,0)(1016=-1,-1,-1,-1,0))\r
+  OPTKEY 0,(DLGTARM)((1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(101=-1,-1,-1,-1,0)(102=-1,-1,-1,-1,0)(103=-1,-1,-1,-1,0)(104=-1,-1,-1,-1,0)(105=-1,-1,-1,-1,0)(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(163=-1,-1,-1,-1,0)(164=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)(152=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)(1014=-1,-1,-1,-1,0)(1016=-1,-1,-1,-1,0)(136=-1,-1,-1,-1,0))\r
   OPTKEY 0,(ARMDBGFLAGS)()\r
   OPTKEY 0,(lmidk-agdi)(-B0 -O1792)\r
   OPTMM 1,2,(0)\r
index 01a8ed6ce1a745e628664f5accac91b51cab1efe..d429c4e58764a6bed8583788ba1e2f531e088486 100644 (file)
@@ -24,6 +24,8 @@ File 1,1,<..\Common\Minimal\QPeek.c><QPeek.c>
 File 2,1,<.\rit128x96x4.c><rit128x96x4.c>\r
 File 2,1,<.\osram128x64x4.c><osram128x64x4.c>\r
 File 2,4,<..\Common\drivers\LuminaryMicro\Keil\driverlib.lib><driverlib.lib>\r
+File 2,1,<.\formike128x128x16.c><formike128x128x16.c>\r
+File 2,4,<..\Common\drivers\LuminaryMicro\Keil\grlib.lib><grlib.lib>\r
 File 3,1,<..\..\Source\tasks.c><tasks.c>\r
 File 3,1,<..\..\Source\list.c><list.c>\r
 File 3,1,<..\..\Source\queue.c><queue.c>\r
@@ -42,13 +44,13 @@ File 4,1,<..\Common\ethernet\uIP\uip-1.0\uip\uip.c><uip.c>
 \r
 \r
 Options 1,0,0  // Target 'FreeRTOS_Demo'\r
- Device (LM3S6965)\r
+ Device (LM3S2965)\r
  Vendor (Luminary Micro)\r
  Cpu (IRAM(0x20000000-0x2000FFFF) IROM(0-0x3FFFF) CLOCK(6000000) CPUTYPE("Cortex-M3"))\r
  FlashUt ()\r
  StupF ("STARTUP\Luminary\Startup.s" ("Luminary Startup Code"))\r
  FlashDR (UL2CM3(-UU0101L5E -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0LM3S_256 -FS00 -FL040000))\r
- DevID (4337)\r
+ DevID (4322)\r
  Rgf (LM3Sxxxx.H)\r
  Mem ()\r
  C ()\r
@@ -123,33 +125,11 @@ Options 1,0,0  // Target 'FreeRTOS_Demo'
  ADSLDMC (--entry Reset_Handler)\r
  ADSLDIF ()\r
  ADSLDDW ()\r
-  OPTDL (SARMCM3.DLL)()(DLM.DLL)(-pLM3S6965)(SARMCM3.DLL)()(TLM.DLL)(-pLM3S6965)\r
+  OPTDL (SARMCM3.DLL)()(DLM.DLL)(-pLM3S2965)(SARMCM3.DLL)()(TLM.DLL)(-pLM3S2965)\r
   OPTDBG 48126,4,()()()()()()()()()() (BIN\lmidk-agdi.dll)()()()\r
  FLASH1 { 1,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0 }\r
  FLASH2 (BIN\lmidk-agdi.dll)\r
- FLASH3 ("" ())\r
+ FLASH3 ()\r
  FLASH4 ()\r
 EndOpt\r
 \r
-Options 1,4,0  // Group 'uIP_Source'\r
- PropFld { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }\r
- IncBld=1\r
- AlwaysBuild=2\r
- GenAsm=2\r
- AsmAsm=2\r
- PublicsOnly=2\r
- StopCode=11\r
- CustArgs ()\r
- LibMods ()\r
- ADSCCFLG { 2,84,85,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }\r
- ADSCMISC ()\r
- ADSCDEFN ()\r
- ADSCUDEF ()\r
- ADSCINCD ()\r
- ADSASFLG { 170,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }\r
- ADSAMISC ()\r
- ADSADEFN ()\r
- ADSAUDEF ()\r
- ADSAINCD ()\r
-EndOpt\r
-\r
index 1f0f615c490a1494b6c325e475c85ff1645aa6ee..d72b28a51e905c6d5b084a160c47e2623b34ee6a 100644 (file)
         <option>\r
           <name>IlinkAdditionalLibs</name>\r
           <state>$PROJ_DIR$\..\Common\drivers\LuminaryMicro\IAR\driverlib.a</state>\r
+          <state>$PROJ_DIR$\..\Common\drivers\LuminaryMicro\IAR\grlib.a</state>\r
         </option>\r
         <option>\r
           <name>IlinkOverrideProgramEntryLabel</name>\r
   <group>\r
     <name>Library files</name>\r
     <file>\r
-      <name>$PROJ_DIR$\..\Common\drivers\LuminaryMicro\IAR\driverlib.r79</name>\r
+      <name>$PROJ_DIR$\..\Common\drivers\LuminaryMicro\IAR\driverlib.a</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\formike128x128x16.c</name>\r
+    </file>\r
+    <file>\r
+      <name>$PROJ_DIR$\..\Common\drivers\LuminaryMicro\IAR\grlib.a</name>\r
     </file>\r
     <file>\r
       <name>$PROJ_DIR$\osram128x64x4.c</name>\r
index 02ce0b365f79e6edb1dab90a42b27736a12b3b7e..29f813fd12bf1a7591da7f40ea4b0e5be3fef61e 100644 (file)
@@ -1,7 +1,10 @@
 #ifndef BITMAP_H\r
 #define BITMAP_H\r
 \r
-const unsigned char pucImage[] =\r
+#define bmpBITMAP_HEIGHT       50\r
+#define bmpBITMAP_WIDTH                128\r
+\r
+const unsigned char pucBasicBitmap[] =\r
 {\r
 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,\r
 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,\r
@@ -165,7 +168,169 @@ const unsigned char pucImage[] =
 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00,\r
 0x00 };\r
 \r
-#define bmpBITMAP_HEIGHT       50\r
-#define bmpBITMAP_WIDTH                128\r
+const unsigned char pucGrLibBitmap[] =\r
+{\r
+    IMAGE_FMT_4BPP_COMP,\r
+    124, 0,\r
+    49, 0,\r
+\r
+    15,\r
+    0x00, 0x00, 0x00,\r
+    0x00, 0x0c, 0x00,\r
+    0x20, 0x44, 0x20,\r
+    0x00, 0x75, 0x00,\r
+    0x69, 0x69, 0x69,\r
+    0x00, 0xc2, 0x00,\r
+    0x00, 0xd2, 0x00,\r
+    0x38, 0xb6, 0x38,\r
+    0x00, 0xea, 0x00,\r
+    0x00, 0xf2, 0x00,\r
+    0xaa, 0xb2, 0xaa,\r
+    0x65, 0xff, 0x65,\r
+    0x69, 0xff, 0x69,\r
+    0x6d, 0xff, 0x6d,\r
+    0x71, 0xff, 0x71,\r
+    0xff, 0xff, 0xff,\r
+\r
+    0x03, 0x21, 0x33, 0x53, 0x33, 0x33, 0x33, 0xe9, 0xd4, 0xf8, 0xa7, 0x5f,\r
+    0x17, 0x07, 0x06, 0x35, 0x33, 0x12, 0x03, 0x23, 0x96, 0x68, 0x88, 0x88,\r
+    0x88, 0xe9, 0xd4, 0xf8, 0xa7, 0x5f, 0x17, 0x07, 0x06, 0x86, 0x69, 0x32,\r
+    0x03, 0x29, 0x66, 0x65, 0x66, 0x66, 0x66, 0xe9, 0xd4, 0xf8, 0xa7, 0x5f,\r
+    0x17, 0x07, 0x06, 0x56, 0x66, 0x92, 0x07, 0x78, 0x63, 0x11, 0x11, 0x11,\r
+    0xe9, 0xd4, 0xa7, 0xf0, 0x5f, 0x17, 0x07, 0x07, 0x11, 0x36, 0x87, 0x78,\r
+    0x0f, 0x63, 0x00, 0x00, 0x00, 0xe9, 0xd4, 0xa7, 0x5f, 0xe0, 0x17, 0x07,\r
+    0x07, 0x00, 0x36, 0x87, 0x78, 0x63, 0xfe, 0x07, 0x07, 0x77, 0x2f, 0x07,\r
+    0x07, 0x02, 0x36, 0x1e, 0x87, 0x78, 0x63, 0x07, 0x07, 0x77, 0x2f, 0x00,\r
+    0x10, 0x01, 0x22, 0x20, 0x07, 0x00, 0x00, 0x22, 0x21, 0x84, 0x03, 0x36,\r
+    0x87, 0x78, 0x63, 0x02, 0x02, 0xaa, 0x01, 0xa2, 0x22, 0x20, 0x02, 0x77,\r
+    0x77, 0x77, 0xe9, 0x3a, 0x22, 0x22, 0x7a, 0xa4, 0x71, 0x20, 0x0a, 0x27,\r
+    0xb8, 0x29, 0x72, 0xb2, 0x9e, 0x93, 0x36, 0x87, 0x78, 0x40, 0x63, 0x62,\r
+    0x2a, 0xff, 0xf2, 0xaa, 0x40, 0x07, 0x08, 0xad, 0xdd, 0xdd, 0xdd, 0xe9,\r
+    0xd7, 0x72, 0x00, 0x40, 0x00, 0xa6, 0xdd, 0xda, 0x70, 0x00, 0x00, 0x02,\r
+    0x00, 0x77, 0xdd, 0xdc, 0xcc, 0xcd, 0xde, 0xc7, 0x20, 0x00, 0x00, 0x00,\r
+    0x00, 0x00, 0x01, 0x27, 0xde, 0xdc, 0x08, 0xcc, 0xcc, 0xdd, 0xea, 0x99,\r
+    0x36, 0x87, 0x78, 0x40, 0x63, 0x69, 0x02, 0xaf, 0xaa, 0xf2, 0x2f, 0xa0,\r
+    0x04, 0x02, 0xdb, 0xbb, 0xbb, 0xbb, 0xe9, 0xbc, 0xe7, 0x10, 0x20, 0x00,\r
+    0x07, 0xa5, 0xbb, 0xbd, 0x70, 0x00, 0x10, 0x00, 0x27, 0xec, 0x3b, 0xcd,\r
+    0xd7, 0x00, 0x00, 0x80, 0x9f, 0xbd, 0x20, 0x00, 0x00, 0x36, 0x87, 0x78,\r
+    0x40, 0x63, 0x69, 0x02, 0xfa, 0x2a, 0xf2, 0x2f, 0xa0, 0x31, 0x02, 0xdb,\r
+    0x43, 0x31, 0x42, 0x00, 0x07, 0xa7, 0x0a, 0x70, 0x00, 0x02, 0xdd, 0x41,\r
+    0xcc, 0x21, 0xce, 0x04, 0x70, 0x00, 0x00, 0x02, 0x7d, 0x39, 0xbc, 0xcb,\r
+    0x00, 0xbb, 0xbd, 0x20, 0x00, 0x00, 0x36, 0x87, 0x78, 0x20, 0x63, 0x00,\r
+    0x69, 0xfa, 0x0a, 0xf2, 0x2f, 0xa0, 0x01, 0x02, 0xdb, 0xbb, 0xbb, 0xdd,\r
+    0xdd, 0xdc, 0x11, 0x08, 0xe7, 0x00, 0x07, 0xad, 0xbb, 0xcd, 0xdd, 0xda,\r
+    0x09, 0x70, 0x00, 0x2d, 0xcb, 0x41, 0xcc, 0xdd, 0xd1, 0x04, 0xe7, 0x00,\r
+    0x00, 0x07, 0xeb, 0x51, 0xdc, 0xcd, 0x00, 0xdd, 0xdd, 0x20, 0x00, 0x00,\r
+    0x36, 0x87, 0x78, 0x00, 0x63, 0x00, 0x00, 0x00, 0x02, 0xfa, 0x2a, 0xf2,\r
+    0x00, 0xaf, 0xa0, 0x02, 0xdb, 0xbb, 0xbd, 0x72, 0x22, 0x00, 0x77, 0xdc,\r
+    0xbb, 0xbb, 0xc7, 0x20, 0x07, 0x77, 0x04, 0x77, 0x77, 0xcb, 0xbb, 0xbc,\r
+    0xd1, 0x20, 0x01, 0x28, 0x7d, 0xbb, 0x42, 0x27, 0x41, 0xcd, 0x20, 0x00,\r
+    0x40, 0x27, 0x51, 0x72, 0x22, 0x22, 0x27, 0x7c, 0x20, 0x00, 0x00, 0x00,\r
+    0x36, 0x87, 0x78, 0x63, 0x00, 0x00, 0x00, 0x00, 0x02, 0xaf, 0xaa, 0xfa,\r
+    0xff, 0x20, 0x02, 0x10, 0xdb, 0xbb, 0xbe, 0x61, 0x2d, 0xbb, 0xbb, 0xcc,\r
+    0xa8, 0x29, 0x00, 0x89, 0xbd, 0xc3, 0xeb, 0xbb, 0xbb, 0x00, 0xd7, 0x10,\r
+    0x00, 0x00, 0x2c, 0xcb, 0xbb, 0xbd, 0x58, 0x70, 0x12, 0xc7, 0x13, 0x29,\r
+    0x36, 0x87, 0x78, 0x40, 0x63, 0xa9, 0x00, 0xaf, 0xff, 0xff, 0xfa, 0x20,\r
+    0x08, 0x02, 0xdb, 0xbb, 0xbd, 0x39, 0x07, 0xdb, 0xbb, 0x72, 0xcc, 0x03,\r
+    0x8c, 0x82, 0xbd, 0x70, 0x84, 0xbc, 0x03, 0xd2, 0x00, 0x2d, 0xbb, 0xbb,\r
+    0xd7, 0x19, 0x01, 0x02, 0x00, 0x00, 0x36, 0x87, 0x78, 0x63, 0xa2, 0x0a,\r
+    0x10, 0xaf, 0xff, 0xa2, 0x0a, 0xbd, 0x20, 0x00, 0x00, 0x0c, 0x07, 0xdb,\r
+    0xbb, 0xc7, 0xc9, 0x8e, 0x00, 0x2c, 0x40, 0xcb, 0xc4, 0x00, 0x7c, 0xbb,\r
+    0xbb, 0xe7, 0x00, 0x06, 0x2d, 0xbb, 0xbb, 0xc7, 0x10, 0x92, 0x31, 0x36,\r
+    0x10, 0x87, 0x78, 0x63, 0xab, 0x22, 0x22, 0x00, 0x00, 0x00, 0x02, 0xdb,\r
+    0xbb, 0xbd, 0x20, 0x00, 0x00, 0x07, 0x18, 0xcb, 0xbb, 0xd7, 0x0a, 0x8d,\r
+    0x00, 0x2d, 0xbb, 0x23, 0xbb, 0xc7, 0x82, 0x00, 0x2e, 0xbb, 0x39, 0x91,\r
+    0x20, 0xbd, 0x72, 0x8b, 0x00, 0x00, 0x36, 0x87, 0x78, 0x48, 0x63, 0x33,\r
+    0x02, 0x20, 0xe1, 0xdb, 0xbb, 0xbd, 0x01, 0x20, 0x00, 0x02, 0x7d, 0xbb,\r
+    0xbb, 0xe2, 0x6b, 0x94, 0x8b, 0x00, 0x00, 0x81, 0xd7, 0x82, 0x00, 0x2d,\r
+    0x00, 0xbb, 0xbb, 0xc7, 0x20, 0x2c, 0xcb, 0xbb, 0xbb, 0x10, 0xdd, 0x77,\r
+    0x22, 0x7b, 0x36, 0x87, 0x78, 0x63, 0x80, 0x32, 0x02, 0xaa, 0xf2, 0x22,\r
+    0x20, 0x02, 0xdb, 0x00, 0xbb, 0xbc, 0x77, 0x77, 0x77, 0xdb, 0xbb, 0xce,\r
+    0x42, 0x71, 0x63, 0xdb, 0xbb, 0xbd, 0x20, 0x19, 0x7d, 0x10, 0xbb, 0xbb,\r
+    0xd2, 0x82, 0x00, 0x27, 0xcb, 0xbb, 0x00, 0xc7, 0x20, 0x07, 0xeb, 0xbb,\r
+    0xbb, 0xbb, 0xcd, 0x21, 0xd7, 0x72, 0x72, 0x36, 0x87, 0x78, 0x63, 0x32,\r
+    0x01, 0x4f, 0xff, 0xf2, 0xaf, 0xa0, 0x02, 0xdb, 0x41, 0x03, 0xdd, 0xdc,\r
+    0xbb, 0xbc, 0xd7, 0x20, 0x22, 0x89, 0x42, 0xbd, 0xba, 0x7d, 0xbb, 0xbb,\r
+    0xd2, 0x82, 0x00, 0x02, 0x27, 0xcb, 0xbb, 0xcc, 0x20, 0x02, 0x89, 0xbb,\r
+    0x08, 0xbb, 0xbc, 0xdd, 0x72, 0x31, 0x36, 0x87, 0x78, 0x40, 0x63, 0x31,\r
+    0x02, 0xaf, 0xaa, 0xf2, 0x2f, 0xa0, 0x21, 0x02, 0xdb, 0x3a, 0xbb, 0xbb,\r
+    0xc7, 0x20, 0x31, 0x88, 0x59, 0xdb, 0xbb, 0xbd, 0xb2, 0x7d, 0xbb, 0xbb,\r
+    0x40, 0xd2, 0x7b, 0x27, 0xcb, 0xbb, 0xcc, 0x20, 0x00, 0x00, 0x27, 0xec,\r
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbc, 0xe7, 0x84, 0x29, 0x36, 0x87, 0x78, 0x63,\r
+    0x31, 0x02, 0xfa, 0x02, 0x0a, 0xf2, 0x2f, 0xa0, 0x02, 0xdb, 0x42, 0xbb,\r
+    0x31, 0xbb, 0xc7, 0x39, 0x5a, 0xdb, 0xbb, 0xbd, 0xb2, 0x08, 0x7d, 0xbb,\r
+    0xbb, 0xd2, 0x7b, 0x27, 0xcb, 0xbb, 0x00, 0xcc, 0x20, 0x00, 0x02, 0x77,\r
+    0xed, 0xcb, 0xbb, 0x00, 0xbb, 0xbb, 0xbd, 0x71, 0x00, 0x00, 0x36, 0x87,\r
+    0x20, 0x78, 0x63, 0x31, 0x02, 0xfa, 0x0a, 0xf2, 0x2f, 0x00, 0xa0, 0x02,\r
+    0xdb, 0xbb, 0xbb, 0xcd, 0xdd, 0xcb, 0x18, 0xbb, 0xbc, 0xe2, 0x69, 0x59,\r
+    0xdb, 0xbb, 0xbd, 0x42, 0x20, 0x19, 0x7d, 0xbb, 0xbb, 0xd2, 0x7b, 0x27,\r
+    0x10, 0xcb, 0xbb, 0xcb, 0x79, 0x02, 0x27, 0x7d, 0xdc, 0x00, 0xbb, 0xbb,\r
+    0xbb, 0xe2, 0x00, 0x00, 0x36, 0x87, 0x20, 0x78, 0x63, 0x31, 0x02, 0xfa,\r
+    0x2a, 0xf2, 0xaf, 0x00, 0xa0, 0x02, 0xdb, 0xbb, 0xbd, 0x72, 0x27, 0x4c,\r
+    0x1d, 0xbb, 0xbb, 0xd7, 0x69, 0x59, 0x89, 0x20, 0x19, 0x42, 0x7d, 0x7e,\r
+    0x2c, 0xbb, 0xbb, 0xc7, 0x7a, 0x00, 0x10, 0x22, 0x7c, 0xcb, 0x63, 0x36,\r
+    0x87, 0x78, 0x63, 0x80, 0x31, 0x02, 0xaf, 0xfa, 0xff, 0xff, 0x20, 0x02,\r
+    0x00, 0xdb, 0xbb, 0xbd, 0x20, 0x00, 0x2c, 0xcb, 0xbb, 0x28, 0xcb, 0x20,\r
+    0x61, 0x00, 0x8c, 0x00, 0x00, 0x2d, 0x12, 0xbb, 0xbb, 0xd7, 0x82, 0x00,\r
+    0x2e, 0xbe, 0x00, 0x21, 0x02, 0x7c, 0x63, 0x36, 0x87, 0x78, 0x63, 0x32,\r
+    0x00, 0x2f, 0xff, 0xff, 0xfa, 0x00, 0x02, 0xdb, 0xbb, 0x00, 0xbd, 0x20,\r
+    0x00, 0x07, 0xdb, 0xbb, 0xbe, 0x20, 0xc2, 0x62, 0x8c, 0x00, 0x00, 0x2c,\r
+    0xcb, 0xc4, 0x00, 0x0c, 0x7d, 0xbb, 0xbb, 0xe7, 0x3a, 0x19, 0x2d, 0xbb,\r
+    0x00, 0xbb, 0xc7, 0x00, 0x00, 0x36, 0x87, 0x78, 0x63, 0x80, 0x3a, 0x02,\r
+    0xaa, 0xaa, 0x40, 0x00, 0x02, 0xdb, 0x00, 0xbb, 0xbd, 0x20, 0x00, 0x02,\r
+    0xcc, 0xbb, 0xbd, 0x63, 0x70, 0x63, 0x8b, 0x00, 0x00, 0x07, 0x49, 0x7a,\r
+    0x98, 0x09, 0xbb, 0xd2, 0x3a, 0x19, 0x2d, 0xbb, 0xbb, 0x01, 0xd7, 0x00,\r
+    0x00, 0x36, 0x87, 0x78, 0x63, 0x3a, 0x14, 0xaa, 0x22, 0x20, 0x0b, 0xbd,\r
+    0xc9, 0x7d, 0xbb, 0x30, 0xbb, 0xd2, 0x61, 0x8e, 0x00, 0x02, 0xeb, 0xbb,\r
+    0x20, 0xbb, 0xd7, 0x79, 0x27, 0xcb, 0xbb, 0xbd, 0x70, 0x24, 0x00, 0x02,\r
+    0x6a, 0x00, 0x7d, 0x6b, 0x36, 0x87, 0x24, 0x78, 0x63, 0x39, 0x02, 0xff,\r
+    0x62, 0x02, 0xdb, 0x21, 0xbb, 0xbd, 0x21, 0x2e, 0xbb, 0xbb, 0xe7, 0x61,\r
+    0x80, 0x8e, 0x00, 0x02, 0x7d, 0xbb, 0xbb, 0xbd, 0x72, 0x00, 0x22, 0x27,\r
+    0xcc, 0xbb, 0xbb, 0xcd, 0x20, 0x00, 0x08, 0x07, 0xe7, 0x72, 0x22, 0xa3,\r
+    0xe2, 0x00, 0x00, 0x00, 0x36, 0x87, 0x78, 0x63, 0x00, 0x00, 0x00, 0x02,\r
+    0x20, 0xaf, 0xa0, 0xd2, 0xdb, 0xbb, 0xbd, 0x20, 0x00, 0x03, 0x00, 0x2b,\r
+    0xcb, 0xbb, 0xc7, 0x10, 0x8f, 0x11, 0x01, 0x2d, 0xcb, 0xbb, 0xbb, 0xdd,\r
+    0xb7, 0xcd, 0xd1, 0x00, 0xe7, 0x00, 0x00, 0x07, 0xdc, 0xdd, 0xcb, 0x7b,\r
+    0x00, 0xdd, 0xcb, 0xbb, 0xbc, 0x72, 0x00, 0x00, 0x36, 0x10, 0x87, 0x78,\r
+    0x63, 0x01, 0x00, 0x2a, 0xfa, 0x42, 0x01, 0x22, 0x20, 0x02, 0xdb, 0xbb,\r
+    0xbd, 0x20, 0x01, 0xb0, 0xcc, 0x00, 0x8d, 0xb9, 0xec, 0xbb, 0xbb, 0xbb,\r
+    0x00, 0xcc, 0xcb, 0xbb, 0xbb, 0xbe, 0x71, 0x00, 0x00, 0x05, 0x27, 0xcb,\r
+    0xbb, 0xcc, 0xcc, 0x81, 0xce, 0x29, 0x08, 0x36, 0x87, 0x78, 0x63, 0x02,\r
+    0xaa, 0xff, 0xff, 0x02, 0xff, 0xa0, 0x02, 0xdb, 0xbb, 0xbd, 0x61, 0x02,\r
+    0x0e, 0xeb, 0xbb, 0xbd, 0x70, 0x5a, 0x8c, 0x09, 0x27, 0x00, 0xec, 0xbb,\r
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbd, 0xd7, 0x54, 0x10, 0xa1, 0xcb, 0xa4, 0xd2,\r
+    0x31, 0x36, 0x87, 0x20, 0x78, 0x63, 0x01, 0x02, 0xff, 0xff, 0xff, 0xff,\r
+    0x02, 0xa0, 0x07, 0xad, 0xdd, 0xda, 0x20, 0x99, 0xde, 0x1c, 0xdd, 0xde,\r
+    0xc2, 0x21, 0x8d, 0x0a, 0x7c, 0xed, 0x04, 0xcc, 0xcc, 0xcc, 0xde, 0xd7,\r
+    0x92, 0x2c, 0xed, 0x40, 0xdc, 0xa7, 0x36, 0x87, 0x78, 0x63, 0x00, 0x02,\r
+    0x00, 0x22, 0x02, 0xaa, 0xaa, 0xaa, 0xaa, 0x20, 0x02, 0x1b, 0x77, 0x77,\r
+    0x77, 0x5a, 0xc9, 0x72, 0x21, 0x8e, 0x88, 0xaa, 0x27, 0x77, 0x7b, 0x9d,\r
+    0x12, 0x27, 0x77, 0x20, 0x77, 0xb7, 0x3d, 0x36, 0x87, 0x78, 0x63, 0x00,\r
+    0x3e, 0x02, 0xaa, 0x43, 0x22, 0xc6, 0x87, 0x3e, 0x12, 0x21, 0x22, 0x22,\r
+    0x06, 0x01, 0x22, 0x22, 0x21, 0x04, 0x00, 0x36, 0x87, 0x78, 0x63, 0x00,\r
+    0x02, 0xfa, 0x22, 0x3f, 0xaa, 0x20, 0x26, 0xc6, 0x87, 0x3f, 0x07, 0x07,\r
+    0x00, 0x36, 0x87, 0x78, 0x63, 0x00, 0x02, 0xfa, 0x02, 0x7e, 0xff, 0x07,\r
+    0x07, 0x77, 0x2f, 0x07, 0x06, 0x36, 0x00, 0x87, 0x78, 0x63, 0x00, 0x02,\r
+    0xff, 0xaa, 0xfa, 0x07, 0x44, 0x44, 0x44, 0x20, 0x02, 0xd9, 0xc1, 0xd4,\r
+    0xf0, 0xa7, 0x5f, 0x17, 0x04, 0x42, 0x00, 0x00, 0x36, 0x00, 0x87, 0x78,\r
+    0x63, 0x00, 0x02, 0xff, 0xff, 0xff, 0x9f, 0xe9, 0xa0, 0x0a, 0xc4, 0x94,\r
+    0xa7, 0x5f, 0x17, 0x80, 0x04, 0xfa, 0x20, 0x00, 0x36, 0x87, 0x78, 0x63,\r
+    0x13, 0x00, 0x00, 0xaf, 0x03, 0xa0, 0x0a, 0x07, 0xbf, 0xe0, 0x77, 0x2f,\r
+    0x07, 0xfa, 0x20, 0x00, 0x36, 0x87, 0x00, 0x78, 0x63, 0x00, 0x00, 0x02,\r
+    0xaa, 0xfa, 0xaa, 0x0f, 0xaa, 0xaa, 0x20, 0x02, 0xd9, 0xc1, 0xd4, 0xa7,\r
+    0xe0, 0x5f, 0x17, 0x05, 0x00, 0x00, 0x36, 0x87, 0x78, 0x03, 0x63, 0x00,\r
+    0x00, 0x00, 0x02, 0xff, 0xd9, 0xc1, 0xfc, 0xd4, 0xa7, 0x5f, 0x17, 0x07,\r
+    0x03, 0x36, 0x87, 0x23, 0x78, 0x63, 0x01, 0x02, 0x44, 0x20, 0x07, 0x07,\r
+    0xf0, 0x77, 0x2f, 0x07, 0x05, 0x36, 0x87, 0x78, 0x63, 0xfe, 0x07, 0x07,\r
+    0x77, 0x2f, 0x07, 0x07, 0x02, 0x36, 0x1f, 0x87, 0x78, 0x63, 0x07, 0x07,\r
+    0x77, 0x2f, 0x07, 0xc0, 0x07, 0x02, 0x36, 0x87, 0x78, 0x63, 0x11, 0x11,\r
+    0x7f, 0x11, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x00, 0x11, 0x36,\r
+    0x87, 0x29, 0x66, 0x55, 0x55, 0x55, 0xfe, 0xe9, 0xd4, 0xa7, 0x5f, 0x17,\r
+    0x07, 0x07, 0x55, 0x00, 0x66, 0x92, 0x23, 0x96, 0x68, 0x88, 0x88, 0x88,\r
+    0xfe, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x06, 0x86, 0x01, 0x69, 0x32,\r
+    0x21, 0x33, 0x55, 0x55, 0x55, 0xe9, 0xfc, 0xd4, 0xa7, 0x5f, 0x17, 0x07,\r
+    0x07, 0x55, 0x33, 0x00, 0x12,\r
+};\r
+\r
 \r
 #endif\r
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.c b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.c
new file mode 100644 (file)
index 0000000..188099a
--- /dev/null
@@ -0,0 +1,902 @@
+//*****************************************************************************\r
+//\r
+// formike128x128x16.c - Display driver for the Formike Electronic\r
+//                       KWH015C04-F01 CSTN panel with an ST7637 controller.\r
+//\r
+// Copyright (c) 2008 Luminary Micro, Inc.  All rights reserved.\r
+// \r
+// Software License Agreement\r
+// \r
+// Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
+// exclusively on LMI's microcontroller products.\r
+// \r
+// The software is owned by LMI and/or its suppliers, and is protected under\r
+// applicable copyright laws.  All rights are reserved.  You may not combine\r
+// this software with "viral" open-source software in order to form a larger\r
+// program.  Any use in violation of the foregoing restrictions may subject\r
+// the user to criminal sanctions under applicable laws, as well as to civil\r
+// liability for the breach of the terms and conditions of this license.\r
+// \r
+// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
+// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
+// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
+// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
+// \r
+// This is part of revision 2523 of the Stellaris Peripheral Driver Library.\r
+//\r
+//*****************************************************************************\r
+\r
+//*****************************************************************************\r
+//\r
+//! \addtogroup ek_lm3s3748_api\r
+//! @{\r
+//\r
+//*****************************************************************************\r
+\r
+#include "hw_gpio.h"\r
+#include "hw_memmap.h"\r
+#include "hw_types.h"\r
+#include "gpio.h"\r
+#include "sysctl.h"\r
+#include "rom.h"\r
+#include "grlib.h"\r
+#include "formike128x128x16.h"\r
+#include <string.h>\r
+\r
+//*****************************************************************************\r
+//\r
+// Defines for the pins that are used to communicate with the ST7637.\r
+//\r
+//*****************************************************************************\r
+#define LCD_A0_BASE            GPIO_PORTB_BASE\r
+#define LCD_A0_PIN             GPIO_PIN_2\r
+#define LCD_WR_BASE            GPIO_PORTC_BASE\r
+#define LCD_WR_PIN             GPIO_PIN_4\r
+#define LCD_RD_BASE            GPIO_PORTC_BASE\r
+#define LCD_RD_PIN             GPIO_PIN_5\r
+#define LCD_BL_BASE            GPIO_PORTF_BASE\r
+#define LCD_BL_PIN             GPIO_PIN_1\r
+#define LCD_DATA_BASE          GPIO_PORTG_BASE\r
+\r
+//*****************************************************************************\r
+//\r
+// Translates a 24-bit RGB color to a display driver-specific color.\r
+//\r
+// \param c is the 24-bit RGB color.  The least-significant byte is the blue\r
+// channel, the next byte is the green channel, and the third byte is the red\r
+// channel.\r
+//\r
+// This macro translates a 24-bit RGB color into a value that can be written\r
+// into the display's frame buffer in order to reproduce that color, or the\r
+// closest possible approximation of that color.\r
+//\r
+// \return Returns the display-driver specific color.\r
+//\r
+//*****************************************************************************\r
+#define DPYCOLORTRANSLATE(c)    ((((c) & 0x00ff0000) >> 19) |               \\r
+                                 ((((c) & 0x0000ff00) >> 5) & 0x000007e0) | \\r
+                                 ((((c) & 0x000000ff) << 8) & 0x0000f800))\r
+\r
+//*****************************************************************************\r
+//\r
+// Writes a data word to the ST7637.\r
+//\r
+//*****************************************************************************\r
+static void\r
+WriteData(unsigned char ucData)\r
+{\r
+    //\r
+    // Write the data to the data bus.\r
+    //\r
+    HWREG(LCD_DATA_BASE + GPIO_O_DATA + (0xff << 2)) = ucData;\r
+\r
+    //\r
+    // Assert the write enable signal.\r
+    //\r
+    HWREG(LCD_WR_BASE + GPIO_O_DATA + (LCD_WR_PIN << 2)) = 0;\r
+\r
+    //\r
+    // Deassert the write enable signal.\r
+    //\r
+    HWREG(LCD_WR_BASE + GPIO_O_DATA + (LCD_WR_PIN << 2)) = LCD_WR_PIN;\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+// Writes a command to the ST7637.\r
+//\r
+//*****************************************************************************\r
+static void\r
+WriteCommand(unsigned char ucData)\r
+{\r
+    //\r
+    // Write the command to the data bus.\r
+    //\r
+    HWREG(LCD_DATA_BASE + GPIO_O_DATA + (0xff << 2)) = ucData;\r
+\r
+    //\r
+    // Set the A0 signal low, indicating a command.\r
+    //\r
+    HWREG(LCD_A0_BASE + GPIO_O_DATA + (LCD_A0_PIN << 2)) = 0;\r
+\r
+    //\r
+    // Assert the write enable signal.\r
+    //\r
+    HWREG(LCD_WR_BASE + GPIO_O_DATA + (LCD_WR_PIN << 2)) = 0;\r
+\r
+    //\r
+    // Deassert the write enable signal.\r
+    //\r
+    HWREG(LCD_WR_BASE + GPIO_O_DATA + (LCD_WR_PIN << 2)) = LCD_WR_PIN;\r
+\r
+    //\r
+    // Set the A0 signal high, indicating that following writes are data.\r
+    //\r
+    HWREG(LCD_A0_BASE + GPIO_O_DATA + (LCD_A0_PIN << 2)) = LCD_A0_PIN;\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Initializes the display driver.\r
+//!\r
+//! This function initializes the ST7637 display controller on the panel,\r
+//! preparing it to display data.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+void\r
+Formike128x128x16Init(void)\r
+{\r
+    unsigned long ulClockMS, ulCount;\r
+\r
+    //\r
+    // Get the value to pass to SysCtlDelay() in order to delay for 1 ms.\r
+    //\r
+    ulClockMS = SysCtlClockGet() / (3 * 1000);\r
+\r
+    //\r
+    // Enable the GPIO peripherals used to interface to the ST7637.\r
+    //\r
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);\r
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);\r
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);\r
+    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);\r
+\r
+    //\r
+    // Configure the pins that connect to the LCD as GPIO outputs.\r
+    //\r
+    GPIOPinTypeGPIOOutput(LCD_A0_BASE, LCD_A0_PIN);\r
+    GPIOPinTypeGPIOOutput(LCD_WR_BASE, LCD_WR_PIN);\r
+    GPIOPinTypeGPIOOutput(LCD_RD_BASE, LCD_RD_PIN);\r
+    GPIOPinTypeGPIOOutput(LCD_BL_BASE, LCD_BL_PIN);\r
+    GPIOPinTypeGPIOOutput(LCD_DATA_BASE, 0xff);\r
+\r
+    //\r
+    // Set the LCD control pins to their default values.\r
+    //\r
+    GPIOPinWrite(LCD_A0_BASE, LCD_A0_PIN, LCD_A0_PIN);\r
+    GPIOPinWrite(LCD_WR_BASE, LCD_WR_PIN | LCD_RD_PIN,\r
+                     LCD_WR_PIN | LCD_RD_PIN);\r
+    GPIOPinWrite(LCD_BL_BASE, LCD_BL_PIN, 0);\r
+    GPIOPinWrite(LCD_DATA_BASE, 0xff, 0x00);\r
+\r
+    //\r
+    // Perform a software reset of the ST7637.\r
+    //\r
+    WriteCommand(0x01);\r
+\r
+    //\r
+    // Delay for 120ms.\r
+    //\r
+    SysCtlDelay(ulClockMS * 120);\r
+\r
+    //\r
+    // Disable auto-load of mask rom data.\r
+    //\r
+    WriteCommand(0xD7);\r
+    WriteData(0xBF);\r
+\r
+    //\r
+    // Set the OTP control mode to read.\r
+    //\r
+    WriteCommand(0xE0);\r
+    WriteData(0x00);\r
+\r
+    //\r
+    // Delay for 10ms.\r
+    //\r
+    SysCtlDelay(ulClockMS * 10);\r
+\r
+    //\r
+    // Start the OTP read.\r
+    //\r
+    WriteCommand(0xE3);\r
+\r
+    //\r
+    // Delay for 20ms.\r
+    //\r
+    SysCtlDelay(ulClockMS * 20);\r
+\r
+    //\r
+    // Cancel the OTP read (it should have finished by now).\r
+    //\r
+    WriteCommand(0xE1);\r
+\r
+    //\r
+    // Turn off the display.\r
+    //\r
+    WriteCommand(0x28);\r
+\r
+    //\r
+    // Exit sleep mode.\r
+    //\r
+    WriteCommand(0x11);\r
+\r
+    //\r
+    // Delay for 50ms.\r
+    //\r
+    SysCtlDelay(ulClockMS * 50);\r
+\r
+    //\r
+    // Program the LCD supply voltage V0 to 14V.\r
+    //\r
+    WriteCommand(0xC0);\r
+    WriteData(0x04);\r
+    WriteData(0x01);\r
+\r
+    //\r
+    // Select an LCD bias voltage ratio of 1/12.\r
+    //\r
+    WriteCommand(0xC3);\r
+    WriteData(0x00);\r
+\r
+    //\r
+    // Enable the x8 booster circuit.\r
+    //\r
+    WriteCommand(0xC4);\r
+    WriteData(0x07);\r
+\r
+    //\r
+    // Invert the column scan direction for the panel.\r
+    //\r
+    WriteCommand(0xB7);\r
+    WriteData(0xC0);\r
+\r
+    //\r
+    // Select 16bpp, 5-6-5 data input mode.\r
+    //\r
+    WriteCommand(0x3A);\r
+    WriteData(0x05);\r
+\r
+    //\r
+    // Select the memory scanning direction.  The scanning mode does not matter\r
+    // for this driver since the row/column selects will constrain the writes\r
+    // to the desired area of the display.\r
+    //\r
+    WriteCommand(0x36);\r
+    WriteData(0x00);\r
+\r
+    //\r
+    // Turn on the display.\r
+    //\r
+    WriteCommand(0x29);\r
+\r
+    //\r
+    // Clear the contents of the display buffer.\r
+    //\r
+    WriteCommand(0x2A);\r
+    WriteData(0x00);\r
+    WriteData(0x7F);\r
+    WriteCommand(0x2B);\r
+    WriteData(0x01);\r
+    WriteData(0x80);\r
+    WriteCommand(0x2c);\r
+    for(ulCount = 0; ulCount < (128 * 128); ulCount++)\r
+    {\r
+        WriteData(0x00);\r
+        WriteData(0x00);\r
+    }\r
+\r
+    //\r
+    // Enable normal operation of the LCD.\r
+    //\r
+    WriteCommand(0x13);\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Turns on the backlight.\r
+//!\r
+//! This function turns on the backlight on the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+void\r
+Formike128x128x16BacklightOn(void)\r
+{\r
+    //\r
+    // Assert the signal that turns on the backlight.\r
+    //\r
+    HWREG(LCD_BL_BASE + GPIO_O_DATA + (LCD_BL_PIN << 2)) = LCD_BL_PIN;\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Turns off the backlight.\r
+//!\r
+//! This function turns off the backlight on the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+void\r
+Formike128x128x16BacklightOff(void)\r
+{\r
+    //\r
+    // Deassert the signal that turns on the backlight.\r
+    //\r
+    HWREG(LCD_BL_BASE + GPIO_O_DATA + (LCD_BL_PIN << 2)) = 0;\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Draws a pixel on the screen.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param lX is the X coordinate of the pixel.\r
+//! \param lY is the Y coordinate of the pixel.\r
+//! \param ulValue is the color of the pixel.\r
+//!\r
+//! This function sets the given pixel to a particular color.  The coordinates\r
+//! of the pixel are assumed to be within the extents of the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16PixelDraw(void *pvDisplayData, long lX, long lY,\r
+                           unsigned long ulValue)\r
+{\r
+    //\r
+    // Set the X address of the display cursor.\r
+    //\r
+    WriteCommand(0x2a);\r
+    WriteData(lX);\r
+    WriteData(lX);\r
+\r
+    //\r
+    // Set the Y address of the display cursor.\r
+    //\r
+    WriteCommand(0x2b);\r
+    WriteData(lY + 1);\r
+    WriteData(lY + 1);\r
+\r
+    //\r
+    // Write the pixel value.\r
+    //\r
+    WriteCommand(0x2c);\r
+    WriteData(ulValue >> 8);\r
+    WriteData(ulValue);\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Draws a horizontal sequence of pixels on the screen.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param lX is the X coordinate of the first pixel.\r
+//! \param lY is the Y coordinate of the first pixel.\r
+//! \param lX0 is sub-pixel offset within the pixel data, which is valid for 1\r
+//! or 4 bit per pixel formats.\r
+//! \param lCount is the number of pixels to draw.\r
+//! \param lBPP is the number of bits per pixel; must be 1, 4, or 8.\r
+//! \param pucData is a pointer to the pixel data.  For 1 and 4 bit per pixel\r
+//! formats, the most significant bit(s) represent the left-most pixel.\r
+//! \param pucPalette is a pointer to the palette used to draw the pixels.\r
+//!\r
+//! This function draws a horizontal sequence of pixels on the screen, using\r
+//! the supplied palette.  For 1 bit per pixel format, the palette contains\r
+//! pre-translated colors; for 4 and 8 bit per pixel formats, the palette\r
+//! contains 24-bit RGB values that must be translated before being written to\r
+//! the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16PixelDrawMultiple(void *pvDisplayData, long lX, long lY,\r
+                                   long lX0, long lCount, long lBPP,\r
+                                   const unsigned char *pucData,\r
+                                   const unsigned char *pucPalette)\r
+{\r
+    unsigned long ulByte;\r
+\r
+    //\r
+    // Set the extent of the line along the X axis.\r
+    //\r
+    WriteCommand(0x2a);\r
+    WriteData(lX);\r
+    WriteData(lX + lCount - 1);\r
+\r
+    //\r
+    // Set the Y address of the display cursor.\r
+    //\r
+    WriteCommand(0x2b);\r
+    WriteData(lY + 1);\r
+    WriteData(lY + 1);\r
+\r
+    //\r
+    // Write the data RAM write command.\r
+    //\r
+    WriteCommand(0x2c);\r
+\r
+    //\r
+    // Determine how to interpret the pixel data based on the number of bits\r
+    // per pixel.\r
+    //\r
+    switch(lBPP)\r
+    {\r
+        //\r
+        // The pixel data is in 1 bit per pixel format.\r
+        //\r
+        case 1:\r
+        {\r
+            //\r
+            // Loop while there are more pixels to draw.\r
+            //\r
+            while(lCount)\r
+            {\r
+                //\r
+                // Get the next byte of image data.\r
+                //\r
+                ulByte = *pucData++;\r
+\r
+                //\r
+                // Loop through the pixels in this byte of image data.\r
+                //\r
+                for(; (lX0 < 8) && lCount; lX0++, lCount--)\r
+                {\r
+                    //\r
+                    // Draw this pixel in the appropriate color.\r
+                    //\r
+                    lBPP = ((unsigned long *)pucPalette)[(ulByte >>\r
+                                                          (7 - lX0)) & 1];\r
+                    WriteData(lBPP >> 8);\r
+                    WriteData(lBPP);\r
+                }\r
+\r
+                //\r
+                // Start at the beginning of the next byte of image data.\r
+                //\r
+                lX0 = 0;\r
+            }\r
+\r
+            //\r
+            // The image data has been drawn.\r
+            //\r
+            break;\r
+        }\r
+\r
+        //\r
+        // The pixel data is in 4 bit per pixel format.\r
+        //\r
+        case 4:\r
+        {\r
+            //\r
+            // Loop while there are more pixels to draw.  "Duff's device" is\r
+            // used to jump into the middle of the loop if the first nibble of\r
+            // the pixel data should not be used.  Duff's device makes use of\r
+            // the fact that a case statement is legal anywhere within a\r
+            // sub-block of a switch statement.  See\r
+            // http://en.wikipedia.org/wiki/Duff's_device for detailed\r
+            // information about Duff's device.\r
+            //\r
+            switch(lX0 & 1)\r
+            {\r
+                case 0:\r
+                    while(lCount)\r
+                    {\r
+                        //\r
+                        // Get the upper nibble of the next byte of pixel data\r
+                        // and extract the corresponding entry from the\r
+                        // palette.\r
+                        //\r
+                        ulByte = (*pucData >> 4) * 3;\r
+                        ulByte = (*(unsigned long *)(pucPalette + ulByte) &\r
+                                  0x00ffffff);\r
+\r
+                        //\r
+                        // Translate this palette entry and write it to the\r
+                        // screen.\r
+                        //\r
+                        ulByte = DPYCOLORTRANSLATE(ulByte);\r
+                        WriteData(ulByte >> 8);\r
+                        WriteData(ulByte);\r
+\r
+                        //\r
+                        // Decrement the count of pixels to draw.\r
+                        //\r
+                        lCount--;\r
+\r
+                        //\r
+                        // See if there is another pixel to draw.\r
+                        //\r
+                        if(lCount)\r
+                        {\r
+                case 1:\r
+                            //\r
+                            // Get the lower nibble of the next byte of pixel\r
+                            // data and extract the corresponding entry from\r
+                            // the palette.\r
+                            //\r
+                            ulByte = (*pucData++ & 15) * 3;\r
+                            ulByte = (*(unsigned long *)(pucPalette + ulByte) &\r
+                                      0x00ffffff);\r
+\r
+                            //\r
+                            // Translate this palette entry and write it to the\r
+                            // screen.\r
+                            //\r
+                            ulByte = DPYCOLORTRANSLATE(ulByte);\r
+                            WriteData(ulByte >> 8);\r
+                            WriteData(ulByte);\r
+\r
+                            //\r
+                            // Decrement the count of pixels to draw.\r
+                            //\r
+                            lCount--;\r
+                        }\r
+                    }\r
+            }\r
+\r
+            //\r
+            // The image data has been drawn.\r
+            //\r
+            break;\r
+        }\r
+\r
+        //\r
+        // The pixel data is in 8 bit per pixel format.\r
+        //\r
+        case 8:\r
+        {\r
+            //\r
+            // Loop while there are more pixels to draw.\r
+            //\r
+            while(lCount--)\r
+            {\r
+                //\r
+                // Get the next byte of pixel data and extract the\r
+                // corresponding entry from the palette.\r
+                //\r
+                ulByte = *pucData++ * 3;\r
+                ulByte = *(unsigned long *)(pucPalette + ulByte) & 0x00ffffff;\r
+\r
+                //\r
+                // Translate this palette entry and write it to the screen.\r
+                //\r
+                ulByte = DPYCOLORTRANSLATE(ulByte);\r
+                WriteData(ulByte >> 8);\r
+                WriteData(ulByte);\r
+            }\r
+\r
+            //\r
+            // The image data has been drawn.\r
+            //\r
+            break;\r
+        }\r
+    }\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Flushes any cached drawing operations.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//!\r
+//! This functions flushes any cached drawing operations to the display.  This\r
+//! is useful when a local frame buffer is used for drawing operations, and the\r
+//! flush would copy the local frame buffer to the display.  For the ST7637\r
+//! driver, the flush is a no operation.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16Flush(void *pvDisplayData)\r
+{\r
+    //\r
+    // There is nothing to be done.\r
+    //\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Draws a horizontal line.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param lX1 is the X coordinate of the start of the line.\r
+//! \param lX2 is the X coordinate of the end of the line.\r
+//! \param lY is the Y coordinate of the line.\r
+//! \param ulValue is the color of the line.\r
+//!\r
+//! This function draws a horizontal line on the display.  The coordinates of\r
+//! the line are assumed to be within the extents of the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16LineDrawH(void *pvDisplayData, long lX1, long lX2, long lY,\r
+                           unsigned long ulValue)\r
+{\r
+    //\r
+    // Set the extent of the line along the X axis.\r
+    //\r
+    WriteCommand(0x2a);\r
+    WriteData(lX1);\r
+    WriteData(lX2);\r
+\r
+    //\r
+    // Set the Y address of the display cursor.\r
+    //\r
+    WriteCommand(0x2b);\r
+    WriteData(lY + 1);\r
+    WriteData(lY + 1);\r
+\r
+    //\r
+    // Write the data RAM write command.\r
+    //\r
+    WriteCommand(0x2c);\r
+\r
+    //\r
+    // Loop through the pixels of this horizontal line.\r
+    //\r
+    while(lX1++ <= lX2)\r
+    {\r
+        //\r
+        // Write the pixel value.\r
+        //\r
+        WriteData(ulValue >> 8);\r
+        WriteData(ulValue);\r
+    }\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Draws a vertical line.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param lX is the X coordinate of the line.\r
+//! \param lY1 is the Y coordinate of the start of the line.\r
+//! \param lY2 is the Y coordinate of the end of the line.\r
+//! \param ulValue is the color of the line.\r
+//!\r
+//! This function draws a vertical line on the display.  The coordinates of the\r
+//! line are assumed to be within the extents of the display.\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16LineDrawV(void *pvDisplayData, long lX, long lY1, long lY2,\r
+                           unsigned long ulValue)\r
+{\r
+    //\r
+    // Set the X address of the display cursor.\r
+    //\r
+    WriteCommand(0x2a);\r
+    WriteData(lX);\r
+    WriteData(lX);\r
+\r
+    //\r
+    // Set the extent of the line along the Y axis.\r
+    //\r
+    WriteCommand(0x2b);\r
+    WriteData(lY1 + 1);\r
+    WriteData(lY2 + 1);\r
+\r
+    //\r
+    // Write the data RAM write command.\r
+    //\r
+    WriteCommand(0x2c);\r
+\r
+    //\r
+    // Loop through the pixels of this vertical line.\r
+    //\r
+    while(lY1++ <= lY2)\r
+    {\r
+        //\r
+        // Write the pixel value.\r
+        //\r
+        WriteData(ulValue >> 8);\r
+        WriteData(ulValue);\r
+    }\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Fills a rectangle.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param pRect is a pointer to the structure describing the rectangle.\r
+//! \param ulValue is the color of the rectangle.\r
+//!\r
+//! This function fills a rectangle on the display.  The coordinates of the\r
+//! rectangle are assumed to be within the extents of the display, and the\r
+//! rectangle specification is fully inclusive (i.e. both sXMin and sXMax are\r
+//! drawn, along with sYMin and sYMax).\r
+//!\r
+//! \return None.\r
+//\r
+//*****************************************************************************\r
+static void\r
+Formike128x128x16RectFill(void *pvDisplayData, const tRectangle *pRect,\r
+                          unsigned long ulValue)\r
+{\r
+    long lCount;\r
+\r
+    //\r
+    // Set the extent of the rectangle along the X axis.\r
+    //\r
+    WriteCommand(0x2a);\r
+    WriteData(pRect->sXMin);\r
+    WriteData(pRect->sXMax);\r
+\r
+    //\r
+    // Set the extent of the rectangle along the Y axis.\r
+    //\r
+    WriteCommand(0x2b);\r
+    WriteData(pRect->sYMin + 1);\r
+    WriteData(pRect->sYMax + 1);\r
+\r
+    //\r
+    // Write the data RAM write command.\r
+    //\r
+    WriteCommand(0x2c);\r
+\r
+    //\r
+    // Loop through the pixels in this rectangle.\r
+    //\r
+    for(lCount = ((pRect->sXMax - pRect->sXMin + 1) *\r
+                  (pRect->sYMax - pRect->sYMin + 1)); lCount > 0; lCount--)\r
+    {\r
+        //\r
+        // Write the pixel value.\r
+        //\r
+        WriteData(ulValue >> 8);\r
+        WriteData(ulValue);\r
+    }\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! Translates a 24-bit RGB color to a display driver-specific color.\r
+//!\r
+//! \param pvDisplayData is a pointer to the driver-specific data for this\r
+//! display driver.\r
+//! \param ulValue is the 24-bit RGB color.  The least-significant byte is the\r
+//! blue channel, the next byte is the green channel, and the third byte is the\r
+//! red channel.\r
+//!\r
+//! This function translates a 24-bit RGB color into a value that can be\r
+//! written into the display's frame buffer in order to reproduce that color,\r
+//! or the closest possible approximation of that color.\r
+//!\r
+//! \return Returns the display-driver specific color.\r
+//\r
+//*****************************************************************************\r
+static unsigned long\r
+Formike128x128x16ColorTranslate(void *pvDisplayData, unsigned long ulValue)\r
+{\r
+    //\r
+    // Translate from a 24-bit RGB color to a 5-6-5 RGB color.\r
+    //\r
+    return(DPYCOLORTRANSLATE(ulValue));\r
+}\r
+\r
+//*****************************************************************************\r
+//\r
+//! The display structure that describes the driver for the Formike Electronic\r
+//! KWH015C04-F01 CSTN panel with an ST7637 controller.\r
+//\r
+//*****************************************************************************\r
+const tDisplay g_sFormike128x128x16 =\r
+{\r
+    sizeof(tDisplay),\r
+    0,\r
+    128,\r
+    128,\r
+    Formike128x128x16PixelDraw,\r
+    Formike128x128x16PixelDrawMultiple,\r
+    Formike128x128x16LineDrawH,\r
+    Formike128x128x16LineDrawV,\r
+    Formike128x128x16RectFill,\r
+    Formike128x128x16ColorTranslate,\r
+    Formike128x128x16Flush\r
+};\r
+\r
+//*****************************************************************************\r
+//\r
+// Close the Doxygen group.\r
+//! @}\r
+//\r
+//*****************************************************************************\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+/* FreeRTOS.org demo wrappers.  These are required so the prototypes for the\r
+functions are the same as for the display drivers used by other evaluation\r
+kits. */\r
+\r
+static tContext sContext;\r
+\r
+void vFormike128x128x16Clear( void )\r
+{\r
+const tRectangle xRectangle = { 0, 0, 127, 127 };\r
+\r
+    GrContextForegroundSet( &sContext, ClrBlack );\r
+    GrRectFill( &sContext, &xRectangle );\r
+       GrContextForegroundSet(&sContext, ClrWhite);\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vFormike128x128x16StringDraw( const char *pcString, unsigned long lX, unsigned long lY, unsigned char ucColor )\r
+{\r
+       GrContextForegroundSet(&sContext, ClrWhite);\r
+       GrStringDraw( &sContext, pcString, strlen( pcString ), lX, lY, false );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vFormike128x128x16Init( unsigned long ul )\r
+{\r
+tRectangle rectScreen;\r
+\r
+       ( void ) ul;\r
+       \r
+    Formike128x128x16Init();\r
+    Formike128x128x16BacklightOn();\r
+    GrContextInit(&sContext, &g_sFormike128x128x16);\r
+    GrContextFontSet(&sContext, &g_sFontCmss12);\r
+    rectScreen.sXMin = 0;\r
+\r
+       /* Fill the screen with a black rectangle. */\r
+    rectScreen.sYMin = 0;\r
+    rectScreen.sXMax = g_sFormike128x128x16.usWidth - 1;\r
+    rectScreen.sYMax = g_sFormike128x128x16.usHeight - 1;\r
+    GrContextForegroundSet(&sContext, ClrBlack);\r
+    GrRectFill(&sContext, &rectScreen);\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vFormike128x128x16ImageDraw( const unsigned char *pucImage, unsigned long ulX, unsigned long ulY, unsigned long ulWidth, unsigned long ulHeight )\r
+{\r
+       GrImageDraw( &sContext, pucImage, ( long ) ulX, ( long ) ulY);\r
+\r
+}\r
+\r
+\r
+\r
+\r
diff --git a/Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.h b/Demo/CORTEX_LM3Sxxxx_IAR_Keil/formike128x128x16.h
new file mode 100644 (file)
index 0000000..feaec75
--- /dev/null
@@ -0,0 +1,51 @@
+//*****************************************************************************\r
+//\r
+// formike128x128x16.h - Prototypes for the Formike Electronic KWH015C04-F01\r
+//                       display driver.\r
+//\r
+// Copyright (c) 2008 Luminary Micro, Inc.  All rights reserved.\r
+// \r
+// Software License Agreement\r
+// \r
+// Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
+// exclusively on LMI's microcontroller products.\r
+// \r
+// The software is owned by LMI and/or its suppliers, and is protected under\r
+// applicable copyright laws.  All rights are reserved.  You may not combine\r
+// this software with "viral" open-source software in order to form a larger\r
+// program.  Any use in violation of the foregoing restrictions may subject\r
+// the user to criminal sanctions under applicable laws, as well as to civil\r
+// liability for the breach of the terms and conditions of this license.\r
+// \r
+// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
+// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
+// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
+// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
+// \r
+// This is part of revision 2523 of the Stellaris Peripheral Driver Library.\r
+//\r
+//*****************************************************************************\r
+\r
+#ifndef __FORMIKE128X128X16_H__\r
+#define __FORMIKE128X128X16_H__\r
+\r
+//*****************************************************************************\r
+//\r
+// Prototypes for the globals exported by this driver.\r
+//\r
+//*****************************************************************************\r
+extern void Formike128x128x16Init(void);\r
+extern void Formike128x128x16BacklightOn(void);\r
+extern void Formike128x128x16BacklightOff(void);\r
+extern const tDisplay g_sFormike128x128x16;\r
+\r
+/* FreeRTOS.org demo wrappers.  These are required so the prototypes for the\r
+functions are the same as for the display drivers used by other evaluation\r
+kits. */\r
+void vFormike128x128x16Clear( void );\r
+void vFormike128x128x16StringDraw( const char *pcString, unsigned long lX, unsigned long lY, unsigned char ucColor );\r
+void vFormike128x128x16Init( unsigned long ul );\r
+void vFormike128x128x16ImageDraw( const unsigned char *pucImage, unsigned long ulX, unsigned long ulY, unsigned long ulWidth, unsigned long ulHeight );\r
+\r
+#endif // __FORMIKE128X128X16_H__\r
index 0b8795cc0627e02d87a170cf8f2430774878e14d..f4ac88a4c0d44de77a95ecb5a229e13ec927e94d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
 \r
 \r
 \r
+\r
+/************************************************************************* \r
+ * Please ensure to read http://www.freertos.org/portlm3sx965.html\r
+ * which provides information on configuring and running this demo for the\r
+ * various Luminary Micro EKs.\r
+ *************************************************************************/\r
+\r
+\r
+\r
+\r
 /* Standard includes. */\r
 #include <stdio.h>\r
 \r
 #include "queue.h"\r
 #include "semphr.h"\r
 \r
+/* Hardware library includes. */\r
+#include "hw_memmap.h"\r
+#include "hw_types.h"\r
+#include "hw_sysctl.h"\r
+#include "sysctl.h"\r
+#include "gpio.h"\r
+#include "grlib.h"\r
+#include "rit128x96x4.h"\r
+#include "osram128x64x4.h"\r
+#include "formike128x128x16.h"\r
+\r
 /* Demo app includes. */\r
 #include "BlockQ.h"\r
 #include "death.h"\r
 #include "GenQTest.h"\r
 #include "QPeek.h"\r
 \r
-/* Hardware library includes. */\r
-#include "hw_memmap.h"\r
-#include "hw_types.h"\r
-#include "hw_sysctl.h"\r
-#include "sysctl.h"\r
-#include "gpio.h"\r
-#include "rit128x96x4.h"\r
-#include "osram128x64x4.h"\r
-\r
 /*-----------------------------------------------------------*/\r
 \r
 /* The time between cycles of the 'check' functionality (defined within the\r
@@ -148,6 +160,7 @@ the jitter time in nano seconds. */
 \r
 /* Constants used when writing strings to the display. */\r
 #define mainCHARACTER_HEIGHT                           ( 9 )\r
+#define mainMAX_ROWS_128                                       ( mainCHARACTER_HEIGHT * 14 )\r
 #define mainMAX_ROWS_96                                                ( mainCHARACTER_HEIGHT * 10 )\r
 #define mainMAX_ROWS_64                                                ( mainCHARACTER_HEIGHT * 7 )\r
 #define mainFULL_SCALE                                         ( 15 )\r
@@ -180,6 +193,13 @@ static void prvSetupHardware( void );
  */\r
 extern void vSetupTimer( void );\r
 \r
+/* \r
+ * Hook functions that can get called by the kernel.\r
+ */\r
+void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed portCHAR *pcTaskName );\r
+void vApplicationTickHook( void );\r
+\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /* The queue used to send messages to the OLED task. */\r
@@ -190,6 +210,12 @@ const portCHAR * const pcWelcomeMessage = "   www.FreeRTOS.org";
 \r
 /*-----------------------------------------------------------*/\r
 \r
+\r
+/************************************************************************* \r
+ * Please ensure to read http://www.freertos.org/portlm3sx965.html\r
+ * which provides information on configuring and running this demo for the\r
+ * various Luminary Micro EKs.\r
+ *************************************************************************/\r
 int main( void )\r
 {\r
        prvSetupHardware();\r
@@ -263,6 +289,7 @@ void vApplicationTickHook( void )
 {\r
 static xOLEDMessage xMessage = { "PASS" };\r
 static unsigned portLONG ulTicksSinceLastDisplay = 0;\r
+portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;\r
 \r
        /* Called from every tick interrupt.  Have enough ticks passed to make it\r
        time to perform our health status check again? */\r
@@ -306,7 +333,8 @@ static unsigned portLONG ulTicksSinceLastDisplay = 0;
            }\r
        \r
                /* Send the message to the OLED gatekeeper for display. */\r
-               xQueueSendFromISR( xOLEDQueue, &xMessage, pdFALSE );\r
+               xHigherPriorityTaskWoken = pdFALSE;\r
+               xQueueSendFromISR( xOLEDQueue, &xMessage, &xHigherPriorityTaskWoken );\r
        }\r
 }\r
 /*-----------------------------------------------------------*/\r
@@ -316,14 +344,15 @@ void vOLEDTask( void *pvParameters )
 xOLEDMessage xMessage;\r
 unsigned portLONG ulY, ulMaxY;\r
 static portCHAR cMessage[ mainMAX_MSG_LEN ];\r
-extern unsigned portLONG ulMaxJitter;\r
+extern volatile unsigned portLONG ulMaxJitter;\r
+const unsigned portCHAR *pucImage;\r
 \r
 /* Functions to access the OLED.  The one used depends on the dev kit\r
 being used. */\r
-void ( *vOLEDInit )( unsigned portLONG );\r
-void ( *vOLEDStringDraw )( const portCHAR *, unsigned portLONG, unsigned portLONG, unsigned portCHAR );\r
-void ( *vOLEDImageDraw )( const unsigned portCHAR *, unsigned portLONG, unsigned portLONG, unsigned portLONG, unsigned portLONG );\r
-void ( *vOLEDClear )( void );\r
+void ( *vOLEDInit )( unsigned portLONG ) = NULL;\r
+void ( *vOLEDStringDraw )( const portCHAR *, unsigned portLONG, unsigned portLONG, unsigned portCHAR ) = NULL;\r
+void ( *vOLEDImageDraw )( const unsigned portCHAR *, unsigned portLONG, unsigned portLONG, unsigned portLONG, unsigned portLONG ) = NULL;\r
+void ( *vOLEDClear )( void ) = NULL;\r
 \r
        /* Map the OLED access functions to the driver functions that are appropriate\r
        for the evaluation kit being used. */   \r
@@ -335,21 +364,33 @@ void ( *vOLEDClear )( void );
                                                                                vOLEDImageDraw = OSRAM128x64x4ImageDraw;\r
                                                                                vOLEDClear = OSRAM128x64x4Clear;\r
                                                                                ulMaxY = mainMAX_ROWS_64;\r
+                                                                               pucImage = pucBasicBitmap;\r
                                                                                break;\r
                                                                                \r
-               default                                         :       vOLEDInit = RIT128x96x4Init;\r
+               case SYSCTL_DID1_PRTNO_1968     :       \r
+               case SYSCTL_DID1_PRTNO_8962 :   vOLEDInit = RIT128x96x4Init;\r
                                                                                vOLEDStringDraw = RIT128x96x4StringDraw;\r
                                                                                vOLEDImageDraw = RIT128x96x4ImageDraw;\r
                                                                                vOLEDClear = RIT128x96x4Clear;\r
-                                                                               ulMaxY = mainMAX_ROWS_96;                                                                               \r
+                                                                               ulMaxY = mainMAX_ROWS_96;\r
+                                                                               pucImage = pucBasicBitmap;\r
                                                                                break;\r
+                                                                               \r
+               default                                         :       vOLEDInit = vFormike128x128x16Init;\r
+                                                                               vOLEDStringDraw = vFormike128x128x16StringDraw;\r
+                                                                               vOLEDImageDraw = vFormike128x128x16ImageDraw;\r
+                                                                               vOLEDClear = vFormike128x128x16Clear;\r
+                                                                               ulMaxY = mainMAX_ROWS_128;\r
+                                                                               pucImage = pucGrLibBitmap;\r
+                                                                               break;\r
+                                                                               \r
        }\r
 \r
        ulY = ulMaxY;\r
        \r
        /* Initialise the OLED and display a startup message. */\r
        vOLEDInit( ulSSI_FREQUENCY );   \r
-       vOLEDStringDraw( " POWERED BY FreeRTOS", 0, 0, mainFULL_SCALE );\r
+       vOLEDStringDraw( "POWERED BY FreeRTOS", 0, 0, mainFULL_SCALE );\r
        vOLEDImageDraw( pucImage, 0, mainCHARACTER_HEIGHT + 1, bmpBITMAP_WIDTH, bmpBITMAP_HEIGHT );\r
        \r
        for( ;; )\r
@@ -372,3 +413,12 @@ void ( *vOLEDClear )( void );
                vOLEDStringDraw( cMessage, 0, ulY, mainFULL_SCALE );\r
        }\r
 }\r
+/*-----------------------------------------------------------*/\r
+\r
+void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed portCHAR *pcTaskName )\r
+{\r
+       ( void ) pxTask;\r
+       ( void ) pcTaskName;\r
+\r
+       for( ;; );\r
+}\r
index 463f3cffaf587d950341ee4f381dc59bd7f194ba..857553484ff2cf3bfc7f97bc4ea512c6c847850b 100644 (file)
       </Workspace>\r
       <Disassembly>\r
         <PreferedWindows>\r
-          <Position>2</Position>\r
-          <ScreenPosX>0</ScreenPosX>\r
-          <ScreenPosY>0</ScreenPosY>\r
-          <Windows/>\r
-        </PreferedWindows>\r
+          \r
+          \r
+          \r
+          \r
+        <Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows>\r
         \r
         \r
       <MixedMode>1</MixedMode><CodeCovShow>0</CodeCovShow></Disassembly>\r
-    </Static>\r
+    <Watch><Format><struct_types/><watch_formats/></Format></Watch><QuickWatch><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><Column0>100</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></QuickWatch></Static>\r
     <Windows>\r
       \r
       \r
-    <Wnd2>\r
+    <Wnd1>\r
         <Tabs>\r
           <Tab>\r
             <Identity>TabID-10465-12018</Identity>\r
@@ -48,7 +48,7 @@
           </Tab>\r
         </Tabs>\r
         \r
-      <SelectedTab>0</SelectedTab></Wnd2><Wnd3>\r
+      <SelectedTab>0</SelectedTab></Wnd1><Wnd3>\r
         <Tabs>\r
           <Tab>\r
             <Identity>TabID-21213-12021</Identity>\r
           </Tab>\r
         </Tabs>\r
         \r
-      <SelectedTab>0</SelectedTab></Wnd3><Wnd0><Tabs><Tab><Identity>TabID-2037-3837</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd0></Windows>\r
+      <SelectedTab>0</SelectedTab></Wnd3><Wnd0><Tabs><Tab><Identity>TabID-4412-20270</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd0></Windows>\r
     <Editor>\r
       \r
       \r
       \r
       \r
-    <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\CORTEX_LM3Sxxxx_IAR_Keil\main.c</Filename><XPos>0</XPos><YPos>167</YPos><SelStart>7004</SelStart><SelEnd>7004</SelEnd></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
+    <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\CORTEX_LM3Sxxxx_IAR_Keil\main.c</Filename><XPos>0</XPos><YPos>193</YPos><SelStart>8396</SelStart><SelEnd>8396</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\CORTEX_LM3Sxxxx_IAR_Keil\timertest.c</Filename><XPos>0</XPos><YPos>120</YPos><SelStart>5377</SelStart><SelEnd>5377</SelEnd></Tab><ActiveTab>1</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
     <Positions>\r
       \r
       \r
       \r
       \r
       \r
-    <Top><Row0><Sizes><Toolbar-012825f0><key>iaridepm.enu1</key></Toolbar-012825f0><Toolbar-055365a8><key>debuggergui.enu1</key></Toolbar-055365a8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd0></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1402</Right><x>-2</x><y>-2</y><xscreen>1404</xscreen><yscreen>200</yscreen><sizeHorzCX>1002857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
+    <Top><Row0><Sizes><Toolbar-01282438><key>iaridepm.enu1</key></Toolbar-01282438><Toolbar-05fc2d28><key>debuggergui.enu1</key></Toolbar-05fc2d28></Sizes></Row0></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>488</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>350000</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd0></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1402</Right><x>-2</x><y>-2</y><xscreen>1404</xscreen><yscreen>200</yscreen><sizeHorzCX>1002857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
   </Desktop>\r
 </Project>\r
 \r
index 6b3c233ce2ac005792b36af4de73e8b92b2523c6..83d84be751b5e57d5612bad63796d7fadcab2a26 100644 (file)
           \r
         <Column0>241</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
       </Workspace>\r
-    <Find-in-Files><ColumnWidth0>482</ColumnWidth0><ColumnWidth1>68</ColumnWidth1><ColumnWidth2>826</ColumnWidth2></Find-in-Files><Build><ColumnWidth0>19</ColumnWidth0><ColumnWidth1>1007</ColumnWidth1><ColumnWidth2>268</ColumnWidth2><ColumnWidth3>67</ColumnWidth3></Build><TerminalIO/></Static>\r
+    <Find-in-Files><ColumnWidth0>482</ColumnWidth0><ColumnWidth1>68</ColumnWidth1><ColumnWidth2>826</ColumnWidth2></Find-in-Files><Build><ColumnWidth0>19</ColumnWidth0><ColumnWidth1>1007</ColumnWidth1><ColumnWidth2>268</ColumnWidth2><ColumnWidth3>67</ColumnWidth3></Build><TerminalIO/><Debug-Log/></Static>\r
     <Windows>\r
       \r
-    <Wnd0>\r
+    <Wnd2>\r
         <Tabs>\r
           <Tab>\r
             <Identity>TabID-18883-22024</Identity>\r
           </Tab>\r
         </Tabs>\r
         \r
-      <SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-29040-7360</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab><Tab><Identity>TabID-19024-10413</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab></Tabs><SelectedTab>1</SelectedTab></Wnd1></Windows>\r
+      <SelectedTab>0</SelectedTab></Wnd2><Wnd3><Tabs><Tab><Identity>TabID-29040-7360</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab><Tab><Identity>TabID-19024-10413</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab></Tabs><SelectedTab>1</SelectedTab></Wnd3></Windows>\r
     <Editor>\r
       \r
       \r
       \r
       \r
-    <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\CORTEX_LM3Sxxxx_IAR_Keil\main.c</Filename><XPos>0</XPos><YPos>167</YPos><SelStart>7004</SelStart><SelEnd>7004</SelEnd></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
+    <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\CORTEX_LM3Sxxxx_IAR_Keil\main.c</Filename><XPos>0</XPos><YPos>193</YPos><SelStart>8396</SelStart><SelEnd>8396</SelEnd></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
     <Positions>\r
       \r
       \r
       \r
       \r
       \r
-    <Top><Row0><Sizes><Toolbar-012825f0><key>iaridepm.enu1</key></Toolbar-012825f0></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>613</Bottom><Right>315</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>226429</sizeVertCX><sizeVertCY>626273</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>325</Bottom><Right>1402</Right><x>-2</x><y>-2</y><xscreen>1404</xscreen><yscreen>327</yscreen><sizeHorzCX>1002857</sizeHorzCX><sizeHorzCY>332994</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
+    <Top><Row0><Sizes><Toolbar-01282288><key>iaridepm.enu1</key></Toolbar-01282288></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>613</Bottom><Right>315</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>226429</sizeVertCX><sizeVertCY>626273</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>325</Bottom><Right>1402</Right><x>-2</x><y>-2</y><xscreen>1404</xscreen><yscreen>327</yscreen><sizeHorzCX>1002857</sizeHorzCX><sizeHorzCY>332994</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
   </Desktop>\r
 </Workspace>\r
 \r
index 3279be4412aac52c20e069a6f7f6c5710a91d5b3..e99ae922237906929b2c825758c0629539c267ad 100644 (file)
@@ -57,6 +57,7 @@ static void IntDefaultHandler(void);
 extern void __iar_program_start(void);\r
 extern void xPortPendSVHandler(void);\r
 extern void xPortSysTickHandler(void);\r
+extern void vPortSVCHandler(void);\r
 extern void vEMAC_ISR( void );\r
 extern Timer0IntHandler( void );\r
 \r
@@ -105,7 +106,7 @@ __root const uVectorEntry __vector_table[] @ ".intvec" =
     0,                                      // Reserved\r
     0,                                      // Reserved\r
     0,                                      // Reserved\r
-    IntDefaultHandler,                      // SVCall handler\r
+    vPortSVCHandler,                        // SVCall handler\r
     IntDefaultHandler,                      // Debug monitor handler\r
     0,                                      // Reserved\r
     xPortPendSVHandler,                     // The PendSV handler\r
@@ -153,7 +154,11 @@ __root const uVectorEntry __vector_table[] @ ".intvec" =
     IntDefaultHandler,                      // CAN1\r
     IntDefaultHandler,                      // CAN2\r
     vEMAC_ISR,                                         // Ethernet\r
-    IntDefaultHandler                       // Power Island\r
+    IntDefaultHandler,                      // Hibernate\r
+    IntDefaultHandler,                      // USB0\r
+    IntDefaultHandler,                      // PWM Generator 3\r
+    IntDefaultHandler,                      // uDMA Software Transfer\r
+    IntDefaultHandler                       // uDMA Error\r
 };\r
 \r
 \r
index e4f14bd44f956924e57e4f6bb331249ef39e4903..ff08689c98b8d80d5b0972e58c34a55793acf9c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
@@ -59,6 +59,7 @@
 #include "interrupt.h"\r
 #include "sysctl.h"\r
 #include "lmi_timer.h"\r
+#include "hw_timer.h"\r
 \r
 /* The set frequency of the interrupt.  Deviations from this are measured as\r
 the jitter. */\r
@@ -73,7 +74,7 @@ zero. */
 \r
 /* Misc defines. */\r
 #define timerMAX_32BIT_VALUE                   ( 0xffffffffUL )\r
-#define timerTIMER_1_COUNT_VALUE               ( * ( ( unsigned long * ) ( TIMER1_BASE + 0x48 ) ) )\r
+#define timerTIMER_1_COUNT_VALUE               ( * ( ( volatile unsigned long * ) ( ( unsigned portLONG ) TIMER1_BASE + 0x48UL ) ) )\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
@@ -119,14 +120,15 @@ unsigned long ulFrequency;
 \r
 void Timer0IntHandler( void )\r
 {\r
-unsigned portLONG ulDifference;\r
-volatile unsigned portLONG ulCurrentCount;\r
-static portLONG ulMaxDifference = 0, ulLastCount = 0;\r
+unsigned portLONG ulDifference, ulCurrentCount;\r
+static unsigned portLONG ulMaxDifference = 0, ulLastCount = 0;\r
 \r
        /* We use the timer 1 counter value to measure the clock cycles between\r
        the timer 0 interrupts. */\r
        ulCurrentCount = timerTIMER_1_COUNT_VALUE;\r
 \r
+       TimerIntClear( TIMER0_BASE, TIMER_TIMA_TIMEOUT );\r
+\r
        if( ulCurrentCount < ulLastCount )\r
        {       \r
                /* How many times has timer 1 counted since the last interrupt? */\r
@@ -141,11 +143,11 @@ static portLONG ulMaxDifference = 0, ulLastCount = 0;
        }\r
        \r
        ulLastCount = ulCurrentCount;\r
-\r
-    TimerIntClear( TIMER0_BASE, TIMER_TIMA_TIMEOUT );\r
 }\r
 \r
 \r
 \r
 \r
 \r
+\r
+\r
index fd7b8c6e7726e4431d4f64376e2a00b79c08cdc5..3829a7d2e35388109a6e3d4b7f36b76969b1e470 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3c189f867b389beb3af50189cf7485935e255794..b7350d1ac7f5093e9c275ccd0246ddc32d35cf47 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 8404f41753ab5a5b8ae35d58b249af8c8ac3b1ed..f7d0160b9d02b7f988cab346432fff63134e055d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index ab2d9859ea0ff215c7dcbc8847018de6860b8653..aaa24c78986bd22cda0a35faeb60576e7e3df21e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5ee8dcf025d73b3f043e97662947873420e12d42..dfbf6ba6a2c04db0c67c174ed2b8131ee32400ba 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 07d838d296563b674cd1db75834125ce6c841f11..af6100ef34aa5d978c0ec250d0e3e2097e6383cb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS distribution.\r
 \r
index 7ecedc902e456d5778844cafcf0341bb454d8979..fcc8fefede169a453236477c1e5a401ea97d371e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 6f754f498b14a3f75f72ba76f6efcafcb129698d..07e9326c519b5b78e93b3429837513a504e24557 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 498fc760c6886eccc2cd105c3997d3fc5c7106a6..1b911a9ad82dff500ad810f355371453dfc9c5e0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 9293471f98cefa016a609479b3ce0ecf632f8e24..ff62f1cd2e3d623105f4f80964e595bb148242d7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 27dd74dbde38b4e70737a1412f4abbc024bb666a..d098fe569a3e5810ffc0e896b1e94c9cc8511659 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7ecedc902e456d5778844cafcf0341bb454d8979..fcc8fefede169a453236477c1e5a401ea97d371e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 8ab79ec33298b620d1ce015ae3b032bafc537daf..0b0b68252e50f384fd0fb265cf5c21de762bfe0c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 74df724fecc3faf17b129eecd13ec1c1e91138ed..0bdafba69dfc143e49be5c390e2c4bcbe64430e6 100644 (file)
@@ -1,4 +1,4 @@
-#      FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+#      FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 #\r
 #      This file is part of the FreeRTOS.org distribution.\r
 #\r
index 33e198343aae05560d742691ea88c2c67a400f8d..7904b7b53422dfe2555e72ea23e625ec459d3c54 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 1e3fc0c2348c96321f51fc804c8ff531967aa226..3d8cb32e56d72896af5bee447743ab3e9e6bf625 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0c9a4da1faf882d9c2feb523cb432d237219f603..c3db6bfca71ff87af7c72843f160a316f0c957dd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 44d8e00cf7aac35aa2e8786507759ab641c320fa..b45cb3e9381a810ea62d7a34779b0e2b37324495 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 90418ef280130c0f30e3fa706f04a37e9d2056aa..117027912130a33f002358d3f0b3d92a12178be2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 24d1dfd79a43412754363c13095ded512e9b8627..c41f0c2fac3980a51baeb0c2ea61c2c694d7c5f6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index a6f3a4cabde4ab2f3c4a51d230798685c2df99dc..8d5856753545c794c07df4020dce01a92e3ec191 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 34fd3741e0e4e800b04aa6db336337ce5b470a89..0a908e3382e9f45cded85ef22aab7b42bcf31103 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 948bf1b51d1adebd97073e2104093a1e44da9645..ce38effb64aaa7700582764f674872fae6f007a2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index be88d4e6338b41509289ec3757454934a8a7478b..b83178b282f5f8d4db32f7da5ea073528ee7d3e0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c6af82385f5c5c8f701e0d89dfd2d82bc8d5e9a6..7e308acb152a4d13ea9bd42b71d40576b9dfc1be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7d91b1f02881285d1c711e64ffdea3a321c1b09d..e200a4f35530992b657350c78c0d1c709ddd441e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 1366bb0f0cc130913eaf681ef34b16d2bc03ddf9..79eec0538118595214f47a19b39a880a009417f7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c9061516ba5bb0f799529cab4b18b8c71ce27876..e5f67bf8a006a3bba3f33aed01776d298d392524 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 9007e7f64509f13651e01b122395cd684f4d0306..5ba0d0882632e153f6bba7884016583068f6469d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 8a3c6a4515c77536a6da0432be9220b682beb716..24c7ef46940b75aa189a0f09bd3de1c798509211 100644 (file)
@@ -1,6 +1,6 @@
 \r
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c068ff4765eda1bd13fd03ffc7d592068db4d9a5..2d0b0dad078e4e789f37ced2e6ebe84ecb96329d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 72959a1ff92bea9a83ddb5bb095bb3f5b001bbf3..aa16f2c4c1c23c61988d01802a28193e7e31b596 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index d1490ffdeb0147396799fa595517bc27e25c2b3e..4cfbdc9e6825e0a577b5e26547605230fc71a3b5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c8ab310bb572bf50cdbca6a4db9078a69d89f53d..f67b0839420e69b96a41a173048f6610973025e6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3e7726009302555c36cbed00e60f2d8df57c5b47..75e5c8fec270149255d833f86160b320250296fc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e3030b597a508f9592f8a9e43afd4466df6903aa..1d5b5263c46462852a57240bfb65ed17520eed3c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 72959a1ff92bea9a83ddb5bb095bb3f5b001bbf3..aa16f2c4c1c23c61988d01802a28193e7e31b596 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 345811f00b09964439574fff5dfbc303c883b891..8c3c079c843a1f493606c1c0ad47b57c2a3a4610 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 93a2ea7686dbb1922cfa04fba605b9bc24863a25..a243488d60b6e5f73561455b80b7837fad836345 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 21d6049e877837b56de9fad920b7fd9b0c3a8768..085d9e595fba7b07a93f025aa4d7ad762c00ac79 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c0a717817689866df1c84a256395442b21e02d84..afeca8af78c76fe49eead39d54769a2be9291fe1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 183ed8ba044d6afaa5b5937c34567dd58f55523b..e17b5d8e2bd95ca88e63c914f4a4f5032670a4e2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e150a3ba6f3c470dc9dc6975af13d9b2a413c4cb..9111768b19c32407c1e4f58ee189a64e4cec69d9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
@@ -79,7 +79,7 @@
 #define configUSE_ALTERNATIVE_API              1\r
 #define configUSE_RECURSIVE_MUTEXES            1\r
 #define configCHECK_FOR_STACK_OVERFLOW 0 /* Do not use this option on the PC port. */\r
-#define configUSE_APPLICATION_TASK_HOOK        1\r
+#define configUSE_APPLICATION_TASK_TAG 1\r
 \r
 #define configMAX_PRIORITIES           ( ( unsigned portBASE_TYPE ) 10 )\r
 #define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
@@ -97,4 +97,10 @@ to exclude the API function. */
 #define INCLUDE_uxTaskGetStackHighWaterMark 0 /* Do not use this option on the PC port. */\r
 \r
 \r
+/* An example "task switched in" hook macro definition. */\r
+#define traceTASK_SWITCHED_IN() xTaskCallApplicationTaskHook( NULL, ( void * ) 0xabcd )\r
+\r
+extern void vMainQueueSendPassed( void );\r
+#define traceQUEUE_SEND( pxQueue ) vMainQueueSendPassed()\r
+\r
 #endif /* FREERTOS_CONFIG_H */\r
index dcde2be489640f1f8ec0d6a2dbbb948c2e934c62..1e575c324216a7298bf3cb5259cbadec4c59c3ea 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index ffc2c1a8e33668173290b04800ae90303afae439..86ce95814ddeaee2c0badd4c4139a580021a8df1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
@@ -153,6 +153,14 @@ static void prvStartMathTasks( void );
 /* Check which ever tasks are relevant to this build. */\r
 static portBASE_TYPE prvCheckMathTasksAreStillRunning( void );\r
 \r
+/* Used to demonstrate the "task switched in" callback function. */\r
+static portBASE_TYPE prvExampleTaskHook( void * pvParameter );\r
+\r
+/* Just used to count the number of times the example task callback function is\r
+called, and the number of times a queue send passes. */\r
+static unsigned portLONG portLONG uxCheckTaskHookCallCount = 0;\r
+static unsigned portLONG portLONG uxQueueSendPassedCount = 0;\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 portSHORT main( void )\r
@@ -200,6 +208,31 @@ portSHORT main( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
+static portBASE_TYPE prvExampleTaskHook( void * pvParameter )\r
+{\r
+       if( pvParameter != ( void * ) 0xabcd )\r
+       {\r
+               /* The parameter did not contain the value we expected, so cause an\r
+               error to be detected by setting the call count back to zero. */\r
+               uxCheckTaskHookCallCount = 0;\r
+       }\r
+       else\r
+       {\r
+               /* Simply increment a number so we know the callback has been executed. */\r
+               uxCheckTaskHookCallCount++;\r
+       }\r
+\r
+       return 0;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vMainQueueSendPassed( void )\r
+{\r
+       /* This is just an example implementation of the "queue send" trace hook. */\r
+       uxQueueSendPassedCount++;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
 static void vErrorChecks( void *pvParameters )\r
 {\r
 portTickType xExpectedWakeTime;\r
@@ -212,6 +245,9 @@ const portCHAR * const pcTaskBlockedTooLongMsg = "Print task blocked too long!\r
 \r
        ( void ) pvParameters;\r
 \r
+       /* Register our callback function. */\r
+       vTaskSetApplicationTaskTag( NULL, prvExampleTaskHook );\r
+\r
        /* Loop continuously, blocking, then checking all the other tasks are still\r
        running, before blocking once again.  This task blocks on the queue of\r
        messages that require displaying so will wake either by its time out expiring,\r
@@ -322,6 +358,7 @@ portSHORT sIn;
 static void prvCheckOtherTasksAreStillRunning( void )\r
 {\r
 static portSHORT sErrorHasOccurred = pdFALSE;\r
+static unsigned portLONG portLONG uxLastHookCallCount = 0, uxLastQueueSendCount = 0;\r
 \r
        if( prvCheckMathTasksAreStillRunning() != pdTRUE )\r
        {\r
@@ -437,6 +474,32 @@ static portSHORT sErrorHasOccurred = pdFALSE;
                sErrorHasOccurred = pdTRUE;\r
        }\r
 \r
+       /* The hook function associated with this task is called each time the task\r
+       is switched in.  We therefore expect the number of times the callback \r
+       function has been executed to have increrment since the last time this \r
+       function executed. */\r
+       if( uxCheckTaskHookCallCount <= uxLastHookCallCount )\r
+       {\r
+               vDisplayMessage( "Error in task hook call count!\r\n" );\r
+               sErrorHasOccurred = pdTRUE;\r
+       }\r
+       else\r
+       {\r
+               uxLastHookCallCount = uxCheckTaskHookCallCount;\r
+       }\r
+\r
+       /* We would expect some queue sending to occur between calls of this \r
+       function. */\r
+       if( uxQueueSendPassedCount <= uxLastQueueSendCount )\r
+       {\r
+               vDisplayMessage( "Error in queue send hook call count!\r\n" );\r
+               sErrorHasOccurred = pdTRUE;\r
+       }\r
+       else\r
+       {\r
+               uxLastQueueSendCount = uxQueueSendPassedCount;\r
+       }\r
+\r
        if( sErrorHasOccurred == pdFALSE )\r
        {\r
                vDisplayMessage( "OK " );\r
index f4b8afb8ec31c010efba4992b937a5ad3f625c20..91bedfa639baad6948012cc62cca5024eebd99db 100644 (file)
@@ -5,7 +5,7 @@
        http://dzcomm.sourceforge.net\r
 \r
 \r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index a8cd935569d0ace0f69bfec434a8e85cc4716a97..5ccb09b4852925ba289333031519c34d0767f908 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b126a1125add710d4b4e33908650c0ce73ed5244..9275a36715deb91c75a782f8723f7caf7afedb9f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 9ee65038a4e8780485a5ed7adf052bfa78220634..c9299700eeebb6ed79c1232609ad6bc3e7e4bf93 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0da20888e9e69d50e70271302c643ba569b95af2..f01168a83d38ce2ae6c1c9929cf936ff32ab59f5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index ed675ef9b3d1587534bc5ff0427b2eec7c766a66..10d04ce8ced628ff88f29ef585997599164ff729 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 82f9d6e9645f312958a627e0692b1465029ea35f..6795eab15a2c62399de506954379533625019335 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c743fe26647f39c2922988a2404427697fe1716b..8857eb79ed4907d4571c41423459cb21b9c03d2c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c43ba62d78e233ca1e41c68fa6f07c5433c13edf..53213969c0c12fc1e7caad94a6d11a0621d70462 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 89986193afc94bfce01baef3783c3404590a4d44..06a0653032112b362ed23314a54339ebe53f9b16 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3289271745342e95b370d90d3db91261d8f8b46a..171d713817a5f021fdca3829d6473c6fbd89b3aa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0cc09ac7702c161dd9470315b13a424c529034a4..67e3327c0adfbe0407c2fb0c7b7cee2cfe2e1dc5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0924485de9f285d9a02e7ae0cc5bb816d7df0d9a..87d01ba46813569ad63282e7387431e65871a51b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b6e72d364dc08dfd70238576c3349ab7aa2f375f..d0a46f1ee812e64635146c7ceebd49ac7a1f52b1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f36b267bbe23a7561fde93038ce1b598dce7dcd2..a439b31c13cd114bd408267e0f2ef9e827ee4302 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b08de43fb36f976b4f3e36f04efc61f7f3636d15..107f6b7cea6d823daf7291e45ff8a87191b5f389 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 00b2c9fd8dc1c191b9b36cf325cdab8c7075643b..321153cd833d91580f2aec80e1a737224c4569f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7300d7e0afcafe42465b9394553cf0347f2044e8..c500423051bc0dc81fff26e04e78fa65c8ba60fc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e3674974b3b449c5d03d6f96a4c2b4b6562b4a37..b555f90e949f2acd14927e0046b3fd5d57724adb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3289271745342e95b370d90d3db91261d8f8b46a..171d713817a5f021fdca3829d6473c6fbd89b3aa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index d123947c27ca25959ab937ed4df8ea3e688f7a88..5e4075af74e1e371a1ad96f01b73c4ed5e788438 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 4fd9f0bb52cbb0c201798923d6c97b3bdc89e71d..81c3fa74901ace87da79069b1346b5ed0b20b3d2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f983f23633d44832a34a9349250607ba8078f1b9..9404785717691d6fc2928456207a37501aaaa04f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f36b267bbe23a7561fde93038ce1b598dce7dcd2..a439b31c13cd114bd408267e0f2ef9e827ee4302 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 47e556786572e6e4b6e60ff6af1672d12f591347..42fc96bd6a84be2fac1056e52f8fd806004089a3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5033e1c77d35732abbf12f39d63f44c18d13c7ca..3e6b8eaad09d42ec2339298c0e2f1c26a0b269a6 100644 (file)
-/*
-       FreeRTOS.org V4.8.0 - 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.
-
-    ***************************************************************************
-    ***************************************************************************
-    *                                                                         *
-    * SAVE TIME AND MONEY!  We can port FreeRTOS.org to your own hardware,    *
-    * and even write all or part of your application on your behalf.          *
-    * See http://www.OpenRTOS.com for details of the services we provide to   *
-    * expedite your project.                                                  *
-    *                                                                         *
-    ***************************************************************************
-    ***************************************************************************
-
-       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.
-*/
-
-/*
- * Creates all the demo application tasks, then starts the scheduler.  The WEB
- * documentation provides more details of the demo application tasks.
- * 
- * In addition to the standard demo tasks, the follow demo specific tasks are
- * create:
- *
- * The "Check" task.  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.  Most tasks maintain 
- * 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.
- *
- * The "Register Check" tasks.  These tasks fill the CPU registers with known
- * values, then check that each register still contains the expected value, the
- * discovery of an unexpected value being indicative of an error in the RTOS
- * context switch mechanism.  The register check tasks operate at low priority
- * so are switched in and out frequently.
- *
- */
-
-/* Scheduler includes. */
-#include "FreeRTOS.h"
-#include "task.h"
-
-/* Xilinx library includes. */
-#include "xcache_l.h"
-#include "xintc.h"
-
-/* Demo application includes. */
-#include "flash.h"
-#include "integer.h"
-#include "comtest2.h"
-#include "semtest.h"
-#include "BlockQ.h"
-#include "dynamic.h"
-#include "flop.h"
-#include "GenQTest.h"
-#include "QPeek.h"
-#include "blocktim.h"
-#include "death.h"
-#include "partest.h"
-#include "countsem.h"
-#include "recmutex.h"
-
-/* Priorities assigned to the demo tasks. */
-#define mainCHECK_TASK_PRIORITY                        ( tskIDLE_PRIORITY + 4 )
-#define mainSEM_TEST_PRIORITY                  ( tskIDLE_PRIORITY + 2 )
-#define mainCOM_TEST_PRIORITY                  ( tskIDLE_PRIORITY + 1 )
-#define mainQUEUE_BLOCK_PRIORITY               ( tskIDLE_PRIORITY + 1 )
-#define mainDEATH_PRIORITY                             ( tskIDLE_PRIORITY + 1 )
-#define mainLED_TASK_PRIORITY                  ( tskIDLE_PRIORITY + 1 )
-#define mainGENERIC_QUEUE_PRIORITY             ( tskIDLE_PRIORITY )
-#define mainQUEUE_POLL_PRIORITY                        ( tskIDLE_PRIORITY + 1 )
-
-/* The first LED used by the COM test and check tasks respectively. */
-#define mainCOM_TEST_LED                               ( 4 )
-#define mainCHECK_TEST_LED                             ( 3 )
-
-/* The baud rate used by the comtest tasks is set by the hardware, so the
-baud rate parameters passed into the comtest initialisation has no effect. */
-#define mainBAUD_SET_IN_HARDWARE               ( 0 )
-
-/* Delay periods used by the check task.  If no errors have been found then
-the check LED will toggle every mainNO_ERROR_CHECK_DELAY milliseconds.  If an
-error has been found at any time then the toggle rate will increase to 
-mainERROR_CHECK_DELAY milliseconds. */
-#define mainNO_ERROR_CHECK_DELAY               ( ( portTickType ) 3000 / portTICK_RATE_MS  )
-#define mainERROR_CHECK_DELAY                  ( ( portTickType ) 500 / portTICK_RATE_MS  )
-
-
-/* 
- * The tasks defined within this file - described within the comments at the
- * head of this page. 
- */
-static void prvRegTestTask1( void *pvParameters );
-static void prvRegTestTask2( void *pvParameters );
-static void prvErrorChecks( void *pvParameters );
-
-/*
- * Called by the 'check' task to inspect all the standard demo tasks within
- * the system, as described within the comments at the head of this page.
- */
-static portSHORT prvCheckOtherTasksAreStillRunning( void );
-
-/*
- * Perform any hardware initialisation required by the demo application.
- */
-static void prvSetupHardware( void );
-
-/*-----------------------------------------------------------*/
-
-/* xRegTestStatus will get set to pdFAIL by the regtest tasks if they
-discover an unexpected value. */
-static unsigned portBASE_TYPE xRegTestStatus = pdPASS;
-
-/* Counters used to ensure the regtest tasks are still running. */
-static volatile unsigned portLONG ulRegTest1Counter = 0UL, ulRegTest2Counter = 0UL;
-
-/*-----------------------------------------------------------*/
-\r
-int main( void )
-{
-       /* Must be called prior to installing any interrupt handlers! */
-       vPortSetupInterruptController();
-
-       /* In this case prvSetupHardware() just enables the caches and and
-       configures the IO ports for the LED outputs. */
-       prvSetupHardware();
-
-       /* Start the standard demo application tasks.  Note that the baud rate used
-       by the comtest tasks is set by the hardware, so the baud rate parameter
-       passed has no effect. */
-       vStartLEDFlashTasks( mainLED_TASK_PRIORITY );   
-       vStartIntegerMathTasks( tskIDLE_PRIORITY );
-       vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainBAUD_SET_IN_HARDWARE, mainCOM_TEST_LED );
-       vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );
-       vStartBlockingQueueTasks ( mainQUEUE_BLOCK_PRIORITY );  
-       vStartDynamicPriorityTasks();   
-       vStartMathTasks( tskIDLE_PRIORITY );    
-       vStartGenericQueueTasks( mainGENERIC_QUEUE_PRIORITY );
-       vStartQueuePeekTasks();
-       vCreateBlockTimeTasks();
-       vStartCountingSemaphoreTasks();
-       vStartRecursiveMutexTasks();
-
-       /* Create the tasks defined within this file. */
-       xTaskCreate( prvRegTestTask1, "Regtest1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
-       xTaskCreate( prvRegTestTask2, "Regtest2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
-       xTaskCreate( prvErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
-
-       /* The suicide tasks must be started last as they record the number of other
-       tasks that exist within the system.  The value is then used to ensure at run
-       time the number of tasks that exists is within expected bounds. */
-       vCreateSuicidalTasks( mainDEATH_PRIORITY );
-
-       /* Now start the scheduler.  Following this call the created tasks should
-       be executing. */        
-       vTaskStartScheduler( );
-
-       /* vTaskStartScheduler() will only return if an error occurs while the 
-       idle task is being created. */
-       for( ;; );
-
-       return 0;
-}
-/*-----------------------------------------------------------*/
-
-static portSHORT prvCheckOtherTasksAreStillRunning( void )
-{
-portBASE_TYPE lReturn = pdPASS;
-static unsigned portLONG ulLastRegTest1Counter= 0UL, ulLastRegTest2Counter = 0UL;
-
-       /* The demo tasks maintain a count that increments every cycle of the task
-       provided that the task has never encountered an error.  This function 
-       checks the counts maintained by the tasks to ensure they are still being
-       incremented.  A count remaining at the same value between calls therefore
-       indicates that an error has been detected. */
-\r
-       if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-
-       if( xAreComTestTasksStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-       
-       if( xAreSemaphoreTasksStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-       
-       if( xAreBlockingQueuesStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-       
-       if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-       
-       if( xAreMathsTaskStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-       
-       if( xIsCreateTaskStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-       
-       if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-       
-       if( xAreGenericQueueTasksStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-       
-       if( xAreQueuePeekTasksStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-
-       if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-
-       if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )
-       {
-               lReturn = pdFAIL;
-       }
-
-       /* Have the register test tasks found any errors? */
-       if( xRegTestStatus != pdPASS )
-       {
-               lReturn = pdFAIL;
-       }
-
-       /* Are the register test tasks still looping? */
-       if( ulLastRegTest1Counter == ulRegTest1Counter )
-       {
-               lReturn = pdFAIL;
-       }
-       else
-       {
-               ulLastRegTest1Counter = ulRegTest1Counter;
-       }
-
-       if( ulLastRegTest2Counter == ulRegTest2Counter )
-       {
-               lReturn = pdFAIL;
-       }
-       else
-       {
-               ulLastRegTest2Counter = ulRegTest2Counter;
-       }
-
-       return lReturn;
-}
-/*-----------------------------------------------------------*/
-
-
-static void prvErrorChecks( void *pvParameters )
-{
-portTickType xDelayPeriod = mainNO_ERROR_CHECK_DELAY, xLastExecutionTime;
-volatile unsigned portBASE_TYPE uxFreeStack;
-
-       /* This call is just to demonstrate the use of the function - nothing is
-       done with the value.  You would expect the stack high water mark to be
-       lower (the function to return a larger value) here at function entry than
-       later following calls to other functions. */
-       uxFreeStack = uxTaskGetStackHighWaterMark( NULL );
-
-       /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()
-       works correctly. */
-       xLastExecutionTime = xTaskGetTickCount();
-
-       /* Cycle for ever, delaying then checking all the other tasks are still
-       operating without error. */
-       for( ;; )
-       {
-               /* Again just for demo purposes - uxFreeStack should have a lower value
-               here than following the call to uxTaskGetStackHighWaterMark() on the
-               task entry. */
-               uxFreeStack = uxTaskGetStackHighWaterMark( NULL );
-
-               /* Wait until it is time to check again.  The time we wait here depends
-               on whether an error has been detected or not.  When an error is 
-               detected the time is shortened resulting in a faster LED flash rate. */
-               vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );
-
-               /* See if the other tasks are all ok. */
-               if( prvCheckOtherTasksAreStillRunning() != pdPASS )
-               {
-                       /* An error occurred in one of the tasks so shorten the delay 
-                       period - which has the effect of increasing the frequency of the
-                       LED toggle. */
-                       xDelayPeriod = mainERROR_CHECK_DELAY;
-               }
-
-               /* Flash! */
-               vParTestToggleLED( mainCHECK_TEST_LED );
-       }
-}
-/*-----------------------------------------------------------*/
-
-static void prvSetupHardware( void )
-{
-       XCache_EnableICache( 0x80000000 );
-       XCache_EnableDCache( 0x80000000 );
-
-       /* Setup the IO port for use with the LED outputs. */
-       vParTestInitialise();
-}
-/*-----------------------------------------------------------*/
-
-void prvRegTest1Pass( void )
-{
-       /* Called from the inline assembler - this cannot be static
-       otherwise it can get optimised away. */
-       ulRegTest1Counter++;
-}
-/*-----------------------------------------------------------*/
-
-void prvRegTest2Pass( void )
-{
-       /* Called from the inline assembler - this cannot be static
-       otherwise it can get optimised away. */
-       ulRegTest2Counter++;
-}
-/*-----------------------------------------------------------*/
-
-void prvRegTestFail( void )
-{
-       /* Called from the inline assembler - this cannot be static
-       otherwise it can get optimised away. */
-       xRegTestStatus = pdFAIL;
-}
-/*-----------------------------------------------------------*/
-
-static void prvRegTestTask1( void *pvParameters )
-{
-       /* The first register test task as described at the top of this file.  The
-       values used in the registers are different to those use in the second 
-       register test task.  Also, unlike the second register test task, this task
-       yields between setting the register values and subsequently checking the
-       register values. */
-       asm volatile
-       (
-               "RegTest1Start:                                 \n\t" \
-               "                                                               \n\t" \
-               "       li              0, 301                          \n\t" \
-               "       mtspr   256, 0  #USPRG0         \n\t" \
-               "       li              0, 501                          \n\t" \
-               "       mtspr   8, 0    #LR                     \n\t" \
-               "       li              0, 4                            \n\t" \
-               "       mtspr   1, 0    #XER            \n\t" \
-               "                                                               \n\t" \
-               "       li              0, 1                            \n\t" \
-               "       li              2, 2                            \n\t" \
-               "       li              3, 3                            \n\t" \
-               "       li              4,      4                               \n\t" \
-               "       li              5,      5                               \n\t" \
-               "       li              6,      6                               \n\t" \
-               "       li              7,      7                               \n\t" \
-               "       li              8,      8                               \n\t" \
-               "       li              9,      9                               \n\t" \
-               "       li              10,     10                              \n\t" \
-               "       li              11,     11                              \n\t" \
-               "       li              12,     12                              \n\t" \
-               "       li              13,     13                              \n\t" \
-               "       li              14,     14                              \n\t" \
-               "       li              15,     15                              \n\t" \
-               "       li              16,     16                              \n\t" \
-               "       li              17,     17                              \n\t" \
-               "       li              18,     18                              \n\t" \
-               "       li              19,     19                              \n\t" \
-               "       li              20,     20                              \n\t" \
-               "       li              21,     21                              \n\t" \
-               "       li              22,     22                              \n\t" \
-               "       li              23,     23                              \n\t" \
-               "       li              24,     24                              \n\t" \
-               "       li              25,     25                              \n\t" \
-               "       li              26,     26                              \n\t" \
-               "       li              27,     27                              \n\t" \
-               "       li              28,     28                              \n\t" \
-               "       li              29,     29                              \n\t" \
-               "       li              30,     30                              \n\t" \
-               "       li              31,     31                              \n\t" \
-               "                                                               \n\t" \
-               "       sc                                                      \n\t" \
-               "       nop                                                     \n\t" \
-               "                                                               \n\t" \
-               "       cmpwi   0, 1                            \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   2, 2                            \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   3, 3                            \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   4, 4                            \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   5, 5                            \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   6, 6                            \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   7, 7                            \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   8, 8                            \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   9, 9                            \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   10, 10                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   11, 11                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   12, 12                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   13, 13                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   14, 14                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   15, 15                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   16, 16                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   17, 17                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   18, 18                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   19, 19                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   20, 20                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   21, 21                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   22, 22                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   23, 23                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   24, 24                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   25, 25                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   26, 26                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   27, 27                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   28, 28                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   29, 29                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   30, 30                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       cmpwi   31, 31                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "                                                               \n\t" \
-               "       mfspr   0, 256  #USPRG0         \n\t" \
-               "       cmpwi   0, 301                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       mfspr   0, 8    #LR                     \n\t" \
-               "       cmpwi   0, 501                          \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "       mfspr   0, 1    #XER            \n\t" \
-               "       cmpwi   0, 4                            \n\t" \
-               "       bne     RegTest1Fail                    \n\t" \
-               "                                                               \n\t" \
-               "       bl prvRegTest1Pass                      \n\t" \
-               "       b RegTest1Start                         \n\t" \
-               "                                                               \n\t" \
-               "RegTest1Fail:                                  \n\t" \
-               "                                                               \n\t" \
-               "                                                               \n\t" \
-               "       bl prvRegTestFail                       \n\t" \
-               "       b RegTest1Start                         \n\t" \
-       );
-}
-/*-----------------------------------------------------------*/
-
-static void prvRegTestTask2( void *pvParameters )
-{
-       /* The second register test task as described at the top of this file.  
-       Note that this task fills the registers with different values to the
-       first register test task. */
-       asm volatile
-       (
-               "RegTest2Start:                                 \n\t" \
-               "                                                               \n\t" \
-               "       li              0, 300                          \n\t" \
-               "       mtspr   256, 0  #USPRG0         \n\t" \
-               "       li              0, 500                          \n\t" \
-               "       mtspr   8, 0    #LR                     \n\t" \
-               "       li              0, 4                            \n\t" \
-               "       mtspr   1, 0    #XER            \n\t" \
-               "                                                               \n\t" \
-               "       li              0, 11                           \n\t" \
-               "       li              2, 12                           \n\t" \
-               "       li              3, 13                           \n\t" \
-               "       li              4,      14                              \n\t" \
-               "       li              5,      15                              \n\t" \
-               "       li              6,      16                              \n\t" \
-               "       li              7,      17                              \n\t" \
-               "       li              8,      18                              \n\t" \
-               "       li              9,      19                              \n\t" \
-               "       li              10,     110                             \n\t" \
-               "       li              11,     111                             \n\t" \
-               "       li              12,     112                             \n\t" \
-               "       li              13,     113                             \n\t" \
-               "       li              14,     114                             \n\t" \
-               "       li              15,     115                             \n\t" \
-               "       li              16,     116                             \n\t" \
-               "       li              17,     117                             \n\t" \
-               "       li              18,     118                             \n\t" \
-               "       li              19,     119                             \n\t" \
-               "       li              20,     120                             \n\t" \
-               "       li              21,     121                             \n\t" \
-               "       li              22,     122                             \n\t" \
-               "       li              23,     123                             \n\t" \
-               "       li              24,     124                             \n\t" \
-               "       li              25,     125                             \n\t" \
-               "       li              26,     126                             \n\t" \
-               "       li              27,     127                             \n\t" \
-               "       li              28,     128                             \n\t" \
-               "       li              29,     129                             \n\t" \
-               "       li              30,     130                             \n\t" \
-               "       li              31,     131                             \n\t" \
-               "                                                               \n\t" \
-               "       cmpwi   0, 11                           \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   2, 12                           \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   3, 13                           \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   4, 14                           \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   5, 15                           \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   6, 16                           \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   7, 17                           \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   8, 18                           \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   9, 19                           \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   10, 110                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   11, 111                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   12, 112                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   13, 113                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   14, 114                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   15, 115                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   16, 116                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   17, 117                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   18, 118                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   19, 119                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   20, 120                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   21, 121                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   22, 122                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   23, 123                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   24, 124                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   25, 125                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   26, 126                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   27, 127                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   28, 128                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   29, 129                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   30, 130                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       cmpwi   31, 131                         \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "                                                               \n\t" \
-               "       mfspr   0, 256  #USPRG0         \n\t" \
-               "       cmpwi   0, 300                          \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       mfspr   0, 8    #LR                     \n\t" \
-               "       cmpwi   0, 500                          \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "       mfspr   0, 1    #XER            \n\t" \
-               "       cmpwi   0, 4                            \n\t" \
-               "       bne     RegTest2Fail                    \n\t" \
-               "                                                               \n\t" \
-               "       bl prvRegTest2Pass                      \n\t" \
-               "       b RegTest2Start                         \n\t" \
-               "                                                               \n\t" \
-               "RegTest2Fail:                                  \n\t" \
-               "                                                               \n\t" \
-               "                                                               \n\t" \
-               "       bl prvRegTestFail                       \n\t" \
-               "       b RegTest2Start                         \n\t" \
-       );
-}
-/*-----------------------------------------------------------*/
-
-/* This hook function will get called if there is a suspected stack overflow.
-An overflow can cause the task name to be corrupted, in which case the task
-handle needs to be used to determine the offending task. */
-void vApplicationStackOverflowHook( xTaskHandle xTask, signed portCHAR *pcTaskName );
-void vApplicationStackOverflowHook( xTaskHandle xTask, signed portCHAR *pcTaskName )
-{
-       /* The following three calls are simply to stop compiler warnings about the
-       functions not being used - they are called from the inline assembly. */
-       prvRegTest1Pass();
-       prvRegTest2Pass();
-       prvRegTestFail();
-
-       for( ;; );
-}
-
-
-
-
+/*\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+       This file is part of the FreeRTOS.org distribution.\r
+\r
+       FreeRTOS.org is free software; you can redistribute it and/or modify\r
+       it under the terms of the GNU General Public License as published by\r
+       the Free Software Foundation; either version 2 of the License, or\r
+       (at your option) any later version.\r
+\r
+       FreeRTOS.org is distributed in the hope that it will be useful,\r
+       but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+       GNU General Public License for more details.\r
+\r
+       You should have received a copy of the GNU General Public License\r
+       along with FreeRTOS.org; if not, write to the Free Software\r
+       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+\r
+       A special exception to the GPL can be applied should you wish to distribute\r
+       a combined work that includes FreeRTOS.org, without being obliged to provide\r
+       the source code for any proprietary components.  See the licensing section\r
+       of http://www.FreeRTOS.org for full details of how and when the exception\r
+       can be applied.\r
+\r
+    ***************************************************************************\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * SAVE TIME AND MONEY!  We can port FreeRTOS.org to your own hardware,    *\r
+    * and even write all or part of your application on your behalf.          *\r
+    * See http://www.OpenRTOS.com for details of the services we provide to   *\r
+    * expedite your project.                                                  *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+    ***************************************************************************\r
+\r
+       Please ensure to read the configuration and relevant port sections of the\r
+       online documentation.\r
+\r
+       http://www.FreeRTOS.org - Documentation, latest information, license and \r
+       contact details.\r
+\r
+       http://www.SafeRTOS.com - A version that is certified for use in safety \r
+       critical systems.\r
+\r
+       http://www.OpenRTOS.com - Commercial support, development, porting, \r
+       licensing and training services.\r
+*/\r
+\r
+/*\r
+ * Creates all the demo application tasks, then starts the scheduler.  The WEB\r
+ * documentation provides more details of the demo application tasks.\r
+ * \r
+ * In addition to the standard demo tasks, the follow demo specific tasks are\r
+ * create:\r
+ *\r
+ * The "Check" task.  This only executes every three seconds but has the highest \r
+ * priority so is guaranteed to get processor time.  Its main function is to \r
+ * check that all the other tasks are still operational.  Most tasks maintain \r
+ * a unique count that is incremented each time the task successfully completes \r
+ * its function.  Should any error occur within such a task the count is \r
+ * permanently halted.  The check task inspects the count of each task to ensure \r
+ * it has changed since the last time the check task executed.  If all the count \r
+ * variables have changed all the tasks are still executing error free, and the \r
+ * check task toggles the onboard LED.  Should any task contain an error at any time \r
+ * the LED toggle rate will change from 3 seconds to 500ms.\r
+ *\r
+ * The "Register Check" tasks.  These tasks fill the CPU registers with known\r
+ * values, then check that each register still contains the expected value, the\r
+ * discovery of an unexpected value being indicative of an error in the RTOS\r
+ * context switch mechanism.  The register check tasks operate at low priority\r
+ * so are switched in and out frequently.\r
+ *\r
+ */\r
+\r
+/* Scheduler includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Xilinx library includes. */\r
+#include "xcache_l.h"\r
+#include "xintc.h"\r
+\r
+/* Demo application includes. */\r
+#include "flash.h"\r
+#include "integer.h"\r
+#include "comtest2.h"\r
+#include "semtest.h"\r
+#include "BlockQ.h"\r
+#include "dynamic.h"\r
+#include "GenQTest.h"\r
+#include "QPeek.h"\r
+#include "blocktim.h"\r
+#include "death.h"\r
+#include "partest.h"\r
+#include "countsem.h"\r
+#include "recmutex.h"\r
+\r
+/* Priorities assigned to the demo tasks. */\r
+#define mainCHECK_TASK_PRIORITY                        ( tskIDLE_PRIORITY + 4 )\r
+#define mainSEM_TEST_PRIORITY                  ( tskIDLE_PRIORITY + 2 )\r
+#define mainCOM_TEST_PRIORITY                  ( tskIDLE_PRIORITY + 1 )\r
+#define mainQUEUE_BLOCK_PRIORITY               ( tskIDLE_PRIORITY + 1 )\r
+#define mainDEATH_PRIORITY                             ( tskIDLE_PRIORITY + 1 )\r
+#define mainLED_TASK_PRIORITY                  ( tskIDLE_PRIORITY + 1 )\r
+#define mainGENERIC_QUEUE_PRIORITY             ( tskIDLE_PRIORITY )\r
+#define mainQUEUE_POLL_PRIORITY                        ( tskIDLE_PRIORITY + 1 )\r
+\r
+/* The first LED used by the COM test and check tasks respectively. */\r
+#define mainCOM_TEST_LED                               ( 4 )\r
+#define mainCHECK_TEST_LED                             ( 3 )\r
+\r
+/* The baud rate used by the comtest tasks is set by the hardware, so the\r
+baud rate parameters passed into the comtest initialisation has no effect. */\r
+#define mainBAUD_SET_IN_HARDWARE               ( 0 )\r
+\r
+/* Delay periods used by the check task.  If no errors have been found then\r
+the check LED will toggle every mainNO_ERROR_CHECK_DELAY milliseconds.  If an\r
+error has been found at any time then the toggle rate will increase to \r
+mainERROR_CHECK_DELAY milliseconds. */\r
+#define mainNO_ERROR_CHECK_DELAY               ( ( portTickType ) 3000 / portTICK_RATE_MS  )\r
+#define mainERROR_CHECK_DELAY                  ( ( portTickType ) 500 / portTICK_RATE_MS  )\r
+\r
+\r
+/* \r
+ * The tasks defined within this file - described within the comments at the\r
+ * head of this page. \r
+ */\r
+static void prvRegTestTask1( void *pvParameters );\r
+static void prvRegTestTask2( void *pvParameters );\r
+static void prvErrorChecks( void *pvParameters );\r
+\r
+/*\r
+ * Called by the 'check' task to inspect all the standard demo tasks within\r
+ * the system, as described within the comments at the head of this page.\r
+ */\r
+static portSHORT prvCheckOtherTasksAreStillRunning( void );\r
+\r
+/*\r
+ * Perform any hardware initialisation required by the demo application.\r
+ */\r
+static void prvSetupHardware( void );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* xRegTestStatus will get set to pdFAIL by the regtest tasks if they\r
+discover an unexpected value. */\r
+static unsigned portBASE_TYPE xRegTestStatus = pdPASS;\r
+\r
+/* Counters used to ensure the regtest tasks are still running. */\r
+static volatile unsigned portLONG ulRegTest1Counter = 0UL, ulRegTest2Counter = 0UL;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+int main( void )\r
+{\r
+       /* Must be called prior to installing any interrupt handlers! */\r
+       vPortSetupInterruptController();\r
+\r
+       /* In this case prvSetupHardware() just enables the caches and and\r
+       configures the IO ports for the LED outputs. */\r
+       prvSetupHardware();\r
+\r
+       /* Start the standard demo application tasks.  Note that the baud rate used\r
+       by the comtest tasks is set by the hardware, so the baud rate parameter\r
+       passed has no effect. */\r
+       vStartLEDFlashTasks( mainLED_TASK_PRIORITY );   \r
+       vStartIntegerMathTasks( tskIDLE_PRIORITY );\r
+       vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainBAUD_SET_IN_HARDWARE, mainCOM_TEST_LED );\r
+       vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );\r
+       vStartBlockingQueueTasks ( mainQUEUE_BLOCK_PRIORITY );  \r
+       vStartDynamicPriorityTasks();   \r
+       vStartGenericQueueTasks( mainGENERIC_QUEUE_PRIORITY );\r
+       vStartQueuePeekTasks();\r
+       vCreateBlockTimeTasks();\r
+       vStartCountingSemaphoreTasks();\r
+       vStartRecursiveMutexTasks();\r
+\r
+       /* Create the tasks defined within this file. */\r
+       xTaskCreate( prvRegTestTask1, "Regtest1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );\r
+       xTaskCreate( prvRegTestTask2, "Regtest2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );\r
+       xTaskCreate( prvErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
+\r
+       /* The suicide tasks must be started last as they record the number of other\r
+       tasks that exist within the system.  The value is then used to ensure at run\r
+       time the number of tasks that exists is within expected bounds. */\r
+       vCreateSuicidalTasks( mainDEATH_PRIORITY );\r
+\r
+       /* Now start the scheduler.  Following this call the created tasks should\r
+       be executing. */        \r
+       vTaskStartScheduler( );\r
+\r
+       /* vTaskStartScheduler() will only return if an error occurs while the \r
+       idle task is being created. */\r
+       for( ;; );\r
+\r
+       return 0;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static portSHORT prvCheckOtherTasksAreStillRunning( void )\r
+{\r
+portBASE_TYPE lReturn = pdPASS;\r
+static unsigned portLONG ulLastRegTest1Counter= 0UL, ulLastRegTest2Counter = 0UL;\r
+\r
+       /* The demo tasks maintain a count that increments every cycle of the task\r
+       provided that the task has never encountered an error.  This function \r
+       checks the counts maintained by the tasks to ensure they are still being\r
+       incremented.  A count remaining at the same value between calls therefore\r
+       indicates that an error has been detected. */\r
+\r
+       if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+\r
+       if( xAreComTestTasksStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+       \r
+       if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+       \r
+       if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+       \r
+       if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+       \r
+       if( xIsCreateTaskStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+       \r
+       if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+       \r
+       if( xAreGenericQueueTasksStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+       \r
+       if( xAreQueuePeekTasksStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+\r
+       if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+\r
+       if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+\r
+       /* Have the register test tasks found any errors? */\r
+       if( xRegTestStatus != pdPASS )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+\r
+       /* Are the register test tasks still looping? */\r
+       if( ulLastRegTest1Counter == ulRegTest1Counter )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+       else\r
+       {\r
+               ulLastRegTest1Counter = ulRegTest1Counter;\r
+       }\r
+\r
+       if( ulLastRegTest2Counter == ulRegTest2Counter )\r
+       {\r
+               lReturn = pdFAIL;\r
+       }\r
+       else\r
+       {\r
+               ulLastRegTest2Counter = ulRegTest2Counter;\r
+       }\r
+\r
+       return lReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+\r
+static void prvErrorChecks( void *pvParameters )\r
+{\r
+portTickType xDelayPeriod = mainNO_ERROR_CHECK_DELAY, xLastExecutionTime;\r
+volatile unsigned portBASE_TYPE uxFreeStack;\r
+\r
+       /* This call is just to demonstrate the use of the function - nothing is\r
+       done with the value.  You would expect the stack high water mark to be\r
+       lower (the function to return a larger value) here at function entry than\r
+       later following calls to other functions. */\r
+       uxFreeStack = uxTaskGetStackHighWaterMark( NULL );\r
+\r
+       /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()\r
+       works correctly. */\r
+       xLastExecutionTime = xTaskGetTickCount();\r
+\r
+       /* Cycle for ever, delaying then checking all the other tasks are still\r
+       operating without error. */\r
+       for( ;; )\r
+       {\r
+               /* Again just for demo purposes - uxFreeStack should have a lower value\r
+               here than following the call to uxTaskGetStackHighWaterMark() on the\r
+               task entry. */\r
+               uxFreeStack = uxTaskGetStackHighWaterMark( NULL );\r
+\r
+               /* Wait until it is time to check again.  The time we wait here depends\r
+               on whether an error has been detected or not.  When an error is \r
+               detected the time is shortened resulting in a faster LED flash rate. */\r
+               vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );\r
+\r
+               /* See if the other tasks are all ok. */\r
+               if( prvCheckOtherTasksAreStillRunning() != pdPASS )\r
+               {\r
+                       /* An error occurred in one of the tasks so shorten the delay \r
+                       period - which has the effect of increasing the frequency of the\r
+                       LED toggle. */\r
+                       xDelayPeriod = mainERROR_CHECK_DELAY;\r
+               }\r
+\r
+               /* Flash! */\r
+               vParTestToggleLED( mainCHECK_TEST_LED );\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvSetupHardware( void )\r
+{\r
+       XCache_EnableICache( 0x80000000 );\r
+       XCache_EnableDCache( 0x80000000 );\r
+\r
+       /* Setup the IO port for use with the LED outputs. */\r
+       vParTestInitialise();\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void prvRegTest1Pass( void )\r
+{\r
+       /* Called from the inline assembler - this cannot be static\r
+       otherwise it can get optimised away. */\r
+       ulRegTest1Counter++;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void prvRegTest2Pass( void )\r
+{\r
+       /* Called from the inline assembler - this cannot be static\r
+       otherwise it can get optimised away. */\r
+       ulRegTest2Counter++;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void prvRegTestFail( void )\r
+{\r
+       /* Called from the inline assembler - this cannot be static\r
+       otherwise it can get optimised away. */\r
+       xRegTestStatus = pdFAIL;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvRegTestTask1( void *pvParameters )\r
+{\r
+       /* The first register test task as described at the top of this file.  The\r
+       values used in the registers are different to those use in the second \r
+       register test task.  Also, unlike the second register test task, this task\r
+       yields between setting the register values and subsequently checking the\r
+       register values. */\r
+       asm volatile\r
+       (\r
+               "RegTest1Start:                                 \n\t" \\r
+               "                                                               \n\t" \\r
+               "       li              0, 301                          \n\t" \\r
+               "       mtspr   256, 0  #USPRG0         \n\t" \\r
+               "       li              0, 501                          \n\t" \\r
+               "       mtspr   8, 0    #LR                     \n\t" \\r
+               "       li              0, 4                            \n\t" \\r
+               "       mtspr   1, 0    #XER            \n\t" \\r
+               "                                                               \n\t" \\r
+               "       li              0, 1                            \n\t" \\r
+               "       li              2, 2                            \n\t" \\r
+               "       li              3, 3                            \n\t" \\r
+               "       li              4,      4                               \n\t" \\r
+               "       li              5,      5                               \n\t" \\r
+               "       li              6,      6                               \n\t" \\r
+               "       li              7,      7                               \n\t" \\r
+               "       li              8,      8                               \n\t" \\r
+               "       li              9,      9                               \n\t" \\r
+               "       li              10,     10                              \n\t" \\r
+               "       li              11,     11                              \n\t" \\r
+               "       li              12,     12                              \n\t" \\r
+               "       li              13,     13                              \n\t" \\r
+               "       li              14,     14                              \n\t" \\r
+               "       li              15,     15                              \n\t" \\r
+               "       li              16,     16                              \n\t" \\r
+               "       li              17,     17                              \n\t" \\r
+               "       li              18,     18                              \n\t" \\r
+               "       li              19,     19                              \n\t" \\r
+               "       li              20,     20                              \n\t" \\r
+               "       li              21,     21                              \n\t" \\r
+               "       li              22,     22                              \n\t" \\r
+               "       li              23,     23                              \n\t" \\r
+               "       li              24,     24                              \n\t" \\r
+               "       li              25,     25                              \n\t" \\r
+               "       li              26,     26                              \n\t" \\r
+               "       li              27,     27                              \n\t" \\r
+               "       li              28,     28                              \n\t" \\r
+               "       li              29,     29                              \n\t" \\r
+               "       li              30,     30                              \n\t" \\r
+               "       li              31,     31                              \n\t" \\r
+               "                                                               \n\t" \\r
+               "       sc                                                      \n\t" \\r
+               "       nop                                                     \n\t" \\r
+               "                                                               \n\t" \\r
+               "       cmpwi   0, 1                            \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   2, 2                            \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   3, 3                            \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   4, 4                            \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   5, 5                            \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   6, 6                            \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   7, 7                            \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   8, 8                            \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   9, 9                            \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   10, 10                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   11, 11                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   12, 12                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   13, 13                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   14, 14                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   15, 15                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   16, 16                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   17, 17                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   18, 18                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   19, 19                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   20, 20                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   21, 21                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   22, 22                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   23, 23                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   24, 24                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   25, 25                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   26, 26                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   27, 27                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   28, 28                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   29, 29                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   30, 30                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       cmpwi   31, 31                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "                                                               \n\t" \\r
+               "       mfspr   0, 256  #USPRG0         \n\t" \\r
+               "       cmpwi   0, 301                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       mfspr   0, 8    #LR                     \n\t" \\r
+               "       cmpwi   0, 501                          \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "       mfspr   0, 1    #XER            \n\t" \\r
+               "       cmpwi   0, 4                            \n\t" \\r
+               "       bne     RegTest1Fail                    \n\t" \\r
+               "                                                               \n\t" \\r
+               "       bl prvRegTest1Pass                      \n\t" \\r
+               "       b RegTest1Start                         \n\t" \\r
+               "                                                               \n\t" \\r
+               "RegTest1Fail:                                  \n\t" \\r
+               "                                                               \n\t" \\r
+               "                                                               \n\t" \\r
+               "       bl prvRegTestFail                       \n\t" \\r
+               "       b RegTest1Start                         \n\t" \\r
+       );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvRegTestTask2( void *pvParameters )\r
+{\r
+       /* The second register test task as described at the top of this file.  \r
+       Note that this task fills the registers with different values to the\r
+       first register test task. */\r
+       asm volatile\r
+       (\r
+               "RegTest2Start:                                 \n\t" \\r
+               "                                                               \n\t" \\r
+               "       li              0, 300                          \n\t" \\r
+               "       mtspr   256, 0  #USPRG0         \n\t" \\r
+               "       li              0, 500                          \n\t" \\r
+               "       mtspr   8, 0    #LR                     \n\t" \\r
+               "       li              0, 4                            \n\t" \\r
+               "       mtspr   1, 0    #XER            \n\t" \\r
+               "                                                               \n\t" \\r
+               "       li              0, 11                           \n\t" \\r
+               "       li              2, 12                           \n\t" \\r
+               "       li              3, 13                           \n\t" \\r
+               "       li              4,      14                              \n\t" \\r
+               "       li              5,      15                              \n\t" \\r
+               "       li              6,      16                              \n\t" \\r
+               "       li              7,      17                              \n\t" \\r
+               "       li              8,      18                              \n\t" \\r
+               "       li              9,      19                              \n\t" \\r
+               "       li              10,     110                             \n\t" \\r
+               "       li              11,     111                             \n\t" \\r
+               "       li              12,     112                             \n\t" \\r
+               "       li              13,     113                             \n\t" \\r
+               "       li              14,     114                             \n\t" \\r
+               "       li              15,     115                             \n\t" \\r
+               "       li              16,     116                             \n\t" \\r
+               "       li              17,     117                             \n\t" \\r
+               "       li              18,     118                             \n\t" \\r
+               "       li              19,     119                             \n\t" \\r
+               "       li              20,     120                             \n\t" \\r
+               "       li              21,     121                             \n\t" \\r
+               "       li              22,     122                             \n\t" \\r
+               "       li              23,     123                             \n\t" \\r
+               "       li              24,     124                             \n\t" \\r
+               "       li              25,     125                             \n\t" \\r
+               "       li              26,     126                             \n\t" \\r
+               "       li              27,     127                             \n\t" \\r
+               "       li              28,     128                             \n\t" \\r
+               "       li              29,     129                             \n\t" \\r
+               "       li              30,     130                             \n\t" \\r
+               "       li              31,     131                             \n\t" \\r
+               "                                                               \n\t" \\r
+               "       cmpwi   0, 11                           \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   2, 12                           \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   3, 13                           \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   4, 14                           \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   5, 15                           \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   6, 16                           \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   7, 17                           \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   8, 18                           \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   9, 19                           \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   10, 110                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   11, 111                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   12, 112                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   13, 113                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   14, 114                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   15, 115                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   16, 116                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   17, 117                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   18, 118                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   19, 119                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   20, 120                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   21, 121                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   22, 122                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   23, 123                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   24, 124                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   25, 125                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   26, 126                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   27, 127                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   28, 128                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   29, 129                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   30, 130                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       cmpwi   31, 131                         \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "                                                               \n\t" \\r
+               "       mfspr   0, 256  #USPRG0         \n\t" \\r
+               "       cmpwi   0, 300                          \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       mfspr   0, 8    #LR                     \n\t" \\r
+               "       cmpwi   0, 500                          \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "       mfspr   0, 1    #XER            \n\t" \\r
+               "       cmpwi   0, 4                            \n\t" \\r
+               "       bne     RegTest2Fail                    \n\t" \\r
+               "                                                               \n\t" \\r
+               "       bl prvRegTest2Pass                      \n\t" \\r
+               "       b RegTest2Start                         \n\t" \\r
+               "                                                               \n\t" \\r
+               "RegTest2Fail:                                  \n\t" \\r
+               "                                                               \n\t" \\r
+               "                                                               \n\t" \\r
+               "       bl prvRegTestFail                       \n\t" \\r
+               "       b RegTest2Start                         \n\t" \\r
+       );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* This hook function will get called if there is a suspected stack overflow.\r
+An overflow can cause the task name to be corrupted, in which case the task\r
+handle needs to be used to determine the offending task. */\r
+void vApplicationStackOverflowHook( xTaskHandle xTask, signed portCHAR *pcTaskName );\r
+void vApplicationStackOverflowHook( xTaskHandle xTask, signed portCHAR *pcTaskName )\r
+{\r
+       /* The following three calls are simply to stop compiler warnings about the\r
+       functions not being used - they are called from the inline assembly. */\r
+       prvRegTest1Pass();\r
+       prvRegTest2Pass();\r
+       prvRegTestFail();\r
+\r
+       for( ;; );\r
+}\r
+\r
+\r
+\r
+\r
index 0d8d9c129ea83af22533d08d4501dde92a37b5f1..94457b522a071ff2db6658f0e9b20cea54e99bcf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index e343284d900901e4959c9ac92691c781a40d94bd..3e54779080b7af43289dfd65d12310bcb3d923b7 100644 (file)
-/*
-       FreeRTOS.org V4.8.0 - 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.
-
-    ***************************************************************************
-    ***************************************************************************
-    *                                                                         *
-    * SAVE TIME AND MONEY!  We can port FreeRTOS.org to your own hardware,    *
-    * and even write all or part of your application on your behalf.          *
-    * See http://www.OpenRTOS.com for details of the services we provide to   *
-    * expedite your project.                                                  *
-    *                                                                         *
-    ***************************************************************************
-    ***************************************************************************
-
-       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 UART
-*/
-
-/* Scheduler includes. */
-#include "FreeRTOS.h"
-#include "queue.h"
-#include "task.h"
-
-/* Demo application includes. */
-#include "serial.h"
-
-/* Library includes. */
-#include "xparameters.h"
-#include "xuartlite.h"
-#include "xuartlite_l.h"
-
-/*-----------------------------------------------------------*/
-
-/* Queues used to hold received characters, and characters waiting to be
-transmitted. */
-static xQueueHandle xRxedChars; 
-static xQueueHandle xCharsForTx; 
-
-/* Structure that maintains information on the UART being used. */
-static XUartLite xUART;
-
-/*
- * Sample UART interrupt handler.  Note this is used to demonstrate the kernel
- * features and test the port - it is not intended to represent an efficient
- * implementation.
- */
-static void vSerialISR( XUartLite *pxUART );
-
-/*-----------------------------------------------------------*/
-
-xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
-{
-       /* NOTE: The baud rate used by this driver is determined by the hardware
-       parameterization of the UART Lite peripheral, and the baud value passed to
-       this function has no effect. */
-       ( void ) ulWantedBaud;
-
-       /* 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 ) );
-
-       /* Only initialise the UART if the queues were created correctly. */
-       if( ( xRxedChars != NULL ) && ( xCharsForTx != NULL ) )
-       {
-
-               XUartLite_Initialize( &xUART, XPAR_RS232_UART_DEVICE_ID );
-               XUartLite_ResetFifos( &xUART );
-               XUartLite_DisableInterrupt( &xUART );
-
-               if( xPortInstallInterruptHandler( XPAR_XPS_INTC_0_RS232_UART_INTERRUPT_INTR, ( XInterruptHandler )vSerialISR, (void *)&xUART ) == pdPASS )
-               {
-                       /* xPortInstallInterruptHandler() could fail if 
-                       vPortSetupInterruptController() has not been called prior to this 
-                       function. */
-                       XUartLite_EnableInterrupt( &xUART );
-               }
-       }
-       
-       /* There is only one port so the handle is not used. */
-       return ( xComPortHandle ) 0;
-}
-/*-----------------------------------------------------------*/
-
-signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
-{
-       /* The port handle is not required as this driver only supports one UART. */
-       ( 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;
-       }
-}
-/*-----------------------------------------------------------*/
-
-signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
-{
-portBASE_TYPE xReturn = pdTRUE;
-
-       portENTER_CRITICAL();
-       {
-               /* If the UART FIFO is full we can block posting the new data on the
-               Tx queue. */
-               if( XUartLite_mIsTransmitFull( XPAR_RS232_UART_BASEADDR ) )
-               {
-                       if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
-                       {
-                               xReturn = pdFAIL;
-                       }
-               }
-               /* Otherwise, if there is data already in the queue we should add the
-               new data to the back of the queue to ensure the sequencing is 
-               maintained. */
-               else if( uxQueueMessagesWaiting( xCharsForTx ) )
-               {
-                       if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
-                       {
-                               xReturn = pdFAIL;
-                       }                       
-               }
-               /* If the UART FIFO is not full and there is no data already in the
-               queue we can write directly to the FIFO without disrupting the 
-               sequence. */
-               else
-               {
-                       XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cOutChar );
-               }
-       }
-       portEXIT_CRITICAL();
-
-       return xReturn;
-}
-/*-----------------------------------------------------------*/
-
-void vSerialClose( xComPortHandle xPort )
-{
-       /* Not supported as not required by the demo application. */
-       ( void ) xPort;
-}
-/*-----------------------------------------------------------*/
-
-static void vSerialISR( XUartLite *pxUART )
-{
-unsigned portLONG ulISRStatus;
-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE, lDidSomething;
-portCHAR cChar;
-
-       do
-       {
-               lDidSomething = pdFALSE;
-
-               ulISRStatus = XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_STATUS_REG_OFFSET );
-
-               if( ( ulISRStatus & XUL_SR_RX_FIFO_VALID_DATA ) != 0 )
-               {
-                       /* A character is available - place it in the queue of received
-                       characters.  This might wake a task that was blocked waiting for 
-                       data. */
-                       cChar = ( portCHAR ) XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_RX_FIFO_OFFSET );
-                       xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );
-                       lDidSomething = pdTRUE;
-               }
-               
-               if( ( ulISRStatus & XUL_SR_TX_FIFO_EMPTY ) != 0 )
-               {
-                       /* There is space in the FIFO - if there are any characters queue for
-                       transmission they can be sent to the UART now.  This might unblock a
-                       task that was waiting for space to become available on the Tx queue. */
-                       if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )
-                       {
-                               XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cChar );
-                               lDidSomething = pdTRUE;
-                       }                       
-               }
-       } while( lDidSomething == pdTRUE );
-
-       /* If we woke any tasks we may require a context switch. */
-       if( xHigherPriorityTaskWoken )
-       {
-               portYIELD_FROM_ISR();
-       }
-}
-
-
-
+/*\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+       This file is part of the FreeRTOS.org distribution.\r
+\r
+       FreeRTOS.org is free software; you can redistribute it and/or modify\r
+       it under the terms of the GNU General Public License as published by\r
+       the Free Software Foundation; either version 2 of the License, or\r
+       (at your option) any later version.\r
+\r
+       FreeRTOS.org is distributed in the hope that it will be useful,\r
+       but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+       GNU General Public License for more details.\r
+\r
+       You should have received a copy of the GNU General Public License\r
+       along with FreeRTOS.org; if not, write to the Free Software\r
+       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+\r
+       A special exception to the GPL can be applied should you wish to distribute\r
+       a combined work that includes FreeRTOS.org, without being obliged to provide\r
+       the source code for any proprietary components.  See the licensing section \r
+       of http://www.FreeRTOS.org for full details of how and when the exception\r
+       can be applied.\r
+\r
+    ***************************************************************************\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * SAVE TIME AND MONEY!  We can port FreeRTOS.org to your own hardware,    *\r
+    * and even write all or part of your application on your behalf.          *\r
+    * See http://www.OpenRTOS.com for details of the services we provide to   *\r
+    * expedite your project.                                                  *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+    ***************************************************************************\r
+\r
+       Please ensure to read the configuration and relevant port sections of the\r
+       online documentation.\r
+\r
+       http://www.FreeRTOS.org - Documentation, latest information, license and \r
+       contact details.\r
+\r
+       http://www.SafeRTOS.com - A version that is certified for use in safety \r
+       critical systems.\r
+\r
+       http://www.OpenRTOS.com - Commercial support, development, porting, \r
+       licensing and training services.\r
+*/\r
+\r
+\r
+/* \r
+       BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR UART\r
+*/\r
+\r
+/* Scheduler includes. */\r
+#include "FreeRTOS.h"\r
+#include "queue.h"\r
+#include "task.h"\r
+\r
+/* Demo application includes. */\r
+#include "serial.h"\r
+\r
+/* Library includes. */\r
+#include "xparameters.h"\r
+#include "xuartlite.h"\r
+#include "xuartlite_l.h"\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Queues used to hold received characters, and characters waiting to be\r
+transmitted. */\r
+static xQueueHandle xRxedChars; \r
+static xQueueHandle xCharsForTx; \r
+\r
+/* Structure that maintains information on the UART being used. */\r
+static XUartLite xUART;\r
+\r
+/*\r
+ * Sample UART interrupt handler.  Note this is used to demonstrate the kernel\r
+ * features and test the port - it is not intended to represent an efficient\r
+ * implementation.\r
+ */\r
+static void vSerialISR( XUartLite *pxUART );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
+{\r
+       /* NOTE: The baud rate used by this driver is determined by the hardware\r
+       parameterization of the UART Lite peripheral, and the baud value passed to\r
+       this function has no effect. */\r
+       ( void ) ulWantedBaud;\r
+\r
+       /* Create the queues used to hold Rx and Tx characters. */\r
+       xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );\r
+       xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );\r
+\r
+       /* Only initialise the UART if the queues were created correctly. */\r
+       if( ( xRxedChars != NULL ) && ( xCharsForTx != NULL ) )\r
+       {\r
+\r
+               XUartLite_Initialize( &xUART, XPAR_RS232_UART_DEVICE_ID );\r
+               XUartLite_ResetFifos( &xUART );\r
+               XUartLite_DisableInterrupt( &xUART );\r
+\r
+               if( xPortInstallInterruptHandler( XPAR_XPS_INTC_0_RS232_UART_INTERRUPT_INTR, ( XInterruptHandler )vSerialISR, (void *)&xUART ) == pdPASS )\r
+               {\r
+                       /* xPortInstallInterruptHandler() could fail if \r
+                       vPortSetupInterruptController() has not been called prior to this \r
+                       function. */\r
+                       XUartLite_EnableInterrupt( &xUART );\r
+               }\r
+       }\r
+       \r
+       /* There is only one port so the handle is not used. */\r
+       return ( xComPortHandle ) 0;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )\r
+{\r
+       /* The port handle is not required as this driver only supports one UART. */\r
+       ( void ) pxPort;\r
+\r
+       /* Get the next character from the buffer.  Return false if no characters\r
+       are available, or arrive before xBlockTime expires. */\r
+       if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )\r
+       {\r
+               return pdTRUE;\r
+       }\r
+       else\r
+       {\r
+               return pdFALSE;\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )\r
+{\r
+portBASE_TYPE xReturn = pdTRUE;\r
+\r
+       portENTER_CRITICAL();\r
+       {\r
+               /* If the UART FIFO is full we can block posting the new data on the\r
+               Tx queue. */\r
+               if( XUartLite_mIsTransmitFull( XPAR_RS232_UART_BASEADDR ) )\r
+               {\r
+                       if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )\r
+                       {\r
+                               xReturn = pdFAIL;\r
+                       }\r
+               }\r
+               /* Otherwise, if there is data already in the queue we should add the\r
+               new data to the back of the queue to ensure the sequencing is \r
+               maintained. */\r
+               else if( uxQueueMessagesWaiting( xCharsForTx ) )\r
+               {\r
+                       if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )\r
+                       {\r
+                               xReturn = pdFAIL;\r
+                       }                       \r
+               }\r
+               /* If the UART FIFO is not full and there is no data already in the\r
+               queue we can write directly to the FIFO without disrupting the \r
+               sequence. */\r
+               else\r
+               {\r
+                       XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cOutChar );\r
+               }\r
+       }\r
+       portEXIT_CRITICAL();\r
+\r
+       return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vSerialClose( xComPortHandle xPort )\r
+{\r
+       /* Not supported as not required by the demo application. */\r
+       ( void ) xPort;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void vSerialISR( XUartLite *pxUART )\r
+{\r
+unsigned portLONG ulISRStatus;\r
+portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE, lDidSomething;\r
+portCHAR cChar;\r
+\r
+       do\r
+       {\r
+               lDidSomething = pdFALSE;\r
+\r
+               ulISRStatus = XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_STATUS_REG_OFFSET );\r
+\r
+               if( ( ulISRStatus & XUL_SR_RX_FIFO_VALID_DATA ) != 0 )\r
+               {\r
+                       /* A character is available - place it in the queue of received\r
+                       characters.  This might wake a task that was blocked waiting for \r
+                       data. */\r
+                       cChar = ( portCHAR ) XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_RX_FIFO_OFFSET );\r
+                       xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );\r
+                       lDidSomething = pdTRUE;\r
+               }\r
+               \r
+               if( ( ulISRStatus & XUL_SR_TX_FIFO_EMPTY ) != 0 )\r
+               {\r
+                       /* There is space in the FIFO - if there are any characters queue for\r
+                       transmission they can be sent to the UART now.  This might unblock a\r
+                       task that was waiting for space to become available on the Tx queue. */\r
+                       if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )\r
+                       {\r
+                               XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cChar );\r
+                               lDidSomething = pdTRUE;\r
+                       }                       \r
+               }\r
+       } while( lDidSomething == pdTRUE );\r
+\r
+       /* If we woke any tasks we may require a context switch. */\r
+       if( xHigherPriorityTaskWoken )\r
+       {\r
+               portYIELD_FROM_ISR();\r
+       }\r
+}\r
+\r
+\r
+\r
index e3a95656b4114df80c1da54436fee471ab2e8882..5f71f24e73d14f15d20740e1f848d41ad7ac298a 100644 (file)
@@ -1,5 +1,5 @@
 ppc405_0\r
-RTOSDEMO_SOURCES = RTOSDemo/../../Common/Minimal/BlockQ.c RTOSDemo/../../Common/Minimal/blocktim.c RTOSDemo/../../Common/Minimal/comtest.c RTOSDemo/../../Common/Minimal/countsem.c RTOSDemo/../../Common/Minimal/death.c RTOSDemo/../../Common/Minimal/dynamic.c RTOSDemo/../../Common/Minimal/flash.c RTOSDemo/../../Common/Minimal/flop.c RTOSDemo/../../Common/Minimal/GenQTest.c RTOSDemo/../../Common/Minimal/integer.c RTOSDemo/../../Common/Minimal/QPeek.c RTOSDemo/../../Common/Minimal/recmutex.c RTOSDemo/../../Common/Minimal/semtest.c RTOSDemo/../../../Source/tasks.c RTOSDemo/../../../Source/list.c RTOSDemo/../../../Source/queue.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c RTOSDemo/main.c RTOSDemo/serial/serial.c RTOSDemo/partest/partest.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S RTOSDemo/../../../Source/portable/MemMang/heap_2.c \r
+RTOSDEMO_SOURCES = RTOSDemo/../../Common/Minimal/BlockQ.c RTOSDemo/../../Common/Minimal/blocktim.c RTOSDemo/../../Common/Minimal/comtest.c RTOSDemo/../../Common/Minimal/countsem.c RTOSDemo/../../Common/Minimal/death.c RTOSDemo/../../Common/Minimal/dynamic.c RTOSDemo/../../Common/Minimal/flash.c RTOSDemo/../../Common/Minimal/GenQTest.c RTOSDemo/../../Common/Minimal/integer.c RTOSDemo/../../Common/Minimal/QPeek.c RTOSDemo/../../Common/Minimal/recmutex.c RTOSDemo/../../Common/Minimal/semtest.c RTOSDemo/../../../Source/tasks.c RTOSDemo/../../../Source/list.c RTOSDemo/../../../Source/queue.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c RTOSDemo/main.c RTOSDemo/serial/serial.c RTOSDemo/partest/partest.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S RTOSDemo/../../../Source/portable/MemMang/heap_2.c \r
 RTOSDEMO_HEADERS = RTOSDemo/FreeRTOSConfig.h \r
 RTOSDEMO_CC = powerpc-eabi-gcc\r
 RTOSDEMO_CC_SIZE = powerpc-eabi-size\r
index 0c98e8f1e0fc2aee61bdafe45caf702d1e744331..0dd5e02f75c2d0cbe7df01b08c19e40ecadf359c 100644 (file)
@@ -41,7 +41,6 @@ Source: RTOSDemo/../../Common/Minimal/countsem.c
 Source: RTOSDemo/../../Common/Minimal/death.c\r
 Source: RTOSDemo/../../Common/Minimal/dynamic.c\r
 Source: RTOSDemo/../../Common/Minimal/flash.c\r
-Source: RTOSDemo/../../Common/Minimal/flop.c\r
 Source: RTOSDemo/../../Common/Minimal/GenQTest.c\r
 Source: RTOSDemo/../../Common/Minimal/integer.c\r
 Source: RTOSDemo/../../Common/Minimal/QPeek.c\r
index 44228feff70f1ea40393f176af3d0491fe014f64..dc54237b8ff3a6e5416481d41eb743e36a03fc29 100644 (file)
@@ -114,7 +114,7 @@ FPGA_IMP_DEPENDENCY = $(BMM_FILE) $(POSTSYN_NETLIST) $(UCF_FILE) $(BITGEN_UT_FIL
 # SOFTWARE APPLICATION RTOSDEMO\r
 #################################################################\r
 \r
-RTOSDEMO_SOURCES = RTOSDemo/../../Common/Minimal/BlockQ.c RTOSDemo/../../Common/Minimal/blocktim.c RTOSDemo/../../Common/Minimal/comtest.c RTOSDemo/../../Common/Minimal/countsem.c RTOSDemo/../../Common/Minimal/death.c RTOSDemo/../../Common/Minimal/dynamic.c RTOSDemo/../../Common/Minimal/flash.c RTOSDemo/../../Common/Minimal/flop.c RTOSDemo/../../Common/Minimal/GenQTest.c RTOSDemo/../../Common/Minimal/integer.c RTOSDemo/../../Common/Minimal/QPeek.c RTOSDemo/../../Common/Minimal/recmutex.c RTOSDemo/../../Common/Minimal/semtest.c RTOSDemo/../../../Source/tasks.c RTOSDemo/../../../Source/list.c RTOSDemo/../../../Source/queue.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c RTOSDemo/main.c RTOSDemo/serial/serial.c RTOSDemo/partest/partest.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S RTOSDemo/../../../Source/portable/MemMang/heap_2.c \r
+RTOSDEMO_SOURCES = RTOSDemo/../../Common/Minimal/BlockQ.c RTOSDemo/../../Common/Minimal/blocktim.c RTOSDemo/../../Common/Minimal/comtest.c RTOSDemo/../../Common/Minimal/countsem.c RTOSDemo/../../Common/Minimal/death.c RTOSDemo/../../Common/Minimal/dynamic.c RTOSDemo/../../Common/Minimal/flash.c RTOSDemo/../../Common/Minimal/GenQTest.c RTOSDemo/../../Common/Minimal/integer.c RTOSDemo/../../Common/Minimal/QPeek.c RTOSDemo/../../Common/Minimal/recmutex.c RTOSDemo/../../Common/Minimal/semtest.c RTOSDemo/../../../Source/tasks.c RTOSDemo/../../../Source/list.c RTOSDemo/../../../Source/queue.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c RTOSDemo/main.c RTOSDemo/serial/serial.c RTOSDemo/partest/partest.c RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S RTOSDemo/../../../Source/portable/MemMang/heap_2.c \r
 \r
 RTOSDEMO_HEADERS = RTOSDemo/FreeRTOSConfig.h \r
 \r
index 0c0172a5427e4fabc796d3a053e261fbffd7f396..a782dd07fe6caabb91eb40c33466f6e2ee097357 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 87a9b75c87849df11c0ecddd725cd3af85dda8db..4eea5b57f083fc22bea9a04ab39e22ebb9aa0353 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 7d8ac4a005e2adc21a3be6b716383d6793c12383..39577d97cf667580378a2829a08fbae56d1d7b3d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 48945aedad3d4d78fed6647fde7cc32ca17eb5ab..47e9d863998dca483551e40cb9ea9bafe8ebf378 100644 (file)
@@ -1,4 +1,4 @@
-#      FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+#      FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 #\r
 #      This file is part of the FreeRTOS.org distribution.\r
 #\r
index af69a5849b22b83633837955b75947d4e86125a5..78cc17960b3e318b7e82a97bf4995652afe521a7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 49a58aed5f46832af1df9dbfbfb6142d7bd0e214..c27c7642fd39762223e61a2809a60c083ad4849d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3f353dd43c2f3b6792d7f3b4f52110370bd79cc1..42aab12e8e221b0dcd320ce603500fb9586cd47f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b91d552b50b498dc8a8ca31bf4f1f3db0482f3f2..cb9263f095a6b8f323c5e09257ce199b8f9ad1bd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 4f655427e4c8a915e5e5df7473a544077a7686f3..a9acba83966ed8ed8c302cfbf965a836e6c5ffc1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f24b0697ac40c04c2aa91821e277b1016386d0af..bf10600075de8e7440d50c407f2524070d44fab2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index d62a813c730bdfaaba8742721433dff969a3c568..8e016403229e40920513fd525935cb9d087aec54 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 57f444647989cb790bb18983bfd284de7e8e2128..f3c7a5eb048995b3dee354f8f94e9010307d851a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 617293bb9f3f7760205c94f9f08ee3947b4eefd8..27cbdc87abefe5c96811b440b712722698a9f91d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 8ebd49132c87a13a974dc8360e1e0776f724f975..b0400bcd1135cd5cc3b74297a5084570a425c0cf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b064e7283cccb23e37e6b5bbebacaa6f924b9a07..6525b26e52532bc584c1cb8245a7d5ba6fefab44 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index afe067c23c96b960f792bdd1c8f3e572f4645027..a0836d3930dbca75bb619b1a9adc8318e0404f95 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 5583485b7460ed1363f2088e435321d0ca6ad2fb..388871fe957e2debb0ecc3e13b5d912e34ee3662 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 84b380293d00846463161fbe5cc871a70e3521c3..680bbf427a7fa6606164a540a5ddbc4f32b0e39f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 8dab2c8a866d8ac77943bfb0bae27bca24cb1485..96e8caf91915fb2b20e3280ac77447a67c2d93c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 4240235842ad4c8746f8f60231aff179226f8b0d..0fbe03227848f2b76132d6c381f01388454c6c61 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3289271745342e95b370d90d3db91261d8f8b46a..171d713817a5f021fdca3829d6473c6fbd89b3aa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0cc09ac7702c161dd9470315b13a424c529034a4..67e3327c0adfbe0407c2fb0c7b7cee2cfe2e1dc5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 063b74a39c117aa3d489acd841ab2c492422dab4..d8ff12f9e300510a78fa454a0e5b95005c27eaa9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index b6e72d364dc08dfd70238576c3349ab7aa2f375f..d0a46f1ee812e64635146c7ceebd49ac7a1f52b1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index f36b267bbe23a7561fde93038ce1b598dce7dcd2..a439b31c13cd114bd408267e0f2ef9e827ee4302 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 75dbf79db4d17e965ab0a58a085b8e7dfd588619..9843ebb620e4702717b95f88323e2b846f7f7948 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 2bb3e4564a09d0367f4614c5cbd9ae851134c4d5..cbaa3e5c4efa81c0c875564cde2f33b8d881a486 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c92517c3c28cfb35b1e196cf00b6eef4333a2ae2..c2ed0f75ffa3ea13331f7cfc0c6c97d2fffa1dd2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index c37f55a6df51c15377406bb7f7db589246f1fa4a..d6c8c272ae0bd60a05cd43c4e70d643e8914ea67 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 15e9d682af2e5e19761219a4016c1cdb132c2ee4..912b495f24e49e68a03a73d4c837390006041d8f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 2ae663dbb684417dbd89397c240be29768207f36..f75e9294fe825d7765b30088026197c3cd92952d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 326bd81c43f0b418af34eb9388db4416236841c4..daa021e95219700256feabb8acbd65e4c65ff2f6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0b649c9e7553f05cad9a7f9f07a244e40dfbee49..39abf08e809f3956cbe92ad816d9bd5f714c83a2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0cfb775e58ec370289586a3dbf19cdc05f0110e5..a74539f075f82aec45c28c6c6d5b00baff08a4f0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 6892ff28b696a9aea51c9f0eaded7f7406676d30..c0bf9a31e6f69a0835690ac761cfef8661df061b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-  FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+  FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
   This file is part of the FreeRTOS.org distribution.\r
 \r
index d9ea91823b20656ea1dc5a4c7501155cb1a7a21f..70ffbbe19f934b5015b83d46ba7199a89ed28331 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 2c3a58c9eb0ed8724dd972145f37889fd4f7ee0f..30488a9dc940f26e8d9b5d0f680ee3e187c0f6a9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 0abdbd37245feeb8f57816527cdd71531f638ab5..e21420997b554adc39f3ababee7771a95078577b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 17a2a358d2642ce7bcfd2683b4ce7cf7368d6014..bdad0a73918bccfabc049c2ad251f810011324a1 100644 (file)
@@ -1,4 +1,4 @@
-#      FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+#      FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 #\r
 #      This file is part of the FreeRTOS.org distribution.\r
 #\r
index 0c3f6d547ef3d549ea183a5ac2c8bc2b4c973a9f..27b3c76a4c64b0da2f107ce89c0049c42a6b8133 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index d86db7ecac7f709186650852c5643c74a24dac89..9d203ca5c861852a09b2e72a75c2c6881cb89968 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index fc6ae1aa80b505df4a09aedfbc5bb9d1714e4039..76f04976a1894af35e6aafed021203e4d965af8f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 1586e1734478f38dabba67053838406065889cef..58f2fa7e103a0ff0f9ddc580ce28772e73ffb6de 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index a7489cbfaa7999917da57373f8e45674e473064e..652c52dfa257c11db3cf71b0d4675da39cecdfc3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index d891c57cebd018e7a3fd4f8d346cc44cabc6bf94..368c17dc21ad3398dbfe9de6d02218702d071c3d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 593f9da96aa5779191604ccdf4000fb883a45059..8480daac5e5b54a8b75d6943a079442d7d43d19b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 286503ad0e6dfea33ba7419b4bc0e980414f937a..023d4b33e6fb2e931cfd4009e46949b8126fd627 100644 (file)
@@ -1,4 +1,4 @@
-#      FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+#      FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 #\r
 #      This file is part of the FreeRTOS.org distribution.\r
 #\r
index b6c7cf11d377aa7f6a47f11f8f61a6a1bd50271c..fb492074e1d9a4600bbb6fc61cd14d3e86733725 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 1e0ab077bd3f4eba1664cb8a90c9f880c01d0708..576eb94a6600b5b6a70c360c7837acd5cbdcb6e6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index dbb192501ddcace09c688899f84e5ec3bf977e42..418b08ec35d4334cc957c6a1946b2363a5cf96eb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 3a83560ffc60d08c669883a68868c4890781f73b..976d6cc4c3a7cac57170f254a9dba1ca33a835f5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index a6ef4e50edd735e04dc25c43a4ba0682b28ac2df..5a9fc163e213e8c65b309078319bcd7253366e59 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
index 78f53655a256618ce0617040576391275b232145..5ed071ca70f5984b90cfe3734437151279898112 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V4.8.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.0.0 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r