OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [MB96340_Softune/] [FreeRTOS_96348hs_SK16FX100PMC/] [readme.txt] - Blame information for rev 609

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 584 jeremybenn
==========================================================================
2
                   Template Project for MB96348HS Series
3
==========================================================================
4
                   Fujitsu Microelectronics Europe GmbH
5
 
6
 The following  software  is for  demonstration  purposes only.  It is not
7
 fully  tested, nor validated  in order  to fullfill  its task  under  all
8
 circumstances.  Therefore,  this software or  any part of it must only be
9
 used in an evaluation laboratory environment.
10
 This software is subject to the rules of our standard DISCLAIMER, that is
11
 delivered with our SW-tools on the Fujitsu Microcontrollers DVD
12
 (V5.0 or higher "\START.HTM").
13
==========================================================================
14
 
15
History
16
Date        Ver     Author  Softune     Description
17
2007-10-29  1.0     MPi     V30L33R11   original version
18
2007-11-02  1.1     MPi     V30L33R11   Added the watchdog functionality
19
                                                                                Used vTaskStartScheduler() instead
20
                                                                                of xPortStartScheduler()
21
2007-11-12  1.2     MPi     V30L33R11   Updated FreeRTOS 4.6.1 and tested
22
2007-11-23  1.3     MPi     V30L33R11   Seperated watchdog functionality in watchdog.c
23
                                                                                and watchdog.h
24
2008-01-03  1.4     MPi     V30L33R11   Added portYIELDFromISR() and now all the
25
                                                                                demo application functions are working.
26
2008-01-04  1.5     MPi     V30L33R11   Updated FreeRTOS 4.7.0 and tested
27
2008-01-10  1.6     MPi     V30L33R11   Replaced INT9 with INT #122 in macro portYIELD()
28
2008-01-14  1.7     MPi     V30L33R11   Modified the code to work with  SK-16FX-100PMC V1.1
29
2008-01-15  1.8     MPi     V30L33R11   Integrated SVN releases 1.5 and 1.6.
30
==========================================================================
31
1.0.
32
This is a project is to test the FreeRTOS port for 16FX and the demo application
33
which runs on FLASH-CAN-100P-240.
34
 
35
This FreeRTOS port uses the Task Stack pointed by User Stack pointer (USB:USP) for
36
tasks and the system stack pointed by System Stack pointer (SSB:SSP) for everything
37
else.
38
 
39
This port is tested with MEDIUM and LARGE memory model and seems to be working fine.
40
The define MEMMODEL has to be configured in order to use the corresponding memory
41
model.
42
 
43
This port doesnt use any register banking and always uses bank 0. It also consider that
44
the parameters to the tasks is passed via stack and not via registers.
45
 
46
In this port the implemetation of portENTER_CRITICAL() and portEXIT_CRITICAL() macros
47
is changed in order to make them more efficient. Now usCriticalNesting variable is not
48
used to keep track of global interrupt enable. Rather the current PS is stored on to
49
the stack and interrupts are disabled for portENTER_CRITICAL(). And for portEXIT_CRITICAL()
50
simply the PS is restored from stack.
51
 
52
1.1.
53
In this port, the functionality is added to initialize and clear the watchdog in the
54
dedicated task, Tick Hook or the Idle Hook. The place exactly where the wtachdog can be
55
cleared can be configured. Though Idle Hook is not an approproiate place to clear the
56
watchdog, its done here for demonstration purpose only.
57
 
58
Also from Main function vTaskStartScheduler() function is called instead of xPortStartScheduler().
59
After doing this change now no more IDLE task is required to be added seperately as
60
vTaskStartScheduler() adds prvIdleTask() on its own.
61
 
62
1.2.
63
Updated the FreeRTOS version to 4.6.1 and tested with the same.
64
 
65
1.3.
66
Moved the watchdog functionality to watchdog.c and watchdog.h.
67
 
68
1.4.
69
Added portYIELDFromISR() which uses delayed interrupt. This macro needs to be used from the
70
application ISRs in order to force a context switch from them if required. It should be noted
71
that the interrupt priority of such application ISRs MUST be always higher than the dealyed
72
interrupt (currently 23) in order to perform the context switch correctly.
73
 
74
It should be also noted that the RLT0 and Delayed Interrupt priority MUST be always same in order
75
to assure correct working of this port.
76
 
77
Now portYIELD() used software interrupt INT9 instead of delayed interrupt.
78
 
79
Now all the queue functions works ok.
80
 
81
Tested with the heap_1.c, heap_2.c and heap_3.c.
82
 
83
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
84
required to be used should be removed from the target of the build.
85
 
86
Added the __STD_LIB_sbrk.c file in order to define the *sbrk() function. This is required while using
87
heap_3.c file which uses the dynamic memory allocation.
88
 
89
Made changes to the demo application files crhook.c. Please refer the file and grep for "Added by MPi"
90
to find the changes. It should be noted that if INCLUDE_StartHookCoRoutines is defined as 0 (i.e. if
91
vStartHookCoRoutines() functionality is NOT required) then crhook.c file should be removed from target
92
build and uncomment the vApplicationTickHook() function from main.c should be uncommnented.
93
 
94
Added taskutility.c file. This file contains vUART2Task() which calls vTaskList() and vTaskStartTrace()
95
functions.
96
 
97
If vCreateBlockTimeTasks() is not called then the LED at PDR00_P7 blinks at normal rate (3s).
98
 
99
This port is tested with MEDIUM and LARGE memory model and working fine.
100
 
101
configMINIMAL_STACK_SIZE value changed to 172 from 70 in order to make the port work.
102
 
103
1.5.
104
Updated the FreeRTOS version to 4.7.0 and tested with the same. Tested for pre-emptive as well as
105
co-operative approach.
106
 
107
1.6.
108
portYIELD() macro now uses INT #122 instead of INT9.
109
 
110
Optimized functions vParTestToggleLED() and vParTestSetLED() in main.c.
111
 
112
Now watchdog uses 2^23 as clock prescaler instead of 2^24. Also updated the WTC_CLR_PER in watchdog.h.
113
 
114
1.7.
115
Modified the code to work with  SK-16FX-100PMC V1.1.
116
 
117
Made changes to the demo application files crflash.c. Please refer the file and grep for "Added by MPi"
118
to find the changes.
119
 
120
Made changes to taskutility.c and vectors.c in order to use UART1 instead of UART2.
121
 
122
Made changes to main.c file in order to handle use the 7-segment display (SEG1) connected to Port09 for tasks
123
and 7-segment display (SEG2) connected to Port00 for co-routines.
124
 
125
Added config.h and moved the demo application configs there.
126
 
127
1.8.
128
It should be noted that the readme, appnote and SVN tag version numbers may be different for the same release.
129
 
130
This readme is specific to project FreeRTOS_96348hs_SK16FX100PMC. And this project specifically works
131
on board SK-16FX-100PMC V1.1 along with EUROScope debugger.
132
 
133
Created 4 different configuration Config_1 to Config_4. Each config includes certain demo application function.
134
More details specific to each configuration can be found in the appnote.
135
 
136
Used relative path to include files instead of absolute.
137
 
138
Created config, MemMang, serial and utility subdirectories and moved corresponding functionlaity there.
139
 
140
Updated config.h, main.c and start.asm in order to have configuration specific build.
141
 
142
Clock settings:
143
---------------
144
Crystal:  4 MHz
145
CLKB:    56 MHz
146
CLKP1:   56 MHz
147
CLKP2:   56 MHz

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.