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