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] - Rev 584
Compare with Previous | Blame | View Log
==========================================================================Template Project for MB96348HS Series==========================================================================Fujitsu Microelectronics Europe GmbHThe following software is for demonstration purposes only. It is notfully tested, nor validated in order to fullfill its task under allcircumstances. Therefore, this software or any part of it must only beused in an evaluation laboratory environment.This software is subject to the rules of our standard DISCLAIMER, that isdelivered with our SW-tools on the Fujitsu Microcontrollers DVD(V5.0 or higher "\START.HTM").==========================================================================HistoryDate Ver Author Softune Description2007-10-29 1.0 MPi V30L33R11 original version2007-11-02 1.1 MPi V30L33R11 Added the watchdog functionalityUsed vTaskStartScheduler() insteadof xPortStartScheduler()2007-11-12 1.2 MPi V30L33R11 Updated FreeRTOS 4.6.1 and tested2007-11-23 1.3 MPi V30L33R11 Seperated watchdog functionality in watchdog.cand watchdog.h2008-01-03 1.4 MPi V30L33R11 Added portYIELDFromISR() and now all thedemo application functions are working.2008-01-04 1.5 MPi V30L33R11 Updated FreeRTOS 4.7.0 and tested2008-01-10 1.6 MPi V30L33R11 Replaced INT9 with INT #122 in macro portYIELD()2008-01-14 1.7 MPi V30L33R11 Modified the code to work with SK-16FX-100PMC V1.12008-01-15 1.8 MPi V30L33R11 Integrated SVN releases 1.5 and 1.6.==========================================================================1.0.This is a project is to test the FreeRTOS port for 16FX and the demo applicationwhich runs on FLASH-CAN-100P-240.This FreeRTOS port uses the Task Stack pointed by User Stack pointer (USB:USP) fortasks and the system stack pointed by System Stack pointer (SSB:SSP) for everythingelse.This port is tested with MEDIUM and LARGE memory model and seems to be working fine.The define MEMMODEL has to be configured in order to use the corresponding memorymodel.This port doesnt use any register banking and always uses bank 0. It also consider thatthe parameters to the tasks is passed via stack and not via registers.In this port the implemetation of portENTER_CRITICAL() and portEXIT_CRITICAL() macrosis changed in order to make them more efficient. Now usCriticalNesting variable is notused to keep track of global interrupt enable. Rather the current PS is stored on tothe stack and interrupts are disabled for portENTER_CRITICAL(). And for portEXIT_CRITICAL()simply the PS is restored from stack.1.1.In this port, the functionality is added to initialize and clear the watchdog in thededicated task, Tick Hook or the Idle Hook. The place exactly where the wtachdog can becleared can be configured. Though Idle Hook is not an approproiate place to clear thewatchdog, 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 asvTaskStartScheduler() adds prvIdleTask() on its own.1.2.Updated the FreeRTOS version to 4.6.1 and tested with the same.1.3.Moved the watchdog functionality to watchdog.c and watchdog.h.1.4.Added portYIELDFromISR() which uses delayed interrupt. This macro needs to be used from theapplication ISRs in order to force a context switch from them if required. It should be notedthat the interrupt priority of such application ISRs MUST be always higher than the dealyedinterrupt (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 orderto assure correct working of this port.Now portYIELD() used software interrupt INT9 instead of delayed interrupt.Now all the queue functions works ok.Tested with the heap_1.c, heap_2.c and heap_3.c.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 notrequired to be used should be removed from the target of the build.Added the __STD_LIB_sbrk.c file in order to define the *sbrk() function. This is required while usingheap_3.c file which uses the dynamic memory allocation.Made changes to the demo application files crhook.c. Please refer the file and grep for "Added by MPi"to find the changes. It should be noted that if INCLUDE_StartHookCoRoutines is defined as 0 (i.e. ifvStartHookCoRoutines() functionality is NOT required) then crhook.c file should be removed from targetbuild and uncomment the vApplicationTickHook() function from main.c should be uncommnented.Added taskutility.c file. This file contains vUART2Task() which calls vTaskList() and vTaskStartTrace()functions.If vCreateBlockTimeTasks() is not called then the LED at PDR00_P7 blinks at normal rate (3s).This port is tested with MEDIUM and LARGE memory model and working fine.configMINIMAL_STACK_SIZE value changed to 172 from 70 in order to make the port work.1.5.Updated the FreeRTOS version to 4.7.0 and tested with the same. Tested for pre-emptive as well asco-operative approach.1.6.portYIELD() macro now uses INT #122 instead of INT9.Optimized functions vParTestToggleLED() and vParTestSetLED() in main.c.Now watchdog uses 2^23 as clock prescaler instead of 2^24. Also updated the WTC_CLR_PER in watchdog.h.1.7.Modified the code to work with SK-16FX-100PMC V1.1.Made changes to the demo application files crflash.c. Please refer the file and grep for "Added by MPi"to find the changes.Made changes to taskutility.c and vectors.c in order to use UART1 instead of UART2.Made changes to main.c file in order to handle use the 7-segment display (SEG1) connected to Port09 for tasksand 7-segment display (SEG2) connected to Port00 for co-routines.Added config.h and moved the demo application configs there.1.8.It should be noted that the readme, appnote and SVN tag version numbers may be different for the same release.This readme is specific to project FreeRTOS_96348hs_SK16FX100PMC. And this project specifically workson board SK-16FX-100PMC V1.1 along with EUROScope debugger.Created 4 different configuration Config_1 to Config_4. Each config includes certain demo application function.More details specific to each configuration can be found in the appnote.Used relative path to include files instead of absolute.Created config, MemMang, serial and utility subdirectories and moved corresponding functionlaity there.Updated config.h, main.c and start.asm in order to have configuration specific build.Clock settings:---------------Crystal: 4 MHzCLKB: 56 MHzCLKP1: 56 MHzCLKP2: 56 MHz
