1 |
584 |
jeremybenn |
|
2 |
|
|
==========================================================================
|
3 |
|
|
Template Project for MB91F467D
|
4 |
|
|
==========================================================================
|
5 |
|
|
Fujitsu Microelectronics Europe GmbH
|
6 |
|
|
http://emea.fujitsu.com/microelectronics
|
7 |
|
|
|
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 |
|
|
==========================================================================
|
16 |
|
|
|
17 |
|
|
History
|
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
|
21 |
|
|
with SVN
|
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 |
|
|
==========================================================================
|
31 |
|
|
1.0.
|
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.
|
34 |
|
|
|
35 |
|
|
1.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
|
38 |
|
|
else.
|
39 |
|
|
|
40 |
|
|
1.2.
|
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.
|
45 |
|
|
|
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.
|
49 |
|
|
|
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.
|
58 |
|
|
|
59 |
|
|
1.3.
|
60 |
|
|
Tested with the FreeRTOS version 4.6.1.
|
61 |
|
|
|
62 |
|
|
Changed portBYTE_ALIGNMENT to 4 from 1.
|
63 |
|
|
|
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.
|
68 |
|
|
|
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.
|
71 |
|
|
|
72 |
|
|
Now portYIELD() used software interrupt INT #40H instead of delayed interrupt.
|
73 |
|
|
|
74 |
|
|
Now all the queue functions works ok.
|
75 |
|
|
|
76 |
|
|
Tested with the heap_1.c, heap_2.c and heap_3.c.
|
77 |
|
|
|
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.
|
80 |
|
|
|
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.
|
83 |
|
|
|
84 |
|
|
Added taskutility.c file. This file contains vUART4Task() which calls vTaskList() and vTaskStartTrace()
|
85 |
|
|
functions.
|
86 |
|
|
|
87 |
|
|
If vCreateBlockTimeTasks() is not called then the LED at PDR25_D7 blinks at normal rate (3s).
|
88 |
|
|
|
89 |
|
|
1.4.
|
90 |
|
|
Tested with the FreeRTOS version 4.6.1.
|
91 |
|
|
|
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.
|
94 |
|
|
|
95 |
|
|
1.5.
|
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.
|
98 |
|
|
|
99 |
|
|
1.6.
|
100 |
|
|
It should be noted that the readme, appnote and SVN tag version numbers may be different for the same release.
|
101 |
|
|
|
102 |
|
|
Used relative path to include files instead of absolute.
|
103 |
|
|
|
104 |
|
|
Created config, MemMang, serial and utility subdirectories and moved corresponding functionlaity there.
|
105 |
|
|
|
106 |
|
|
Updated taskuitlity.c, vectors.c in oredr to use UART 5 instead of UART 4
|
107 |
|
|
|
108 |
|
|
Updated flash.c to increase LEDs to 4 from 3.
|
109 |
|
|
|
110 |
|
|
Clock settings:
|
111 |
|
|
---------------
|
112 |
|
|
Crystal: 4 MHz
|
113 |
|
|
CPU: 64 MHz
|
114 |
|
|
CLKP: 16 MHz
|