2 ==========================================================================
3 Template Project for MB91F467D
4 ==========================================================================
5 Fujitsu Microelectronics Europe GmbH
6 http://emea.fujitsu.com/microelectronics
8 The following software is for demonstration purposes only. It is not
9 fully tested, nor validated in order to fullfill its task under all
10 circumstances. Therefore, this software or any part of it must only be
11 used in an evaluation laboratory environment.
12 This software is subject to the rules of our standard DISCLAIMER, that is
13 delivered with our SW-tools on the Fujitsu Microcontrollers CD /DVD
14 (V3.4 or higher "\START.HTM").
15 ==========================================================================
18 Date Ver Author Softune Description
19 2007-11-12 1.0 MPi V60L06 original version
20 2007-11-12 1.1 MPi V60L06 Changed the version for consistency
22 2007-11-23 1.2 MPi V60L06 Seperated Watchdog functionality
23 added watchdog.c and watchdog.h
24 2007-12-13 1.3 MPi V60L06 Tested with the FreeRTOS version 4.6.1.
25 2007-12-13 1.4 MPi V60L06 Tested with the FreeRTOS version 4.7.0.
26 2007-01-07 1.5 MPi V60L06 Removed watchdog.c, watchdog.h, port.c
27 and portmacro.h from directory
28 \FreeRTOS_Port_FR\91467d_FreeRTOS\SRC
29 2007-01-18 1.6 MPi V60L06 Tested with monitor debugger
30 ==========================================================================
32 This is a project is to test the FreeRTOS port for FR (91467D) and the demo
33 application which runs on SK-91F467-Felxray V1.1.
36 This FreeRTOS port uses the Task Stack pointed by User Stack pointer (USP) for
37 tasks and the system stack pointed by System Stack pointer (SSP) for everything
41 In this port, the functionality is added to initialize and clear the watchdog in
42 the dedicated task, Tick Hook or the Idle Hook. The place exactly where the
43 watchdog can be cleared can be configured. Though Idle Hook is not an approproiate
44 place to clear the watchdog, its done here for demonstration purpose only.
46 Also from Main function vTaskStartScheduler() function is called instead of
47 xPortStartScheduler(). After doing this change now no more IDLE task is required
48 to be added seperately as vTaskStartScheduler() adds prvIdleTask() on its own.
50 The System Stack required by each of the RLT0 and Delayed Interrupt ISR is around 100
51 bytes. This is considering no interrupts has higher priority than the RLT0 and Delayed
52 interrupt (23). If an application has interrupt whose priority is higher than these
53 interrupts, which is very likely, then for each such interrupt the user has to increase
54 the stack size at least by 50 bytes, though this is not an optimum figure and very well
55 depends upon the application.
56 Hence though the STACK_SYS_SIZE is defined as 2000, its optimum value would be very well
57 dependent on the application where the port would be used.
60 Tested with the FreeRTOS version 4.6.1.
62 Changed portBYTE_ALIGNMENT to 4 from 1.
64 Added portYIELDFromISR() which uses delayed interrupt. This macro needs to be used from the
65 application ISRs in order to force a context switch from them if required. It should be noted
66 that the interrupt priority of such application ISRs MUST be always higher than the dealyed
67 interrupt (currently 23) in order to perform the context switch correctly.
69 It should be also noted that the RLT0 and Delayed Interrupt priority MUST be always same in order
70 to assure correct working of this port.
72 Now portYIELD() used software interrupt INT #40H instead of delayed interrupt.
74 Now all the queue functions works ok.
76 Tested with the heap_1.c, heap_2.c and heap_3.c.
78 Added the __STD_LIB_sbrk.c file in order to define the *sbrk() function. This is required while using
79 heap_3.c file which uses the dynamic memory allocation.
81 Made changes to the demo application files crflash.c and crhook.c. Please refer those file
82 and grep for "Added by MPi" to find the changes.
84 Added taskutility.c file. This file contains vUART4Task() which calls vTaskList() and vTaskStartTrace()
87 If vCreateBlockTimeTasks() is not called then the LED at PDR25_D7 blinks at normal rate (3s).
90 Tested with the FreeRTOS version 4.6.1.
92 At one time, either of heap_1.c or heap_2.c or heap_3.c needs to be used. Hence the files those are not
93 required to be used should be removed from the target of the build.
96 Removed watchdog.c, watchdog.h, port.c and portmacro.h from directory \FreeRTOS_Port_FR\91467d_FreeRTOS\SRC,
97 since they are moved to folders watchdog and port respectively.
100 It should be noted that the readme, appnote and SVN tag version numbers may be different for the same release.
102 Used relative path to include files instead of absolute.
104 Created config, MemMang, serial and utility subdirectories and moved corresponding functionlaity there.
106 Updated taskuitlity.c, vectors.c in oredr to use UART 5 instead of UART 4
108 Updated flash.c to increase LEDs to 4 from 3.