Add MB91460 port and demo files.

This commit is contained in:
Richard Barry 2008-02-06 17:27:42 +00:00
parent e6e5add7d8
commit eed758709c
30 changed files with 31710 additions and 0 deletions

View File

@ -0,0 +1,182 @@
$CPUSERIES-911
$Prj-STANDALONE
$0
-g
-w 1
-INF LIST
-I ".\SRC"
-I ".\SRC\watchdog"
-I "..\Common\include"
-I "..\..\Source\include"
-I "..\..\Source\portable\Softune\MB91460"
-O 0
-K SHORTADDRESS
-B
-K NOSCHEDULE
-K A1
-K SARG
-Xdof
-INF STACK
-x vTaskIncrementTick,vTaskSwitchContext
-K NOEOPT
-K NOLIB
-K NOUNROLL
$other
-Xalign
-D__91467D
$time
1202156592
$end
$1
-g
-w 2
-O 0
-linf ON
-lsrc ON
-lsec ON
-lcros OFF
-linc ON
-lexp OBJ
-pl 60
-pw 100
-tab 8
-Xdof
$other
$time
1119939829
$end
$2
-g
-AL 2
-ra D_RAM=0x00028100/0x0002FFFF
-ra ID_RAM=0x00030000/0x00037FFF
-ro ROM_AREA=0x00040000/0x0014FFFF
-sc SSTACK/Stack+USTACK/Data+INIT/Data+DATA/Data=D_RAM
-sc IRAM/Code=ID_RAM
-sc CODE+@INIT+@IRAM+CONST=ROM_AREA
-sc CODE_START/Code=0x000F4000
-sc INTVECT/Const=0x000FFC00
-check_locate
-m
-mmi
-xlf
-slf
-mlf
-pl 60
-pw 132
-Xals
-Xalr
-na
-w 1
-Xdof
$other
$time
1201699972
$end
$3
-dt s,d,r,a
-pl 60
-pw 132
-g
-Xdof
$other
$time
1201699972
$end
$4
-Xdof
$other
$time
1119274137
$end
$5
$other
$time
1119274137
$end
$Prjend
$Prj-MONDEB_INTERNAL
$0
-g
-w 1
-O 4
-K SPEED
-K LONGADDRESS
-B
-K SCHEDULE
-K A1
-K SARG
-Xdof
-K EOPT
-K LIB
-K UNROLL
$other
-Xalign
$time
1161331678
$end
$1
-g
-w 2
-O 0
-linf ON
-lsrc ON
-lsec ON
-lcros OFF
-linc ON
-lexp OBJ
-pl 60
-pw 100
-tab 8
-Xdof
$other
$time
1142592435
$end
$2
-g
-AL 2
-ra D_RAM=0x00029000/0x0002FFFF
-ra ID_RAM=0x00030000/0x00037FFF
-ro ROM_AREA=0x00840000/0x0094FFFF
-ro SECURITY_AREA=0x00148000/0x0014800F
-sc DATA/Data+INIT/Data+SSTACK/Data+USTACK/Data=D_RAM
-sc IRAM/Code=ID_RAM
-sc CODE+@INIT+@IRAM+CONST=ROM_AREA
-sc CODE_START/Code=0x008F4000
-check_locate
-m
-pl 60
-pw 132
-Xals
-Xalr
-na
-w 1
-Xdof
$other
$time
1201109020
$end
$3
-dt s,d,r,a
-pl 60
-pw 132
-g
-Xdof
$other
$time
1201109020
$end
$4
-Xdof
$other
$time
1130252218
$end
$5
$other
$time
1130252218
$end
$Prjend
$CPUSERIESEND

View File

@ -0,0 +1,606 @@
[Version]
DLLVer=02.5007.00.1
PRJVer=1
[PRJKIND]
mode=1
[CPUTYPE]
CpuSerise=911
[DirInfo]
PRJ=C:\E\Dev\_FreeRTOS\Demo\MB91460_Softune\
[PrjInfo]
Count=2
PrjInfo-0=STANDALONE
PrjInfo-1=MONDEB_INTERNAL
Active=STANDALONE
[MEMBER]
F0=44
F1=0 f Source Files
F2=0 c SRC\MAIN.c
F3=0 a SRC\mb91467d.asm
F4=0 a SRC\Start91460.asm
F5=0 c SRC\vectors.c
F6=0 f Source Files\portable
F7=0 c ..\..\Source\portable\Softune\MB91460\__STD_LIB_sbrk.c
F8=0 c ..\..\Source\portable\Softune\MB91460\port.c
F9=0 f Source Files\FreeRTOS
F10=0 c ..\..\Source\croutine.c
F11=0 c ..\..\Source\list.c
F12=0 c ..\..\Source\queue.c
F13=0 c ..\..\Source\tasks.c
F14=0 f Source Files\Minimal
F15=0 c ..\Common\Minimal\AltBlckQ.c
F16=0 c ..\Common\Minimal\AltBlock.c
F17=0 c ..\Common\Minimal\AltPollQ.c
F18=0 c ..\Common\Minimal\AltQTest.c
F19=0 c ..\Common\Minimal\BlockQ.c
F20=0 c ..\Common\Minimal\blocktim.c
F21=0 c ..\Common\Minimal\comtest.c
F22=0 c ..\Common\Minimal\countsem.c
F23=0 c ..\Common\Minimal\crflash.c
F24=0 c ..\Common\Minimal\crhook.c
F25=0 c ..\Common\Minimal\death.c
F26=0 c ..\Common\Minimal\dynamic.c
F27=0 c ..\Common\Minimal\flash.c
F28=0 c ..\Common\Minimal\flop.c
F29=0 c ..\Common\Minimal\GenQTest.c
F30=0 c ..\Common\Minimal\integer.c
F31=0 c ..\Common\Minimal\PollQ.c
F32=0 c ..\Common\Minimal\QPeek.c
F33=0 c ..\Common\Minimal\semtest.c
F34=0 f Source Files\MemMang
F35=0 c ..\..\Source\portable\MemMang\heap_1.c
F36=0 c ..\..\Source\portable\MemMang\heap_2.c
F37=0 c ..\..\Source\portable\MemMang\heap_3.c
F38=0 f Source Files\serial
F39=0 c SRC\serial\serial.c
F40=0 f Source Files\watchdog
F41=0 c SRC\watchdog\watchdog.c
F42=0 f Source Files\utility
F43=0 c SRC\utility\taskutility.c
F44=0 f Include Files
[OPTIONFILE]
FILE=91460_template_91467d.dat
[CPUTYPE-STANDALONE]
CsvFile=Lib\911\911.csv
CpuName=MB91F467D
ChgChipInfo-0=12@16:0:17:1:18:2:19:3:20:4:21:5:22:6:23:7:24:8:25:9:26:10:27:11:28:12:29:13:30:14:31:15:32:16:33:17:34:18:35:19:36:20:37:21:38:22:39:23:40:24:41:25:42:26:43:27:44:28:45:29:46:30:47:31:48:32:49:33:50:34:51:35:52:36:53:37:54:38:55:39:56:40:57:41:58:42:59:43:60:44:61:45:62:46:63:47:64:48:65:49:66:50:67:51:68:52:69:53:70:54:71:55:72:56:73:57:74:58:75:59:76:60:77:61:78:62:79:63
Count=1
BusMode=2
BusWidth=2
[DirInfo-STANDALONE]
CONFIG=STANDALONE\
OBJ=STANDALONE\OBJ\
LST=STANDALONE\LST\
OPT=STANDALONE\OPT\
[MEMBER-STANDALONE]
F0=36
F1=0 m 1 STANDALONE\ABS\91467d_FreeRTOS.abs
F2=9 c 1 ..\..\Source\portable\Softune\MB91460\port.c
F2-1=- ..\..\Source\include\FreeRTOS.h
F2-2=- ..\..\Source\include\projdefs.h
F2-3=- SRC\FreeRTOSConfig.h
F2-4=- ..\..\Source\include\portable.h
F2-5=- SRC\mb91467d.h
F2-6=- ..\..\Source\include\task.h
F2-7=- ..\..\Source\include\list.h
F2-8=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F2-9=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F3=3 c 1 ..\..\Source\portable\Softune\MB91460\__STD_LIB_sbrk.c
F3-1=- SRC\FreeRTOSConfig.h
F3-2=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F3-3=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F4=10 c 1 ..\..\Source\croutine.c
F4-1=- ..\..\Source\include\FreeRTOS.h
F4-2=- ..\..\Source\include\projdefs.h
F4-3=- SRC\FreeRTOSConfig.h
F4-4=- ..\..\Source\include\portable.h
F4-5=- ..\..\Source\include\task.h
F4-6=- ..\..\Source\include\list.h
F4-7=- ..\..\Source\include\croutine.h
F4-8=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F4-9=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F4-10=- SRC\mb91467d.h
F5=9 c 1 ..\..\Source\list.c
F5-1=- ..\..\Source\include\FreeRTOS.h
F5-2=- ..\..\Source\include\projdefs.h
F5-3=- SRC\FreeRTOSConfig.h
F5-4=- ..\..\Source\include\portable.h
F5-5=- ..\..\Source\include\list.h
F5-6=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F5-7=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F5-8=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F5-9=- SRC\mb91467d.h
F6=12 c 1 ..\..\Source\queue.c
F6-1=- ..\..\Source\include\FreeRTOS.h
F6-2=- ..\..\Source\include\projdefs.h
F6-3=- SRC\FreeRTOSConfig.h
F6-4=- ..\..\Source\include\portable.h
F6-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F6-6=- SRC\mb91467d.h
F6-7=- ..\..\Source\include\task.h
F6-8=- ..\..\Source\include\list.h
F6-9=- ..\..\Source\include\croutine.h
F6-10=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F6-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F6-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\string.h
F7=13 c 1 ..\..\Source\tasks.c
F7-1=- ..\..\Source\include\FreeRTOS.h
F7-2=- ..\..\Source\include\projdefs.h
F7-3=- SRC\FreeRTOSConfig.h
F7-4=- ..\..\Source\include\portable.h
F7-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F7-6=- SRC\mb91467d.h
F7-7=- ..\..\Source\include\task.h
F7-8=- ..\..\Source\include\list.h
F7-9=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdio.h
F7-10=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F7-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdarg.h
F7-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F7-13=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\string.h
F8=11 c 1 SRC\MAIN.c
F8-1=- SRC\mb91467d.h
F8-2=- SRC\vectors.h
F8-3=- ..\..\Source\include\FreeRTOS.h
F8-4=- ..\..\Source\include\projdefs.h
F8-5=- SRC\FreeRTOSConfig.h
F8-6=- ..\..\Source\include\portable.h
F8-7=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F8-8=- ..\..\Source\include\task.h
F8-9=- ..\..\Source\include\list.h
F8-10=- SRC\watchdog\watchdog.h
F8-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F9=2 c 1 SRC\vectors.c
F9-1=- SRC\mb91467d.h
F9-2=- SRC\watchdog\watchdog.h
F10=1 a 1 SRC\mb91467d.asm
F10-1=- SRC\mb91467d.h
F11=0 a 1 SRC\Start91460.asm
F12=12 c 0 ..\Common\Minimal\AltBlckQ.c
F12-1=- ..\..\..\..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stdlib.h
F12-2=- ..\..\..\..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stddef.h
F12-3=- ..\..\Source\include\FreeRTOS.h
F12-4=- ..\..\Source\include\projdefs.h
F12-5=- SRC\FreeRTOSConfig.h
F12-6=- ..\..\Source\include\portable.h
F12-7=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F12-8=- SRC\mb91467d.h
F12-9=- ..\..\Source\include\task.h
F12-10=- ..\..\Source\include\list.h
F12-11=- ..\..\Source\include\queue.h
F12-12=- ..\Common\include\AltBlckQ.h
F13=11 c 0 ..\Common\Minimal\AltBlock.c
F13-1=- ..\..\Source\include\FreeRTOS.h
F13-2=- ..\..\..\..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stddef.h
F13-3=- ..\..\Source\include\projdefs.h
F13-4=- SRC\FreeRTOSConfig.h
F13-5=- ..\..\Source\include\portable.h
F13-6=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F13-7=- SRC\mb91467d.h
F13-8=- ..\..\Source\include\task.h
F13-9=- ..\..\Source\include\list.h
F13-10=- ..\..\Source\include\queue.h
F13-11=- ..\Common\include\AltBlock.h
F14=12 c 0 ..\Common\Minimal\AltPollQ.c
F14-1=- ..\..\..\..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stdlib.h
F14-2=- ..\..\..\..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stddef.h
F14-3=- ..\..\Source\include\FreeRTOS.h
F14-4=- ..\..\Source\include\projdefs.h
F14-5=- SRC\FreeRTOSConfig.h
F14-6=- ..\..\Source\include\portable.h
F14-7=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F14-8=- SRC\mb91467d.h
F14-9=- ..\..\Source\include\task.h
F14-10=- ..\..\Source\include\list.h
F14-11=- ..\..\Source\include\queue.h
F14-12=- ..\Common\include\AltPollQ.h
F15=13 c 0 ..\Common\Minimal\AltQTest.c
F15-1=- ..\..\..\..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stdlib.h
F15-2=- ..\..\..\..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stddef.h
F15-3=- ..\..\Source\include\FreeRTOS.h
F15-4=- ..\..\Source\include\projdefs.h
F15-5=- SRC\FreeRTOSConfig.h
F15-6=- ..\..\Source\include\portable.h
F15-7=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F15-8=- SRC\mb91467d.h
F15-9=- ..\..\Source\include\task.h
F15-10=- ..\..\Source\include\list.h
F15-11=- ..\..\Source\include\queue.h
F15-12=- ..\..\Source\include\semphr.h
F15-13=- ..\Common\include\AltQTest.h
F16=12 c 1 ..\Common\Minimal\BlockQ.c
F16-1=- ..\..\Source\include\FreeRTOS.h
F16-2=- ..\..\Source\include\projdefs.h
F16-3=- SRC\FreeRTOSConfig.h
F16-4=- ..\..\Source\include\portable.h
F16-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F16-6=- SRC\mb91467d.h
F16-7=- ..\..\Source\include\task.h
F16-8=- ..\..\Source\include\list.h
F16-9=- ..\..\Source\include\queue.h
F16-10=- ..\Common\include\BlockQ.h
F16-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F16-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F17=11 c 1 ..\Common\Minimal\blocktim.c
F17-1=- ..\..\Source\include\FreeRTOS.h
F17-2=- ..\..\Source\include\projdefs.h
F17-3=- SRC\FreeRTOSConfig.h
F17-4=- ..\..\Source\include\portable.h
F17-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F17-6=- SRC\mb91467d.h
F17-7=- ..\..\Source\include\task.h
F17-8=- ..\..\Source\include\list.h
F17-9=- ..\..\Source\include\queue.h
F17-10=- ..\Common\include\blocktim.h
F17-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F18=13 c 1 ..\Common\Minimal\comtest.c
F18-1=- ..\..\Source\include\FreeRTOS.h
F18-2=- ..\..\Source\include\projdefs.h
F18-3=- SRC\FreeRTOSConfig.h
F18-4=- ..\..\Source\include\portable.h
F18-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F18-6=- SRC\mb91467d.h
F18-7=- ..\..\Source\include\task.h
F18-8=- ..\..\Source\include\list.h
F18-9=- ..\Common\include\serial.h
F18-10=- ..\Common\include\comtest.h
F18-11=- ..\Common\include\partest.h
F18-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F18-13=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F19=12 c 0 ..\Common\Minimal\countsem.c
F19-1=- ..\..\Source\include\FreeRTOS.h
F19-2=- ..\..\..\..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stddef.h
F19-3=- ..\..\Source\include\projdefs.h
F19-4=- SRC\FreeRTOSConfig.h
F19-5=- ..\..\Source\include\portable.h
F19-6=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F19-7=- SRC\mb91467d.h
F19-8=- ..\..\Source\include\task.h
F19-9=- ..\..\Source\include\list.h
F19-10=- ..\..\Source\include\semphr.h
F19-11=- ..\..\Source\include\queue.h
F19-12=- ..\Common\include\countsem.h
F20=12 c 1 ..\Common\Minimal\crflash.c
F20-1=- ..\..\Source\include\FreeRTOS.h
F20-2=- ..\..\Source\include\projdefs.h
F20-3=- SRC\FreeRTOSConfig.h
F20-4=- ..\..\Source\include\portable.h
F20-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F20-6=- SRC\mb91467d.h
F20-7=- ..\..\Source\include\croutine.h
F20-8=- ..\..\Source\include\list.h
F20-9=- ..\..\Source\include\queue.h
F20-10=- ..\Common\include\partest.h
F20-11=- ..\Common\include\crflash.h
F20-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F21=11 c 1 ..\Common\Minimal\crhook.c
F21-1=- ..\..\Source\include\FreeRTOS.h
F21-2=- ..\..\Source\include\projdefs.h
F21-3=- SRC\FreeRTOSConfig.h
F21-4=- ..\..\Source\include\portable.h
F21-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F21-6=- SRC\mb91467d.h
F21-7=- ..\..\Source\include\croutine.h
F21-8=- ..\..\Source\include\list.h
F21-9=- ..\..\Source\include\queue.h
F21-10=- ..\Common\include\crhook.h
F21-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F22=11 c 1 ..\Common\Minimal\death.c
F22-1=- ..\..\Source\include\FreeRTOS.h
F22-2=- ..\..\Source\include\projdefs.h
F22-3=- SRC\FreeRTOSConfig.h
F22-4=- ..\..\Source\include\portable.h
F22-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F22-6=- SRC\mb91467d.h
F22-7=- ..\..\Source\include\task.h
F22-8=- ..\..\Source\include\list.h
F22-9=- ..\Common\include\death.h
F22-10=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F22-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F23=13 c 1 ..\Common\Minimal\dynamic.c
F23-1=- ..\..\Source\include\FreeRTOS.h
F23-2=- ..\..\Source\include\projdefs.h
F23-3=- SRC\FreeRTOSConfig.h
F23-4=- ..\..\Source\include\portable.h
F23-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F23-6=- SRC\mb91467d.h
F23-7=- ..\..\Source\include\task.h
F23-8=- ..\..\Source\include\list.h
F23-9=- ..\..\Source\include\queue.h
F23-10=- ..\Common\include\dynamic.h
F23-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F23-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F23-13=- ..\Common\Minimal\semphr.h
F24=12 c 1 ..\Common\Minimal\flash.c
F24-1=- ..\..\Source\include\FreeRTOS.h
F24-2=- ..\..\Source\include\projdefs.h
F24-3=- SRC\FreeRTOSConfig.h
F24-4=- ..\..\Source\include\portable.h
F24-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F24-6=- SRC\mb91467d.h
F24-7=- ..\..\Source\include\task.h
F24-8=- ..\..\Source\include\list.h
F24-9=- ..\Common\include\partest.h
F24-10=- ..\Common\include\flash.h
F24-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F24-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F25=13 c 1 ..\Common\Minimal\flop.c
F25-1=- ..\..\Source\include\FreeRTOS.h
F25-2=- ..\..\Source\include\projdefs.h
F25-3=- SRC\FreeRTOSConfig.h
F25-4=- ..\..\Source\include\portable.h
F25-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F25-6=- SRC\mb91467d.h
F25-7=- ..\..\Source\include\task.h
F25-8=- ..\..\Source\include\list.h
F25-9=- ..\Common\include\flop.h
F25-10=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F25-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F25-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\math.h
F25-13=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\errno.h
F26=13 c 1 ..\Common\Minimal\GenQTest.c
F26-1=- ..\..\Source\include\FreeRTOS.h
F26-2=- ..\..\Source\include\projdefs.h
F26-3=- SRC\FreeRTOSConfig.h
F26-4=- ..\..\Source\include\portable.h
F26-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F26-6=- SRC\mb91467d.h
F26-7=- ..\..\Source\include\task.h
F26-8=- ..\..\Source\include\list.h
F26-9=- ..\..\Source\include\queue.h
F26-10=- ..\Common\include\GenQTest.h
F26-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F26-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F26-13=- ..\Common\Minimal\semphr.h
F27=11 c 1 ..\Common\Minimal\integer.c
F27-1=- ..\..\Source\include\FreeRTOS.h
F27-2=- ..\..\Source\include\projdefs.h
F27-3=- SRC\FreeRTOSConfig.h
F27-4=- ..\..\Source\include\portable.h
F27-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F27-6=- SRC\mb91467d.h
F27-7=- ..\..\Source\include\task.h
F27-8=- ..\..\Source\include\list.h
F27-9=- ..\Common\include\integer.h
F27-10=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F27-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F28=12 c 1 ..\Common\Minimal\PollQ.c
F28-1=- ..\..\Source\include\FreeRTOS.h
F28-2=- ..\..\Source\include\projdefs.h
F28-3=- SRC\FreeRTOSConfig.h
F28-4=- ..\..\Source\include\portable.h
F28-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F28-6=- SRC\mb91467d.h
F28-7=- ..\..\Source\include\task.h
F28-8=- ..\..\Source\include\list.h
F28-9=- ..\..\Source\include\queue.h
F28-10=- ..\Common\include\PollQ.h
F28-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F28-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F29=13 c 1 ..\Common\Minimal\QPeek.c
F29-1=- ..\..\Source\include\FreeRTOS.h
F29-2=- ..\..\Source\include\projdefs.h
F29-3=- SRC\FreeRTOSConfig.h
F29-4=- ..\..\Source\include\portable.h
F29-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F29-6=- SRC\mb91467d.h
F29-7=- ..\..\Source\include\task.h
F29-8=- ..\..\Source\include\list.h
F29-9=- ..\..\Source\include\queue.h
F29-10=- ..\Common\include\QPeek.h
F29-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F29-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F29-13=- ..\Common\Minimal\semphr.h
F30=13 c 1 ..\Common\Minimal\semtest.c
F30-1=- ..\..\Source\include\FreeRTOS.h
F30-2=- ..\..\Source\include\projdefs.h
F30-3=- SRC\FreeRTOSConfig.h
F30-4=- ..\..\Source\include\portable.h
F30-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F30-6=- SRC\mb91467d.h
F30-7=- ..\..\Source\include\task.h
F30-8=- ..\..\Source\include\list.h
F30-9=- ..\..\Source\include\queue.h
F30-10=- ..\Common\include\semtest.h
F30-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F30-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F30-13=- ..\Common\Minimal\semphr.h
F31=10 c 1 ..\..\Source\portable\MemMang\heap_3.c
F31-1=- ..\..\Source\include\FreeRTOS.h
F31-2=- ..\..\Source\include\projdefs.h
F31-3=- SRC\FreeRTOSConfig.h
F31-4=- ..\..\Source\include\portable.h
F31-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F31-6=- SRC\mb91467d.h
F31-7=- ..\..\Source\include\task.h
F31-8=- ..\..\Source\include\list.h
F31-9=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F31-10=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F32=10 c 0 ..\..\Source\portable\MemMang\heap_1.c
F32-1=- ..\..\Source\include\FreeRTOS.h
F32-2=- ..\..\Source\include\projdefs.h
F32-3=- SRC\FreeRTOSConfig.h
F32-4=- ..\..\Source\include\portable.h
F32-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F32-6=- SRC\mb91467d.h
F32-7=- ..\..\Source\include\task.h
F32-8=- ..\..\Source\include\list.h
F32-9=- ..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stdlib.h
F32-10=- ..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stddef.h
F33=10 c 0 ..\..\Source\portable\MemMang\heap_2.c
F33-1=- ..\..\Source\include\FreeRTOS.h
F33-2=- ..\..\Source\include\projdefs.h
F33-3=- SRC\FreeRTOSConfig.h
F33-4=- ..\..\Source\include\portable.h
F33-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F33-6=- SRC\mb91467d.h
F33-7=- ..\..\Source\include\task.h
F33-8=- ..\..\Source\include\list.h
F33-9=- ..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stdlib.h
F33-10=- ..\..\..\..\..\SoftuneV6_32bit_REV600008\LIB\911\INCLUDE\stddef.h
F34=12 c 1 SRC\serial\serial.c
F34-1=- ..\..\Source\include\FreeRTOS.h
F34-2=- ..\..\Source\include\projdefs.h
F34-3=- SRC\FreeRTOSConfig.h
F34-4=- ..\..\Source\include\portable.h
F34-5=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F34-6=- SRC\mb91467d.h
F34-7=- ..\..\Source\include\queue.h
F34-8=- ..\..\Source\include\task.h
F34-9=- ..\..\Source\include\list.h
F34-10=- ..\Common\include\serial.h
F34-11=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stdlib.h
F34-12=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F35=10 c 1 SRC\watchdog\watchdog.c
F35-1=- SRC\mb91467d.h
F35-2=- ..\..\Source\include\FreeRTOS.h
F35-3=- ..\..\Source\include\projdefs.h
F35-4=- SRC\FreeRTOSConfig.h
F35-5=- ..\..\Source\include\portable.h
F35-6=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F35-7=- ..\..\Source\include\task.h
F35-8=- ..\..\Source\include\list.h
F35-9=- SRC\watchdog\watchdog.h
F35-10=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
F36=10 c 1 SRC\utility\taskutility.c
F36-1=- SRC\mb91467d.h
F36-2=- SRC\vectors.h
F36-3=- ..\..\Source\include\FreeRTOS.h
F36-4=- ..\..\Source\include\projdefs.h
F36-5=- SRC\FreeRTOSConfig.h
F36-6=- ..\..\Source\include\portable.h
F36-7=- ..\..\Source\portable\Softune\MB91460\portmacro.h
F36-8=- ..\..\Source\include\task.h
F36-9=- ..\..\Source\include\list.h
F36-10=- ..\..\..\..\..\devtools\Softune6\LIB\911\INCLUDE\stddef.h
[BUILDMODE-STANDALONE]
kernel=1
[RUNSET-STANDALONE]
CONVERT=1
CONVERTKIND=0
[DebState-STANDALONE]
SupCount=6
Supfile-0=STANDALONE\Simulator.sup
Supfile-1=STANDALONE\MB2198-01-USB.sup
Supfile-2=STANDALONE\MB2198-01-COM1.sup
Supfile-3=STANDALONE\MB2198-01-LAN.sup
Supfile-4=STANDALONE\Mondeb_57K6_com1.sup
Supfile-5=STANDALONE\Mondeb_57K6_com2.sup
Current=Mondeb_57K6_com1.sup
AliasFile=
CPURunMode=
[CPUTYPE-MONDEB_INTERNAL]
CsvFile=Lib\911\911.csv
CpuName=MB91F467D
Count=0
BusMode=3
BusWidth=2
[DirInfo-MONDEB_INTERNAL]
CONFIG=MONDEB_INTERNAL\
OBJ=MONDEB_INTERNAL\OBJ\
LST=MONDEB_INTERNAL\LST\
OPT=MONDEB_INTERNAL\OPT\
[MEMBER-MONDEB_INTERNAL]
F0=36
F1=0 m 1 MONDEB_INTERNAL\ABS\91467d_FreeRTOS.abs
F2=0 c 1 ..\..\Source\portable\Softune\MB91460\port.c
F3=0 c 1 ..\..\Source\portable\Softune\MB91460\__STD_LIB_sbrk.c
F4=0 c 1 ..\..\Source\croutine.c
F5=0 c 1 ..\..\Source\list.c
F6=0 c 1 ..\..\Source\queue.c
F7=0 c 1 ..\..\Source\tasks.c
F8=0 c 1 SRC\MAIN.c
F9=0 c 1 SRC\vectors.c
F10=0 a 1 SRC\mb91467d.asm
F11=0 a 1 SRC\Start91460.asm
F12=0 c 1 ..\Common\Minimal\AltBlckQ.c
F13=0 c 1 ..\Common\Minimal\AltBlock.c
F14=0 c 1 ..\Common\Minimal\AltPollQ.c
F15=0 c 1 ..\Common\Minimal\AltQTest.c
F16=0 c 1 ..\Common\Minimal\BlockQ.c
F17=0 c 1 ..\Common\Minimal\blocktim.c
F18=0 c 1 ..\Common\Minimal\comtest.c
F19=0 c 1 ..\Common\Minimal\countsem.c
F20=0 c 1 ..\Common\Minimal\crflash.c
F21=0 c 1 ..\Common\Minimal\crhook.c
F22=0 c 1 ..\Common\Minimal\death.c
F23=0 c 1 ..\Common\Minimal\dynamic.c
F24=0 c 1 ..\Common\Minimal\flash.c
F25=0 c 1 ..\Common\Minimal\flop.c
F26=0 c 1 ..\Common\Minimal\GenQTest.c
F27=0 c 1 ..\Common\Minimal\integer.c
F28=0 c 1 ..\Common\Minimal\PollQ.c
F29=0 c 1 ..\Common\Minimal\QPeek.c
F30=0 c 1 ..\Common\Minimal\semtest.c
F31=0 c 1 ..\..\Source\portable\MemMang\heap_3.c
F32=0 c 1 ..\..\Source\portable\MemMang\heap_1.c
F33=0 c 1 ..\..\Source\portable\MemMang\heap_2.c
F34=0 c 1 SRC\serial\serial.c
F35=0 c 1 SRC\watchdog\watchdog.c
F36=0 c 1 SRC\utility\taskutility.c
[BUILDMODE-MONDEB_INTERNAL]
kernel=1
[RUNSET-MONDEB_INTERNAL]
CONVERT=1
CONVERTKIND=0
[DebState-MONDEB_INTERNAL]
SupCount=2
Supfile-0=MONDEB_INTERNAL\Mondeb_57K6_com1.sup
Supfile-1=MONDEB_INTERNAL\Mondeb_57K6_com2.sup
Current=Mondeb_57K6_com1.sup
AliasFile=
CPURunMode=
[AsmBefore]
Count=0
[AsmAfter]
Count=0
[CcBefore]
Count=0
[CcAfter]
Count=0
[LnkBefore]
Count=0
[LnkAfter]
Count=0
[LibBefore]
Count=0
[LibAfter]
Count=0
[CnvBefore]
Count=0
[CnvAfter]
Count=0
[ConfigBefore]
Count=0
[ConfigAfter]
Count=0

View File

@ -0,0 +1,23 @@
[CPUTYPE]
CpuSerise=911
[PrjFile]
Count=1
FILE-0=91467d_FreeRTOS.prj
ActivePrj=91467d_FreeRTOS.prj
[SubPrj-91467d_FreeRTOS.prj]
Count=0
[DebState]
AutoSave=1
Exec=0
AutoLoad=1
[DirInfo]
WSP=E:\FreeRTOS\FR\91467d_FreeRTOS\91467d_FreeRTOS\Demo\MB91460_Softune\
[EditState]
STATE-1=SRC\MAIN.c:1
Count=1

View File

@ -0,0 +1,53 @@
# THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
# MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
# ELIGIBILITY FOR ANY PURPOSES. */
# (C) Fujitsu Microelectronics Europe GmbH */
# Environment and memory manioulation after program upload
# Settings
SET VARIABLE abortIRQ0 = 0x1
SET VARIABLE intVectorMonitorDebugger = 0x10FFC00
# Disable all Interrupts
SET REGISTER I = 0x0
# Set Table Base Register
SET REGISTER TBR = intVectorMonitorDebugger
# Run to smd_tbr and save TBR of Application
go ,Start91460\smd_tbr
SET VARIABLE intVectorApllication = %r0
SET REGISTER TBR = intVectorApllication
# Copy required vector table entries of monitor debugger in vector table of application
MOVE intVectorMonitorDebugger + 0x3C0..intVectorMonitorDebugger + 0x3FF, intVectorApllication + 0x3C0
# Prepare Entries for INT0
IF %abortIRQ0 == 1
MOVE intVectorMonitorDebugger + 0x3C0..intVectorMonitorDebugger + 0x3C3, intVectorApllication + 0x3BC
SET MEMORY/BYTE 0x32 = 0x3
SET MEMORY/BYTE 0x30 = 0x0
SET MEMORY/BYTE 0x31 = 0x1
SET MEMORY/BYTE 0x440 = 0x10
SET REGISTER ILM = 0x1E
ENDIF
# Setting indicates software reset, which leads to that the clock settings are not changed.
SET REGISTER R4 = 0x8
# Set TBR to Vector table of application
SET REGISTER TBR = intVectorApllication
# Run to smd_c and let the CS enabled
go noClockStartup,Start91460\smd_cs
set register r2 = %r2|0x3
# Run to main()
go ,main

View File

@ -0,0 +1,56 @@
# THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
# MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
# ELIGIBILITY FOR ANY PURPOSES. */
# (C) Fujitsu Microelectronics Europe GmbH */
# Environment and memory manioulation after program upload
# Settings
SET VARIABLE abortIRQ0 = 0x1
SET VARIABLE intVectorMonitorDebugger = 0xFFC00
# Disable all Interrupts
SET REGISTER I = 0x0
# Set Table Base Register
SET REGISTER TBR = intVectorMonitorDebugger
# Run to smd_tbr and save TBR of Application
go ,Start91460\smd_tbr
SET VARIABLE intVectorApllication = %r0
SET REGISTER TBR = intVectorApllication
# Copy required vector table entries of monitor debugger in vector table of application
MOVE intVectorMonitorDebugger + 0x3C0..intVectorMonitorDebugger + 0x3FF, intVectorApllication + 0x3C0
# Prepare Entries for INT0
IF %abortIRQ0 == 0x1
MOVE intVectorMonitorDebugger + 0x3C0..intVectorMonitorDebugger + 0x3C3, intVectorApllication + 0x3BC
SET MEMORY/BYTE 0x32 = 0x3
SET MEMORY/BYTE 0x30 = 0x0
SET MEMORY/BYTE 0x31 = 0x1
SET MEMORY/BYTE 0x440 = 0x10
SET REGISTER ILM = 0x1E
ENDIF
# Setting indicates software reset, which leads to that the clock settings are not changed.
SET REGISTER R4 = 0x8
# Set TBR to Vector table of application
SET REGISTER TBR = intVectorApllication
# Run to smd_c and let the CS enabled
go noClockStartup,Start91460\smd_cs
set register r2 = %r2|0x2
# Run to main()
go ,main

View File

@ -0,0 +1,16 @@
# THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU
# MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR
# ELIGIBILITY FOR ANY PURPOSES.
# (C) Fujitsu Microelectronics Europe GmbH
# set_ROMS.prc
# ===========
#
# Procedurefile for the FR-Emulator - Target : MB91F467D.
# Should be executed before loading any target-file into
# the RAM of the emulator (use the debug settings).
# The procedure checks sets the ROM Select Register to allow
# the emulation of the whole ROM Area of the MB91F467D
RESET
SET MEMORY/HALFWORD 0x390 = 0xFF00

View File

@ -0,0 +1,15 @@
# THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU
# MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR
# ELIGIBILITY FOR ANY PURPOSES.
# (C) Fujitsu Microelectronics Europe GmbH
# set_ROMS.prc
# ===========
#
# Procedurefile for the FR-Emulator - Target : MB91F467D.
# Should be executed before loading any target-file into
# the RAM of the emulator (use the debug settings).
# The procedure checks sets the ROM Select Register to allow
# the emulation of the whole ROM Area of the MB91F467D
SET MEMORY/HALFWORD 0x390 = 0xFF00

View File

@ -0,0 +1,13 @@
# THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
# MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
# ELIGIBILITY FOR ANY PURPOSES. */
# (C) Fujitsu Microelectronics Europe GmbH */
# Environment and memory manioulation after program upload
print "patch reset vector to \"__start\"\n";
SET MEMORY/WORD 0xFFFFC=__start

View File

@ -0,0 +1,81 @@
/*
FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
FreeRTOS.org is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
FreeRTOS.org is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with FreeRTOS.org; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
A special exception to the GPL can be applied should you wish to distribute
a combined work that includes FreeRTOS.org, without being obliged to provide
the source code for any proprietary components. See the licensing section
of http://www.FreeRTOS.org for full details of how and when the exception
can be applied.
***************************************************************************
See http://www.FreeRTOS.org for documentation, latest information, license
and contact details. Please ensure to read the configuration and relevant
port sections of the online documentation.
Also see http://www.SafeRTOS.com for an IEC 61508 compliant version along
with commercial development and support options.
***************************************************************************
*/
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
/*-----------------------------------------------------------
* Application specific definitions.
*
* These definitions should be adjusted for your particular hardware and
* application requirements.
*
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
*----------------------------------------------------------*/
#define configUSE_PREEMPTION 1
#define configUSE_IDLE_HOOK 1
#define configUSE_TICK_HOOK 1
#define configTICK_RATE_HZ ( ( portTickType ) 100 )
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 64000000 ) /* Clock setup from start91460.asm in the demo application. */
#define configPER_CLOCK_HZ ( ( unsigned portLONG ) 16000000 ) /* Clock setup from start91460.asm in the demo application. */
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 6 )
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 70 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 32768 - 4192 ) )
#define configMAX_TASK_NAME_LEN ( 20 )
#define configUSE_TRACE_FACILITY 1
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 1
#define configUSE_MUTEXES 1
/* Co-routine definitions. */
#define configUSE_CO_ROUTINES 1
#define configMAX_CO_ROUTINE_PRIORITIES ( 4 )
/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */
#define INCLUDE_vTaskPrioritySet 1
#define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskCleanUpResources 0
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
#define INCLUDE_vResumeFromISR 1
#endif /* FREERTOS_CONFIG_H */

View File

@ -0,0 +1,372 @@
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES. */
/* (C) Fujitsu Microelectronics Europe GmbH */
/*------------------------------------------------------------------------
MAIN.C
- description
- See README.TXT for project description and disclaimer.
-------------------------------------------------------------------------*/
/*************************@INCLUDE_START************************/
#include "mb91467d.h"
#include "vectors.h"
#include "FreeRTOS.h"
#include "task.h"
#include "watchdog.h"
/* Demo task priorities. */
#define WTC_TASK_PRIORITY ( tskIDLE_PRIORITY + 5 )
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 )
#define TASK_UTILITY_PRIORITY ( tskIDLE_PRIORITY + 3 )
#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 3 )
#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainQUEUE_BLOCK_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainDEATH_PRIORITY ( tskIDLE_PRIORITY + 1 )
#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )
#define mainGENERIC_QUEUE_PRIORITY ( tskIDLE_PRIORITY )
/* Baud rate used by the COM test tasks. */
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 19200 )
/* The frequency at which the 'Check' tasks executes. See the comments at the
top of the page. When the system is operating error free the 'Check' task
toggles an LED every three seconds. If an error is discovered in any task the
rate is increased to 500 milliseconds. [in this case the '*' characters on the
LCD represent LED's]*/
#define mainNO_ERROR_CHECK_DELAY ( ( portTickType ) 3000 / portTICK_RATE_MS )
#define mainERROR_CHECK_DELAY ( ( portTickType ) 500 / portTICK_RATE_MS )
/*---------------------------------------------------------------------------*/
#define ledNUMBER_OF_LEDS 8
#define mainCOM_TEST_LED 0x05
#define mainCHECK_TEST_LED 0x07
/*---------------------------------------------------------------------------*/
/*
* The function that implements the Check task. See the comments at the head
* of the page for implementation details.
*/
static void vErrorChecks( void *pvParameters );
/*
* Called by the Check task. Returns pdPASS if all the other tasks are found
* to be operating without error - otherwise returns pdFAIL.
*/
static portSHORT prvCheckOtherTasksAreStillRunning( void );
/*---------------------------------------------------------------------------*/
static unsigned portSHORT sState[ledNUMBER_OF_LEDS] = {pdFALSE};
static unsigned portSHORT sState1[ledNUMBER_OF_LEDS] = {pdFALSE};
/*---------------------------------------------------------------------------
* The below callback function is called from Tick ISR if configUSE_TICK_HOOK
* is configured as 1. This function needs to be uncommented if the crhook.c
* is not used, since the crhook.c has also defined vApplicationTickHook().
*---------------------------------------------------------------------------*/
/*void vApplicationTickHook ( void )
{
#if WATCHDOG == WTC_IN_TICK
Kick_Watchdog();
#endif
}*/
/*---------------------------------------------------------------------------
* The below callback function is called from Delayed ISR if configUSE_IDLE_HOOK
* is configured as 1.
*---------------------------------------------------------------------------*/
void vApplicationIdleHook ( void )
{
#if WATCHDOG == WTC_IN_IDLE
Kick_Watchdog();
#endif
vCoRoutineSchedule();
}
/*---------------------------------------------------------------------------
* Initialize Port 00
*---------------------------------------------------------------------------*/
static void prvInitPort( void )
{
DDR16=0xFF;
DDR25=0xFF;
}
/*---------------------------------------------------------------------------
* Setup the hardware
*---------------------------------------------------------------------------*/
static void prvSetupHardware( void )
{
prvInitPort();
#if WATCHDOG != WTC_NONE
InitWatchdog();
#endif
}
/*********************@FUNCTION_HEADER_START*********************
*@FUNCTION NAME: main() *
* *
*@DESCRIPTION: The main function controls the program flow *
* *
*@PARAMETER: none *
* *
*@RETURN: none *
* *
***********************@FUNCTION_HEADER_END*********************/
void main(void)
{
__set_il(31); /* allow all levels */
InitIrqLevels(); /* init interrupts */
prvSetupHardware();
#if WATCHDOG == WTC_IN_TASK
vStartWatchdogTask( WTC_TASK_PRIORITY );
#endif
/* Start the standard demo application tasks. */
vStartLEDFlashTasks( mainLED_TASK_PRIORITY );
vStartIntegerMathTasks( tskIDLE_PRIORITY );
vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainCOM_TEST_BAUD_RATE, mainCOM_TEST_LED - 1 );
vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );
vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );
vStartBlockingQueueTasks ( mainQUEUE_BLOCK_PRIORITY );
vStartDynamicPriorityTasks();
vStartMathTasks( tskIDLE_PRIORITY );
vStartFlashCoRoutines(ledNUMBER_OF_LEDS);
vStartHookCoRoutines();
/* Start the 'Check' task which is defined in this file. */
xTaskCreate( vErrorChecks, ( signed portCHAR * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
vStartGenericQueueTasks( mainGENERIC_QUEUE_PRIORITY );
vStartQueuePeekTasks();
vTraceListTasks( TASK_UTILITY_PRIORITY );
vCreateBlockTimeTasks();
vCreateSuicidalTasks( mainDEATH_PRIORITY );
vTaskStartScheduler( );
/* Should not reach here */
while (1)
{
__asm(" NOP "); //
}
}
/*-----------------------------------------------------------*/
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
{
if (uxLED < ledNUMBER_OF_LEDS)
{
vTaskSuspendAll();
/* Toggle the state of the single genuine on board LED. */
if( sState[uxLED])
{
PDR25 |= (1 << uxLED);
}
else
{
PDR25 &= ~(1 << uxLED);
}
sState[uxLED] = !(sState[uxLED]);
xTaskResumeAll();
}
else
{
uxLED -= ledNUMBER_OF_LEDS;
vTaskSuspendAll();
/* Toggle the state of the single genuine on board LED. */
if( sState1[uxLED])
{
PDR16 |= (1 << uxLED);
}
else
{
PDR16 &= ~(1 << uxLED);
}
sState1[uxLED] = !(sState1[uxLED]);
xTaskResumeAll();
}
}
/*-----------------------------------------------------------*/
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
{
/* Set or clear the output [in this case show or hide the '*' character. */
if( uxLED < ledNUMBER_OF_LEDS )
{
vTaskSuspendAll();
{
if( xValue )
{
PDR25 |= (1 << uxLED);
sState[uxLED] = 1;
}
else
{
PDR25 &= ~(1 << uxLED);
sState[uxLED] = 0;
}
}
xTaskResumeAll();
}
else
{
uxLED -= ledNUMBER_OF_LEDS;
vTaskSuspendAll();
{
if( xValue )
{
PDR16 |= (1 << uxLED);
sState1[uxLED] = 1;
}
else
{
PDR16 &= ~(1 << uxLED);
sState1[uxLED] = 0;
}
}
xTaskResumeAll();
}
}
/*-----------------------------------------------------------*/
static void vErrorChecks( void *pvParameters )
{
static volatile unsigned portLONG ulDummyVariable = 3UL;
portTickType xDelayPeriod = mainNO_ERROR_CHECK_DELAY;
/* Cycle for ever, delaying then checking all the other tasks are still
operating without error. */
for( ;; )
{
/* Wait until it is time to check again. The time we wait here depends
on whether an error has been detected or not. When an error is
detected the time is shortened resulting in a faster LED flash rate. */
vTaskDelay( xDelayPeriod );
/* Perform a bit of 32bit maths to ensure the registers used by the
integer tasks get some exercise outside of the integer tasks
themselves. The result here is not important we are just deliberately
changing registers used by other tasks to ensure that their context
switch is operating as required. - see the demo application
documentation for more info. */
ulDummyVariable *= 3UL;
/* See if the other tasks are all ok. */
if( prvCheckOtherTasksAreStillRunning() != pdPASS )
{
/* An error occurred in one of the tasks so shorten the delay
period - which has the effect of increasing the frequency of the
LED toggle. */
xDelayPeriod = mainERROR_CHECK_DELAY;
}
/* Flash! */
vParTestToggleLED(mainCHECK_TEST_LED);
}
}
/*-----------------------------------------------------------*/
static portSHORT prvCheckOtherTasksAreStillRunning( void )
{
static portSHORT sNoErrorFound = pdTRUE;
/* The demo tasks maintain a count that increments every cycle of the task
provided that the task has never encountered an error. This function
checks the counts maintained by the tasks to ensure they are still being
incremented. A count remaining at the same value between calls therefore
indicates that an error has been detected. Only tasks that do not flash
an LED are checked. */
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if( xArePollingQueuesStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if( xAreComTestTasksStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if( xAreBlockingQueuesStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if( xAreMathsTaskStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if( xAreFlashCoRoutinesStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if( xAreHookCoRoutinesStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if( xIsCreateTaskStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if ( xAreGenericQueueTasksStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
if ( xAreQueuePeekTasksStillRunning() != pdTRUE )
{
sNoErrorFound = pdFALSE;
}
return sNoErrorFound;
}
/********************@FUNCTION_DECLARATION_END******************/

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES. */
/* (C) Fujitsu Microelectronics Europe GmbH */
/*---------------------------------------------------------------------------
mb91467d.asm
1.00 UMa Initial Version
-----------------------------------------------------------------------------*/
#define __IO_DEFINE
#include "mb91467d.h"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,207 @@
/*
FreeRTOS.org V4.7.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
FreeRTOS.org is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
FreeRTOS.org is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with FreeRTOS.org; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
A special exception to the GPL can be applied should you wish to distribute
a combined work that includes FreeRTOS.org, without being obliged to provide
the source code for any proprietary components. See the licensing section
of http://www.FreeRTOS.org for full details of how and when the exception
can be applied.
***************************************************************************
See http://www.FreeRTOS.org for documentation, latest information, license
and contact details. Please ensure to read the configuration and relevant
port sections of the online documentation.
Also see http://www.SafeRTOS.com a version that has been certified for use
in safety critical systems, plus commercial licensing, development and
support options.
***************************************************************************
*/
/* BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER.
*
* This file only supports UART 2
*/
/* Standard includes. */
#include <stdlib.h>
/* Scheduler includes. */
#include "FreeRTOS.h"
#include "queue.h"
#include "task.h"
/* Demo application includes. */
#include "serial.h"
/* The queue used to hold received characters. */
static xQueueHandle xRxedChars;
/* The queue used to hold characters waiting transmission. */
static xQueueHandle xCharsForTx;
static volatile portSHORT sTHREEmpty;
/*-----------------------------------------------------------*/
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
{
//unsigned portLONG ulBaudRateCount;
portENTER_CRITICAL();
{
/* Create the queues used by the com test task. */
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
xCharsForTx = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
/* Initialize UART asynchronous mode */
BGR02 = configPER_CLOCK_HZ / ulWantedBaud;
SCR02 = 0x17; /* 8N1 */
SMR02 = 0x0d; /* enable SOT3, Reset, normal mode */
SSR02 = 0x02; /* LSB first, enable receive interrupts */
PFR20_D0 = 1; // enable UART
PFR20_D1 = 1; // enable UART
EPFR20_D1 = 0; // enable UART
}
portEXIT_CRITICAL();
/* Unlike other ports, this serial code does not allow for more than one
com port. We therefore don't return a pointer to a port structure and can
instead just return NULL. */
return NULL;
}
/*-----------------------------------------------------------*/
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
{
/* Get the next character from the buffer. Return false if no characters
are available, or arrive before xBlockTime expires. */
if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )
{
return pdTRUE;
}
else
{
return pdFALSE;
}
}
/*-----------------------------------------------------------*/
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
{
signed portBASE_TYPE xReturn;
/* Transmit a character. */
portENTER_CRITICAL();
{
if( sTHREEmpty == pdTRUE )
{
/* If sTHREEmpty is true then the UART Tx ISR has indicated that
there are no characters queued to be transmitted - so we can
write the character directly to the shift Tx register. */
sTHREEmpty = pdFALSE;
TDR02 = cOutChar;
xReturn = pdPASS;
}
else
{
/* sTHREEmpty is false, so there are still characters waiting to be
transmitted. We have to queue this character so it gets
transmitted in turn. */
/* Return false if after the block time there is no room on the Tx
queue. It is ok to block inside a critical section as each task
maintains it's own critical section status. */
if (xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) == pdTRUE)
{
xReturn = pdPASS;
}
else
{
xReturn = pdFAIL;
}
}
if (pdPASS == xReturn)
{
/* Turn on the Tx interrupt so the ISR will remove the character from the
queue and send it. This does not need to be in a critical section as
if the interrupt has already removed the character the next interrupt
will simply turn off the Tx interrupt again. */
SSR02_TIE = 1;
}
}
portEXIT_CRITICAL();
return pdPASS;
}
/*-----------------------------------------------------------*/
/*
* UART RX interrupt service routine.
*/
__interrupt void UART2_RxISR (void)
{
signed portCHAR cChar;
/* Get the character from the UART and post it on the queue of Rxed
characters. */
cChar = RDR02;
if( xQueueSendFromISR( xRxedChars, &cChar, pdFALSE ) )
{
/*If the post causes a task to wake force a context switch
as the woken task may have a higher priority than the task we have
interrupted. */
portYIELDFromISR();
}
}
/*-----------------------------------------------------------*/
/*
* UART Tx interrupt service routine.
*/
__interrupt void UART2_TxISR (void)
{
signed portCHAR cChar;
signed portBASE_TYPE xTaskWoken;
/* The previous character has been transmitted. See if there are any
further characters waiting transmission. */
if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xTaskWoken ) == pdTRUE )
{
/* There was another character queued - transmit it now. */
TDR02 = cChar;
}
else
{
/* There were no other characters to transmit. */
sTHREEmpty = pdTRUE;
/* Disable transmit interrupts */
SSR02_TIE = 0;
}
}

View File

@ -0,0 +1,189 @@
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES. */
/* (C) Fujitsu Microelectronics Europe GmbH */
/*------------------------------------------------------------------------
taskutility.C
-
-------------------------------------------------------------------------*/
/*************************@INCLUDE_START************************/
#include "mb91467d.h"
#include "vectors.h"
#include "FreeRTOS.h"
#include "task.h"
static void vUART5Task( void *pvParameters );
/**************************@INCLUDE_END*************************/
/*********************@GLOBAL_VARIABLES_START*******************/
const char ASCII[] = "0123456789ABCDEF";
xTaskHandle UART_TaskHandle;
void InitUart5(void)
{
//Initialize UART asynchronous mode
BGR05 = 1666; // 9600 Baud @ 16MHz
SCR05 = 0x17; // 7N2
SMR05 = 0x0d; // enable SOT3, Reset, normal mode
SSR05 = 0x00; // LSB first
PFR19_D4 = 1; // enable UART
PFR19_D5 = 1; // enable UART
//EPFR19 = 0x00; // enable UART
SSR05_RIE = 1;
}
void Putch5(char ch) /* sends a char */
{
while (SSR05_TDRE == 0); /* wait for transmit buffer empty */
TDR05 = ch; /* put ch into buffer */
}
char Getch5(void) /* waits for and returns incomming char */
{
volatile unsigned ch;
while(SSR05_RDRF == 0); /* wait for data received */
if (SSR05_ORE) /* overrun error */
{
ch = RDR05; /* reset error flags */
return (char)(-1);
}
else
return (RDR05); /* return char */
}
void Puts5(const char *Name5) /* Puts a String to UART */
{
volatile portSHORT i,len;
len = strlen(Name5);
for (i=0; i<strlen(Name5); i++) /* go through string */
{
if (Name5[i] == 10)
Putch5(13);
Putch5(Name5[i]); /* send it out */
}
}
void Puthex5(unsigned long n, unsigned char digits)
{
unsigned portCHAR digit=0,div=0,i;
div=(4*(digits-1)); /* init shift divisor */
for (i=0;i<digits;i++)
{
digit = ((n >> div)&0xF); /* get hex-digit value */
Putch5(digit + ((digit < 0xA) ? '0' : 'A' - 0xA));
div-=4; /* next digit shift */
}
}
void Putdec5(unsigned long x, int digits)
{
portSHORT i;
portCHAR buf[10],sign=1;
if (digits < 0) { /* should be print of zero? */
digits *= (-1);
sign =1;
}
buf[digits]='\0'; /* end sign of string */
for (i=digits; i>0; i--) {
buf[i-1] = ASCII[x % 10];
x = x/10;
}
if ( sign )
{
for (i=0; buf[i]=='0'; i++) { /* no print of zero */
if ( i<digits-1)
buf[i] = ' ';
}
}
Puts5(buf); /* send string */
}
void vTraceListTasks( unsigned portBASE_TYPE uxPriority )
{
portENTER_CRITICAL();
InitUart5();
portENTER_CRITICAL();
xTaskCreate( vUART5Task , ( signed portCHAR * ) "UART4", ( unsigned portSHORT ) 2048, ( void * ) NULL, uxPriority, &UART_TaskHandle );
}
static void vUART5Task( void *pvParameters )
{
portCHAR tasklist_buff[512], trace_buff[512];
unsigned portLONG trace_len, j;
unsigned portCHAR ch;
Puts5("\n -------------MB91467D FreeRTOS DEMO Task List and Trace Utility----------- \n");
for(;;)
{
Puts5("\n\rPress any of the following keys for the corresponding functionality: ");
Puts5("\n\r1: To call vTaskList() and display current task status ");
Puts5("\n\r2: To call vTaskStartTrace() and to display trace results once the trace ends");
SSR05_RIE=1;
vTaskSuspend(NULL);
ch=Getch5();
switch ( ch )
{
case '1':
vTaskList( ( signed char * ) tasklist_buff );
Puts5("\n\rThe current task list is as follows....");
Puts5("\n\r----------------------------------------------");
Puts5("\n\rName State Priority Stack Number");
Puts5("\n\r----------------------------------------------");
Puts5(tasklist_buff);
Puts5("\r----------------------------------------------");
break;
case '2':
vTaskStartTrace(( signed char * ) trace_buff, 512);
Puts5("\n\rThe trace started!!");
vTaskDelay( ( portTickType ) 450);
trace_len = ulTaskEndTrace();
Puts5("\n\rThe trace ended!!");
Puts5("\n\rThe trace is as follows....");
Puts5("\n\r--------------------------------------------------------");
Puts5("\n\r Tick | Task Number | Tick | Task Number |");
Puts5("\n\r--------------------------------------------------------\n\r");
for( j = 0 ; j < trace_len ; j++ )
{
Puthex5(trace_buff[j],2);
if(j%4==3) Puts5(" | ");
if(j%16==15) Puts5("\n");
}
Puts5("\r--------------------------------------------------------");
break;
default:
break;
}
Puts5("\n");
}
}
__interrupt void UART5_RxISR ( void )
{
SSR05_RIE=0;
vTaskResume( UART_TaskHandle );
}

View File

@ -0,0 +1,352 @@
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES. */
/* (C) Fujitsu Microelectronics Europe GmbH */
/*------------------------------------------------------------------------
VECTORS.C
- Interrupt level (priority) setting
- Interrupt vector definition
31.04.05 1.00 UMa Initial Version
08.11.05 1.01 MSt SWB Mondeb switch for ICR00 Register added
27.02.06 1.02 UMa added comment in DefaultIRQHandler
17.03.06 1.03 UMa comment out ICR01
28.07.06 1.04 UMa changed comment
06.10.06 1.05 UMa changed DefaultIRQHandler
-------------------------------------------------------------------------*/
#include "mb91467d.h"
#include "watchdog.h"
/*------------------------------------------------------------------------
InitIrqLevels()
This function pre-sets all interrupt control registers. It can be used
to set all interrupt priorities in static applications. If this file
contains assignments to dedicated resources, verify that the
appropriate controller is used. Not all devices of the MB91460 Series
offer all recources.
NOTE: value 31 disables the interrupt and value 16 sets highest priority.
-------------------------------------------------------------------------*/
void InitIrqLevels(void)
{
/* ICRxx */
/* Softune Workbench Monitor Debugger is using ext int0 for abort function */
/* ICR00 = 31; *//* External Interrupt 0 */
/* External Interrupt 1 */
ICR01 = 31; /* External Interrupt 2 */
/* External Interrupt 3 */
ICR02 = 31; /* External Interrupt 4 */
/* External Interrupt 5 */
ICR03 = 31; /* External Interrupt 6 */
/* External Interrupt 7 */
ICR04 = 31; /* External Interrupt 8 */
/* External Interrupt 9 */
ICR05 = 31; /* External Interrupt 10 */
/* External Interrupt 11 */
ICR06 = 31; /* External Interrupt 12 */
/* External Interrupt 13 */
ICR07 = 31; /* External Interrupt 14 */
/* External Interrupt 15 */
ICR08 = 23; /* Reload Timer 0 */
/* Reload Timer 1 */
ICR09 = 31; /* Reload Timer 2 */
/* Reload Timer 3 */
ICR10 = 31; /* Reload Timer 4 */
/* Reload Timer 5 */
ICR11 = 31; /* Reload Timer 6 */
/* Reload Timer 7 */
ICR12 = 31; /* Free Run Timer 0 */
/* Free Run Timer 1 */
ICR13 = 31; /* Free Run Timer 2 */
/* Free Run Timer 3 */
ICR14 = 31; /* Free Run Timer 4 */
/* Free Run Timer 5 */
ICR15 = 31; /* Free Run Timer 6 */
/* Free Run Timer 7 */
ICR16 = 31; /* CAN 0 */
/* CAN 1 */
ICR17 = 31; /* CAN 2 */
/* CAN 3 */
ICR18 = 31; /* CAN 4 */
/* CAN 5 */
ICR19 = 31; /* USART (LIN) 0 RX */
/* USART (LIN) 0 TX */
ICR20 = 31; /* USART (LIN) 1 RX */
/* USART (LIN) 1 TX */
ICR21 = 21; /* USART (LIN) 2 RX */
/* USART (LIN) 2 TX */
ICR22 = 31; /* USART (LIN) 3 RX */
/* USART (LIN) 3 TX */
ICR23 = 23; /* System Reserved */
/* Delayed Interrupt */
ICR24 = 31; /* System Reserved */
/* System Reserved */
ICR25 = 31; /* USART (LIN, FIFO) 4 RX */
/* USART (LIN, FIFO) 4 TX */
ICR26 = 21; /* USART (LIN, FIFO) 5 RX */
/* USART (LIN, FIFO) 5 TX */
ICR27 = 31; /* USART (LIN, FIFO) 6 RX */
/* USART (LIN, FIFO) 6 TX */
ICR28 = 31; /* USART (LIN, FIFO) 7 RX */
/* USART (LIN, FIFO) 7 TX */
ICR29 = 31; /* I2C 0 / I2C 2 */
/* I2C 1 / I2C 3 */
ICR30 = 31; /* USART (LIN, FIFO) 8 RX */
/* USART (LIN, FIFO) 8 TX */
ICR31 = 31; /* USART (LIN, FIFO) 9 RX */
/* USART (LIN, FIFO) 9 TX */
ICR32 = 31; /* USART (LIN, FIFO) 10 RX */
/* USART (LIN, FIFO) 10 TX */
ICR33 = 31; /* USART (LIN, FIFO) 11 RX */
/* USART (LIN, FIFO) 11 TX */
ICR34 = 31; /* USART (LIN, FIFO) 12 RX */
/* USART (LIN, FIFO) 12 TX */
ICR35 = 31; /* USART (LIN, FIFO) 13 RX */
/* USART (LIN, FIFO) 13 TX */
ICR36 = 31; /* USART (LIN, FIFO) 14 RX */
/* USART (LIN, FIFO) 14 TX */
ICR37 = 31; /* USART (LIN, FIFO) 15 RX */
/* USART (LIN, FIFO) 15 TX */
ICR38 = 31; /* Input Capture 0 */
/* Input Capture 1 */
ICR39 = 31; /* Input Capture 2 */
/* Input Capture 3 */
ICR40 = 31; /* Input Capture 4 */
/* Input Capture 5 */
ICR41 = 31; /* Input Capture 6 */
/* Input Capture 7 */
ICR42 = 31; /* Output Compare 0 */
/* Output Compare 1 */
ICR43 = 31; /* Output Compare 2 */
/* Output Compare 3 */
ICR44 = 31; /* Output Compare 4 */
/* Output Compare 5 */
ICR45 = 31; /* Output Compare 6 */
/* Output Compare 7 */
ICR46 = 31; /* Sound Generator */
/* Phase Frequ. Modulator */
ICR47 = 31; /* System Reserved */
/* System Reserved */
ICR48 = 31; /* Prog. Pulse Gen. 0 */
/* Prog. Pulse Gen. 1 */
ICR49 = 31; /* Prog. Pulse Gen. 2 */
/* Prog. Pulse Gen. 3 */
ICR50 = 31; /* Prog. Pulse Gen. 4 */
/* Prog. Pulse Gen. 5 */
ICR51 = 31; /* Prog. Pulse Gen. 6 */
/* Prog. Pulse Gen. 7 */
ICR52 = 31; /* Prog. Pulse Gen. 8 */
/* Prog. Pulse Gen. 9 */
ICR53 = 31; /* Prog. Pulse Gen. 10 */
/* Prog. Pulse Gen. 11 */
ICR54 = 31; /* Prog. Pulse Gen. 12 */
/* Prog. Pulse Gen. 13 */
ICR55 = 31; /* Prog. Pulse Gen. 14 */
/* Prog. Pulse Gen. 15 */
ICR56 = 31; /* Up/Down Counter 0 */
/* Up/Down Counter 1 */
ICR57 = 31; /* Up/Down Counter 2 */
/* Up/Down Counter 3 */
ICR58 = 31; /* Real Time Clock */
/* Calibration Unit */
ICR59 = 31; /* A/D Converter 0 */
/* - */
ICR60 = 31; /* Alarm Comperator 0 */
/* Alarm Comperator 1 */
ICR61 = 31; /* Low Volage Detector */
/* SMC Zero Point 0-5 */
ICR62 = 31; /* Timebase Overflow */
/* PLL Clock Gear */
ICR63 = 31; /* DMA Controller */
/* Main/Sub OSC stability wait */
}
/*------------------------------------------------------------------------
Prototypes
Add your own prototypes here. Each vector definition needs is proto-
type. Either do it here or include a header file containing them.
-------------------------------------------------------------------------*/
__interrupt void DefaultIRQHandler (void);
extern __interrupt void ReloadTimer0_IRQHandler ( void );
extern __interrupt void vPortYield ( void );
extern __interrupt void vPortYieldDelayed (void);
extern __interrupt void UART2_RxISR(void);
extern __interrupt void UART2_TxISR(void);
extern __interrupt void UART5_RxISR(void);
/*------------------------------------------------------------------------
Vector definiton
Use following statements to define vectors. All resource related
vectors are predefined. Remaining software interrupts can be added here
as well.
------------------------------------------------------------------------*/
#pragma intvect 0xBFF8 0 /* (fixed) reset vector */
#pragma intvect 0x06000000 1 /* (fixed) Mode Byte */
#pragma intvect DefaultIRQHandler 15 /* Non Maskable Interrupt */
#pragma intvect DefaultIRQHandler 16 /* External Interrupt 0 */
#pragma intvect DefaultIRQHandler 17 /* External Interrupt 1 */
#pragma intvect DefaultIRQHandler 18 /* External Interrupt 2 */
#pragma intvect DefaultIRQHandler 19 /* External Interrupt 3 */
#pragma intvect DefaultIRQHandler 20 /* External Interrupt 4 */
#pragma intvect DefaultIRQHandler 21 /* External Interrupt 5 */
#pragma intvect DefaultIRQHandler 22 /* External Interrupt 6 */
#pragma intvect DefaultIRQHandler 23 /* External Interrupt 7 */
#pragma intvect DefaultIRQHandler 24 /* External Interrupt 8 */
#pragma intvect DefaultIRQHandler 25 /* External Interrupt 9 */
#pragma intvect DefaultIRQHandler 26 /* External Interrupt 10 */
#pragma intvect DefaultIRQHandler 27 /* External Interrupt 11 */
#pragma intvect DefaultIRQHandler 28 /* External Interrupt 12 */
#pragma intvect DefaultIRQHandler 29 /* External Interrupt 13 */
#pragma intvect DefaultIRQHandler 30 /* External Interrupt 14 */
#pragma intvect DefaultIRQHandler 31 /* External Interrupt 15 */
#pragma intvect ReloadTimer0_IRQHandler 32 /* Reload Timer 0 */
#pragma intvect DefaultIRQHandler 33 /* Reload Timer 1 */
#pragma intvect DefaultIRQHandler 34 /* Reload Timer 2 */
#pragma intvect DefaultIRQHandler 35 /* Reload Timer 3 */
#pragma intvect DefaultIRQHandler 36 /* Reload Timer 4 */
#pragma intvect DefaultIRQHandler 37 /* Reload Timer 5 */
#pragma intvect DefaultIRQHandler 38 /* Reload Timer 6 */
#pragma intvect DefaultIRQHandler 39 /* Reload Timer 7 */
#pragma intvect DefaultIRQHandler 40 /* Free Run Timer 0 */
#pragma intvect DefaultIRQHandler 41 /* Free Run Timer 1 */
#pragma intvect DefaultIRQHandler 42 /* Free Run Timer 2 */
#pragma intvect DefaultIRQHandler 43 /* Free Run Timer 3 */
#pragma intvect DefaultIRQHandler 44 /* Free Run Timer 4 */
#pragma intvect DefaultIRQHandler 45 /* Free Run Timer 5 */
#pragma intvect DefaultIRQHandler 46 /* Free Run Timer 6 */
#pragma intvect DefaultIRQHandler 47 /* Free Run Timer 7 */
#pragma intvect DefaultIRQHandler 48 /* CAN 0 */
#pragma intvect DefaultIRQHandler 49 /* CAN 1 */
#pragma intvect DefaultIRQHandler 50 /* CAN 2 */
#pragma intvect DefaultIRQHandler 51 /* CAN 3 */
#pragma intvect DefaultIRQHandler 52 /* CAN 4 */
#pragma intvect DefaultIRQHandler 53 /* CAN 5 */
#pragma intvect DefaultIRQHandler 54 /* USART (LIN) 0 RX */
#pragma intvect DefaultIRQHandler 55 /* USART (LIN) 0 TX */
#pragma intvect DefaultIRQHandler 56 /* USART (LIN) 1 RX */
#pragma intvect DefaultIRQHandler 57 /* USART (LIN) 1 TX */
#pragma intvect UART2_RxISR 58 /* USART (LIN) 2 RX */
#pragma intvect UART2_TxISR 59 /* USART (LIN) 2 TX */
#pragma intvect DefaultIRQHandler 60 /* USART (LIN) 3 RX */
#pragma intvect DefaultIRQHandler 61 /* USART (LIN) 3 TX */
#pragma intvect DefaultIRQHandler 62 /* System Reserved */
#pragma intvect vPortYieldDelayed 63 /* Delayed Interrupt */
#pragma intvect vPortYield 64 /* INT 64 */
#pragma intvect DefaultIRQHandler 65 /* System Reserved */
#pragma intvect DefaultIRQHandler 66 /* USART (LIN, FIFO) 4 RX */
#pragma intvect DefaultIRQHandler 67 /* USART (LIN, FIFO) 4 TX */
#pragma intvect UART5_RxISR 68 /* USART (LIN, FIFO) 5 RX */
#pragma intvect DefaultIRQHandler 69 /* USART (LIN, FIFO) 5 TX */
#pragma intvect DefaultIRQHandler 70 /* USART (LIN, FIFO) 6 RX */
#pragma intvect DefaultIRQHandler 71 /* USART (LIN, FIFO) 6 TX */
#pragma intvect DefaultIRQHandler 72 /* USART (LIN, FIFO) 7 RX */
#pragma intvect DefaultIRQHandler 73 /* USART (LIN, FIFO) 7 TX */
#pragma intvect DefaultIRQHandler 74 /* I2C 0 / I2C 2 */
#pragma intvect DefaultIRQHandler 75 /* I2C 1 / I2C 3 */
#pragma intvect DefaultIRQHandler 76 /* USART (LIN, FIFO) 8 RX */
#pragma intvect DefaultIRQHandler 77 /* USART (LIN, FIFO) 8 TX */
#pragma intvect DefaultIRQHandler 78 /* USART (LIN, FIFO) 9 RX */
#pragma intvect DefaultIRQHandler 79 /* USART (LIN, FIFO) 9 TX */
#pragma intvect DefaultIRQHandler 80 /* USART (LIN, FIFO) 10 RX */
#pragma intvect DefaultIRQHandler 81 /* USART (LIN, FIFO) 10 TX */
#pragma intvect DefaultIRQHandler 82 /* USART (LIN, FIFO) 11 RX */
#pragma intvect DefaultIRQHandler 83 /* USART (LIN, FIFO) 11 TX */
#pragma intvect DefaultIRQHandler 84 /* USART (LIN, FIFO) 12 RX */
#pragma intvect DefaultIRQHandler 85 /* USART (LIN, FIFO) 12 TX */
#pragma intvect DefaultIRQHandler 86 /* USART (LIN, FIFO) 13 RX */
#pragma intvect DefaultIRQHandler 87 /* USART (LIN, FIFO) 13 TX */
#pragma intvect DefaultIRQHandler 88 /* USART (LIN, FIFO) 14 RX */
#pragma intvect DefaultIRQHandler 89 /* USART (LIN, FIFO) 14 TX */
#pragma intvect DefaultIRQHandler 90 /* USART (LIN, FIFO) 15 RX */
#pragma intvect DefaultIRQHandler 91 /* USART (LIN, FIFO) 15 TX */
#pragma intvect DefaultIRQHandler 92 /* Input Capture 0 */
#pragma intvect DefaultIRQHandler 93 /* Input Capture 1 */
#pragma intvect DefaultIRQHandler 94 /* Input Capture 2 */
#pragma intvect DefaultIRQHandler 95 /* Input Capture 3 */
#pragma intvect DefaultIRQHandler 96 /* Input Capture 4 */
#pragma intvect DefaultIRQHandler 97 /* Input Capture 5 */
#pragma intvect DefaultIRQHandler 98 /* Input Capture 6 */
#pragma intvect DefaultIRQHandler 99 /* Input Capture 7 */
#pragma intvect DefaultIRQHandler 100 /* Output Compare 0 */
#pragma intvect DefaultIRQHandler 101 /* Output Compare 1 */
#pragma intvect DefaultIRQHandler 102 /* Output Compare 2 */
#pragma intvect DefaultIRQHandler 103 /* Output Compare 3 */
#pragma intvect DefaultIRQHandler 104 /* Output Compare 4 */
#pragma intvect DefaultIRQHandler 105 /* Output Compare 5 */
#pragma intvect DefaultIRQHandler 106 /* Output Compare 6 */
#pragma intvect DefaultIRQHandler 107 /* Output Compare 7 */
#pragma intvect DefaultIRQHandler 108 /* Sound Generator */
#pragma intvect DefaultIRQHandler 109 /* Phase Frequ. Modulator */
#pragma intvect DefaultIRQHandler 110 /* System Reserved */
#pragma intvect DefaultIRQHandler 111 /* System Reserved */
#pragma intvect DefaultIRQHandler 112 /* Prog. Pulse Gen. 0 */
#pragma intvect DefaultIRQHandler 113 /* Prog. Pulse Gen. 1 */
#pragma intvect DefaultIRQHandler 114 /* Prog. Pulse Gen. 2 */
#pragma intvect DefaultIRQHandler 115 /* Prog. Pulse Gen. 3 */
#pragma intvect DefaultIRQHandler 116 /* Prog. Pulse Gen. 4 */
#pragma intvect DefaultIRQHandler 117 /* Prog. Pulse Gen. 5 */
#pragma intvect DefaultIRQHandler 118 /* Prog. Pulse Gen. 6 */
#pragma intvect DefaultIRQHandler 119 /* Prog. Pulse Gen. 7 */
#pragma intvect DefaultIRQHandler 120 /* Prog. Pulse Gen. 8 */
#pragma intvect DefaultIRQHandler 121 /* Prog. Pulse Gen. 9 */
#pragma intvect DefaultIRQHandler 122 /* Prog. Pulse Gen. 10 */
#pragma intvect DefaultIRQHandler 123 /* Prog. Pulse Gen. 11 */
#pragma intvect DefaultIRQHandler 124 /* Prog. Pulse Gen. 12 */
#pragma intvect DefaultIRQHandler 125 /* Prog. Pulse Gen. 13 */
#pragma intvect DefaultIRQHandler 126 /* Prog. Pulse Gen. 14 */
#pragma intvect DefaultIRQHandler 127 /* Prog. Pulse Gen. 15 */
#pragma intvect DefaultIRQHandler 128 /* Up/Down Counter 0 */
#pragma intvect DefaultIRQHandler 129 /* Up/Down Counter 1 */
#pragma intvect DefaultIRQHandler 130 /* Up/Down Counter 2 */
#pragma intvect DefaultIRQHandler 131 /* Up/Down Counter 3 */
#pragma intvect DefaultIRQHandler 132 /* Real Time Clock */
#pragma intvect DefaultIRQHandler 133 /* Calibration Unit */
#pragma intvect DefaultIRQHandler 134 /* A/D Converter 0 */
#pragma intvect DefaultIRQHandler 135 /* - */
#pragma intvect DefaultIRQHandler 136 /* Alarm Comperator 0 */
#pragma intvect DefaultIRQHandler 137 /* Alarm Comperator 1 */
#pragma intvect DefaultIRQHandler 138 /* Low Volage Detector */
#pragma intvect DefaultIRQHandler 139 /* SMC Zero Point 0-5 */
#pragma intvect DefaultIRQHandler 140 /* Timebase Overflow */
#pragma intvect DefaultIRQHandler 141 /* PLL Clock Gear */
#pragma intvect DefaultIRQHandler 142 /* DMA Controller */
#pragma intvect DefaultIRQHandler 143 /* Main/Sub OSC stability wait */
#pragma intvect 0xFFFFFFFF 144 /* Boot Sec. Vector (MB91V460A) */
/*------------------------------------------------------------------------
DefaultIRQHandler()
This function is a placeholder for all vector definitions. Either use
your own placeholder or add necessary code here.
-------------------------------------------------------------------------*/
__interrupt
void DefaultIRQHandler (void)
{
/* RB_SYNC; */ /* Synchronisation with R-Bus */
/* May be required, if there is */
/* no R-Bus access after the */
/* reset of the interrupt flag */
__DI(); /* disable interrupts */
while(1)
Kick_Watchdog(); /* feed hardware watchdog */
/* halt system */
}

View File

@ -0,0 +1,13 @@
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES. */
/* (C) Fujitsu Microelectronics Europe GmbH */
/*----------------------------------------------------------------------------
VECTORS.h
06.10.06 1.00 UMa Initial Version
-----------------------------------------------------------------------------*/
void InitIrqLevels(void);

View File

@ -0,0 +1,59 @@
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES. */
/* (C) Fujitsu Microelectronics Europe GmbH */
/*------------------------------------------------------------------------
watchdog.c
- This file contains the function deefinition for hardware watchdog.
-------------------------------------------------------------------------*/
#include "mb91467d.h"
#include "FreeRTOS.h"
#include "task.h"
#include "watchdog.h"
/*---------------------------------------------------------------------------
* Setup Watchdog
*---------------------------------------------------------------------------*/
#if WATCHDOG != WTC_NONE
void InitWatchdog(void)
{
HWWDE_ED = WTC_PER_2_16; /* Set the watchdog period as 655.36 ms */
}
#endif
/*---------------------------------------------------------------------------
* The below task clears the watchdog and blocks itself for WTC_CLR_PER ticks.
*---------------------------------------------------------------------------*/
#if WATCHDOG == WTC_IN_TASK
static void prvWatchdogTask ( void *pvParameters )
{
const portTickType xFrequency = WTC_CLR_PER;
portTickType xLastWakeTime;
/* Get currrent tick count */
xLastWakeTime = xTaskGetTickCount();
for( ; ; )
{
/* Get currrent tick count */
xLastWakeTime = xTaskGetTickCount();
Kick_Watchdog();
/* Block the task for WTC_CLR_PER ticks (300 ms) at watchdog overflow
period of WTC_PER_2_16 CLKRC cycles (655.36 ms) */
vTaskDelayUntil( &xLastWakeTime, xFrequency );
}
}
#endif
/*---------------------------------------------------------------------------
* The below function creates hardware watchdog task.
*---------------------------------------------------------------------------*/
#if WATCHDOG == WTC_IN_TASK
void vStartWatchdogTask( unsigned portSHORT uxPriority )
{
xTaskCreate( prvWatchdogTask , ( signed portCHAR * ) "KickWTC", portMINIMAL_STACK_SIZE, ( void * ) NULL, uxPriority, ( xTaskHandle * ) NULL );
}
#endif

View File

@ -0,0 +1,46 @@
/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES. */
/* (C) Fujitsu Microelectronics Europe GmbH */
/*------------------------------------------------------------------------
watchdog.h
- This file contains the defines and function declaration for hardware watchdog.
-------------------------------------------------------------------------*/
/*
* Clear watchdog defines
*/
#define WTC_NONE 0 /* Don't initialize and clear watchdog */
#define WTC_IN_TASK 1 /* Clear Watchdog in dedicated task */
#define WTC_IN_TICK 2 /* Clear Watchdog in TICK Hook */
#define WTC_IN_IDLE 3 /* Clear Watchdog in Idle Hook */
#define WATCHDOG WTC_IN_TASK /* Clear Watchdog in vWatchdogTask() */
/*------------------------------------------------------------------------*/
/*
* Watchdog period defines
*/
#define WTC_PER_2_16 0 /* The watchdog period is 2^16 CLKRC cycles */
#define WTC_PER_2_17 1 /* The watchdog period is 2^17 CLKRC cycles */
#define WTC_PER_2_18 2 /* The watchdog period is 2^18 CLKRC cycles */
#define WTC_PER_2_19 3 /* The watchdog period is 2^19 CLKRC cycles */
/*------------------------------------------------------------------------*/
/*
* After every WTC_CLR_PER ticks the watchdog would be cleared in the prvWatchdogTask().
* This period needs to be chosen in accordance with the current CLKRC (100KHz or 2MHz)
* and the above setting WTC_PER_2_XX.
*/
#define WTC_CLR_PER 30 /* The watchdog clear period in RTOS ticks */
/*------------------------------------------------------------------------*/
/*
* Kick_watchdog Macro to clear watchdog
*/
#define Kick_Watchdog() \
{ HWWD = 0x10; \
}
/*------------------------------------------------------------------------*/
/*
* Watchdog function declarations
*/
void InitWatchdog (void);
void vStartWatchdogTask(unsigned portSHORT);

View File

@ -0,0 +1,227 @@
[Information]
DebChangeFlag=0
MCUChangeFlag=0
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=0
Virtual CPU File=wv911e2.dll
Monitor Load=1
Monitor Load Condition=Enable
Mode=FFFF
Monitor Combination Version=10100
Mcu Name=MB91F467D
Monitor Select Count=1
Monitor Connect Condition0=4
Monitor Combination0=8/1/2:RealTimeMemory:,8/9/10:RAM Checker:C:48&1
Core ID=0
ChangeFlag=Disable
[Device]
Communication=RS COM1 115200
ProductID=0
Protocol=3
[Target]
AutoLoad=Enable
Before Batch File=PRC\set_ROMS.prc
After Batch File=PRC\set_RESET.prc
Non AutoMap=Enable
Load DebInfo Only=Disable
Ondemand Load Condition=Disable
[Start]
Batch File=
[Window]
Flag=Enable
AssemblySize=458 4 878 244
AssemblyState=0
AssemblyFGColor=0 0 255
RegisterSize=745 0 891 555
RegisterState=0
MemorySize=569 -3 836 574
MemoryState=0
Assembly Address=H'0000BFF8
Memory Address=H'00000390
Memory Mode=H'00000002
Memory Ascii=H'00000001
Memory SplitRow=0
RMemory Address=H'00000000
RMemory Mode=H'FFFFFFFF
RMemory Ascii=H'00000001
RMemory SplitRow=0
Trace ViewMode=FFFFFFFF
Command Max History=H'00000032
Source Display Mode=Enable
Source Multi Mode=Enable
Source Ask Mode=Enable
Source Active Mode=Enable
Source PC Color=255 255 0
Source Scope Color=255 0 255
Source Back Trace=255 0 255
Register Change Color=255 0 0
Perfomance Mode=H'00000001
Perfomance Scale=1 0 0.000000 0.000000
RMemory Change Color=255 0 0
RMemory Invalid Color=128 128 128
CommandSize=3 299 423 470
CommandState=0
WatchSize=0 0 420 112
WatchState=0
Abs Sort Mode=H'00000001
Register Select0=H'00000000
Register Select1=H'00000001
Register Select2=H'00000002
Register Select3=H'00000003
Register Select4=H'00000004
Register Select5=H'00000005
Register Select6=H'00000006
Register Select7=H'00000007
Register Select8=H'00000008
Register Select9=H'00000009
Register Select10=H'0000000A
Register Select11=H'0000000B
Register Select12=H'0000000C
Register Select13=H'0000000D
Register Select14=H'0000000E
Register Select15=H'0000000F
Register Select16=H'00000010
Register Select17=H'00000011
Register Select18=H'00000012
Register Select19=H'00000013
Register Select20=H'00000014
Register Select21=H'00000015
Register Select22=H'00000016
Register Select23=H'00000017
Register Select24=H'00000018
Register Select25=H'00000019
Register Select26=H'0000001A
Register Select27=H'0000001B
Register Select28=H'0000001C
Register Select29=H'0000001D
Register Select30=H'0000001E
Register Select31=H'0000001F
Register Select32=H'00000020
Register Select33=H'00000021
Register Select34=H'00000022
Register Select35=H'00000027
Layer0=2000,SRC\Start91460.asm
Layer1=1002,
Layer2=1007,
Source0Name=SRC\Start91460.asm
Source0Size=0 0 420 240
Source0State=0
Source0Line=698
Source0Mode=2
SymbolSize=0 0 420 128
SymbolState=0
Memory Line Byte=H'00000000
Memory Change Color=255 0 0
Memory Mark Color0=192 192 192
Memory Mark Color1=192 0 0
Memory Mark Color2=255 255 0
Memory Mark Color3=0 255 0
Memory Mark Color4=0 255 255
Memory Mark Color5=0 128 192
Memory Mark Color6=255 128 64
Watch2Size=0 0 420 112
Watch2State=0
Watch3Size=0 0 420 112
Watch3State=0
[Path Environment]
Flag=Enable
Source=
[Map]
Flag=Enable
[Radix Environment]
Flag=Enable
Mode=10
Source=1
[Watch Environment]
Flag=Enable
Size=0
Mode=0
MBuf=0
Check=1
CSiz=100
[Exec Environment]
Flag=Enable
GoIntMask=0
StepUnit=3
StepIntMask=0
StepIntpCtrl=4
GoTrcCtrl=2
OnTheFlyBreakAdmit=1
[Break Environment]
Flag=Enable
EventCodeMode=0
EventDataMode=0
[Emulation Environment]
Flag=Enable
Verify=0
TRIG Input=0
RunMode=3
ICache Auto Control=0
DefaultBreak=1
TraceLostBreak=0
AlignmentErrorBreak=0
RFCR Auto Control=On
RFCR Execute=6810
RFCR Break=F98
Frequency=64
AutoWait=3
Limit Volt=6.6 2.0
WatchDog=1
Resource=1
EventMode=0
[Monitor Environment]
Flag=Enable
MemoryWindow=0
WatchWindow=0
ObjectWindow=0
ElapseTime=3E8
Unit=1
Mode=0
RealtimeMemoryWindow=0
[Error]
Flag=Enable
GuiErrorOutput=2
CommandErrorOutput=1
BatchErrorOutput=1
ErrorOutputLevel=0
[Color]
Flag=Enable
[Tab Environment]
TabSize=8
[Communication]
Send=4000
Receive=4000
[Trace Environment]
Trace Break=0
Trace Status=0
[CS Memory]
Flag=Disable
Area=0
Write Enable=Disable
[IceMonitor Environment]
[FLASH Environment]
File Specified Area=00000001 00000000 00000000
Environment Area=00000001 00000000 00000000
MCU Number=MB91F464A
EnvSectorInfo1=0 00000000 00000000
EnvSectorInfo2=0 00000000 00000000
EnvSectorInfo3=0 00000000 00000000
EnvSectorInfo4=0 00000000 00000000
EnvSectorInfo5=0 00000000 00000000
EnvSectorInfo6=0 00000000 00000000
EnvSectorInfo7=0 00000000 00000000
EnvSectorInfo8=0 00000000 00000000
EnvSectorSelectMode=0
FileSectorInfo1=0 00000000 00000000
FileSectorInfo2=0 00000000 00000000
FileSectorInfo3=0 00000000 00000000
FileSectorInfo4=0 00000000 00000000
FileSectorInfo5=0 00000000 00000000
FileSectorInfo6=0 00000000 00000000
FileSectorInfo7=0 00000000 00000000
FileSectorInfo8=0 00000000 00000000
FileSectorSelectMode=0

View File

@ -0,0 +1,226 @@
[Information]
DebChangeFlag=0
MCUChangeFlag=0
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=0
Virtual CPU File=wv911e2.dll
Monitor Load=1
Monitor Load Condition=Enable
Mode=FFFF
Monitor Combination Version=10100
Mcu Name=MB91F467D
Monitor Select Count=1
Monitor Connect Condition0=4
Monitor Combination0=8/1/2:RealTimeMemory:,8/9/10:RAM Checker:C:48&1
Core ID=0
[Device]
Communication=LAN emu32_lan
ProductID=0
Protocol=3
[Target]
AutoLoad=Enable
Before Batch File=PRC\set_ROMS.prc
After Batch File=PRC\set_RESET.prc
Non AutoMap=Enable
Load DebInfo Only=Disable
Ondemand Load Condition=Disable
[Start]
Batch File=
[Window]
Flag=Enable
AssemblySize=458 4 878 244
AssemblyState=0
AssemblyFGColor=0 0 255
RegisterSize=745 0 891 555
RegisterState=0
MemorySize=569 -3 836 574
MemoryState=0
Assembly Address=H'0000BFF8
Memory Address=H'00000390
Memory Mode=H'00000002
Memory Ascii=H'00000001
Memory SplitRow=0
RMemory Address=H'00000000
RMemory Mode=H'FFFFFFFF
RMemory Ascii=H'00000001
RMemory SplitRow=0
Trace ViewMode=FFFFFFFF
Command Max History=H'00000032
Source Display Mode=Enable
Source Multi Mode=Enable
Source Ask Mode=Enable
Source Active Mode=Enable
Source PC Color=255 255 0
Source Scope Color=255 0 255
Source Back Trace=255 0 255
Register Change Color=255 0 0
Perfomance Mode=H'00000001
Perfomance Scale=1 0 0.000000 0.000000
RMemory Change Color=255 0 0
RMemory Invalid Color=128 128 128
CommandSize=3 299 423 470
CommandState=0
WatchSize=0 0 420 112
WatchState=0
Abs Sort Mode=H'00000001
Register Select0=H'00000000
Register Select1=H'00000001
Register Select2=H'00000002
Register Select3=H'00000003
Register Select4=H'00000004
Register Select5=H'00000005
Register Select6=H'00000006
Register Select7=H'00000007
Register Select8=H'00000008
Register Select9=H'00000009
Register Select10=H'0000000A
Register Select11=H'0000000B
Register Select12=H'0000000C
Register Select13=H'0000000D
Register Select14=H'0000000E
Register Select15=H'0000000F
Register Select16=H'00000010
Register Select17=H'00000011
Register Select18=H'00000012
Register Select19=H'00000013
Register Select20=H'00000014
Register Select21=H'00000015
Register Select22=H'00000016
Register Select23=H'00000017
Register Select24=H'00000018
Register Select25=H'00000019
Register Select26=H'0000001A
Register Select27=H'0000001B
Register Select28=H'0000001C
Register Select29=H'0000001D
Register Select30=H'0000001E
Register Select31=H'0000001F
Register Select32=H'00000020
Register Select33=H'00000021
Register Select34=H'00000022
Register Select35=H'00000027
Layer0=2000,SRC\Start91460.asm
Layer1=1002,
Layer2=1007,
Source0Name=SRC\Start91460.asm
Source0Size=0 0 420 240
Source0State=0
Source0Line=698
Source0Mode=2
SymbolSize=0 0 420 128
SymbolState=0
Memory Line Byte=H'00000000
Memory Change Color=255 0 0
Memory Mark Color0=192 192 192
Memory Mark Color1=192 0 0
Memory Mark Color2=255 255 0
Memory Mark Color3=0 255 0
Memory Mark Color4=0 255 255
Memory Mark Color5=0 128 192
Memory Mark Color6=255 128 64
Watch2Size=0 0 420 112
Watch2State=0
Watch3Size=0 0 420 112
Watch3State=0
[Path Environment]
Flag=Enable
Source=
[Map]
Flag=Enable
[Radix Environment]
Flag=Enable
Mode=10
Source=1
[Watch Environment]
Flag=Enable
Size=0
Mode=0
MBuf=0
Check=1
CSiz=100
[Exec Environment]
Flag=Enable
GoIntMask=0
StepUnit=3
StepIntMask=0
StepIntpCtrl=4
GoTrcCtrl=2
OnTheFlyBreakAdmit=1
[Break Environment]
Flag=Enable
EventCodeMode=0
EventDataMode=0
[Emulation Environment]
Flag=Enable
Verify=0
TRIG Input=0
RunMode=3
ICache Auto Control=0
DefaultBreak=1
TraceLostBreak=0
AlignmentErrorBreak=0
RFCR Auto Control=On
RFCR Execute=6780
RFCR Break=F98
Frequency=64
AutoWait=3
Limit Volt=6.6 2.0
WatchDog=1
Resource=1
EventMode=0
[Monitor Environment]
Flag=Enable
MemoryWindow=0
WatchWindow=0
ObjectWindow=0
ElapseTime=3E8
Unit=1
Mode=0
RealtimeMemoryWindow=0
[Error]
Flag=Enable
GuiErrorOutput=2
CommandErrorOutput=1
BatchErrorOutput=1
ErrorOutputLevel=0
[Color]
Flag=Enable
[Tab Environment]
TabSize=8
[Communication]
Send=60000
Receive=32000
[Trace Environment]
Trace Break=0
Trace Status=0
[CS Memory]
Flag=Disable
Area=0
Write Enable=Disable
[IceMonitor Environment]
[FLASH Environment]
File Specified Area=00000001 00000000 00000000
Environment Area=00000001 00000000 00000000
MCU Number=MB91F464A
EnvSectorInfo1=0 00000000 00000000
EnvSectorInfo2=0 00000000 00000000
EnvSectorInfo3=0 00000000 00000000
EnvSectorInfo4=0 00000000 00000000
EnvSectorInfo5=0 00000000 00000000
EnvSectorInfo6=0 00000000 00000000
EnvSectorInfo7=0 00000000 00000000
EnvSectorInfo8=0 00000000 00000000
EnvSectorSelectMode=0
FileSectorInfo1=0 00000000 00000000
FileSectorInfo2=0 00000000 00000000
FileSectorInfo3=0 00000000 00000000
FileSectorInfo4=0 00000000 00000000
FileSectorInfo5=0 00000000 00000000
FileSectorInfo6=0 00000000 00000000
FileSectorInfo7=0 00000000 00000000
FileSectorInfo8=0 00000000 00000000
FileSectorSelectMode=0

View File

@ -0,0 +1,327 @@
[Information]
DebChangeFlag=0
MCUChangeFlag=0
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=0
Virtual CPU File=wv911e2.dll
Monitor Load=1
Monitor Load Condition=Enable
Mode=FFFF
Monitor Combination Version=10100
Mcu Name=MB91F467D
Monitor Select Count=1
Monitor Connect Condition0=4
Monitor Combination0=8/1/2:RealTimeMemory:,8/9/10:RAM Checker:C:48&1
Core ID=0
[Device]
Communication=USB
ProductID=2002
Protocol=3
[Target]
AutoLoad=Enable
Before Batch File=PRC\set_ROMS.prc
After Batch File=PRC\set_RESET.prc
Non AutoMap=Enable
Load DebInfo Only=Disable
Ondemand Load Condition=Disable
[Start]
Batch File=
[Window]
Flag=Enable
AssemblySize=0 435 256 580
AssemblyState=2
AssemblyFGColor=0 0 255
RegisterSize=0 0 512 300
RegisterState=0
MemorySize=0 0 512 300
MemoryState=0
Assembly Address=H'0000BFF8
Memory Address=H'00045858
Memory Mode=H'00000003
Memory Ascii=H'00000000
Memory SplitRow=0
RMemory Address=H'00000000
RMemory Mode=H'FFFFFFFF
RMemory Ascii=H'00000001
RMemory SplitRow=0
Trace ViewMode=1
Command Max History=H'00000032
Source Display Mode=Enable
Source Multi Mode=Enable
Source Ask Mode=Enable
Source Active Mode=Enable
Source PC Color=255 255 0
Source Scope Color=255 0 255
Source Back Trace=255 0 255
Register Change Color=255 0 0
Perfomance Mode=H'00000001
Perfomance Scale=1 0 0.000000 0.000000
RMemory Change Color=255 0 0
RMemory Invalid Color=128 128 128
CommandSize=256 0 615 171
CommandState=0
WatchSize=512 0 1024 200
WatchState=0
Abs Sort Mode=H'00000001
Register Select0=H'00000000
Register Select1=H'00000001
Register Select2=H'00000002
Register Select3=H'00000003
Register Select4=H'00000004
Register Select5=H'00000005
Register Select6=H'00000006
Register Select7=H'00000007
Register Select8=H'00000008
Register Select9=H'00000009
Register Select10=H'0000000A
Register Select11=H'0000000B
Register Select12=H'0000000C
Register Select13=H'0000000D
Register Select14=H'0000000E
Register Select15=H'0000000F
Register Select16=H'00000010
Register Select17=H'00000011
Register Select18=H'00000012
Register Select19=H'00000013
Register Select20=H'00000014
Register Select21=H'00000015
Register Select22=H'00000016
Register Select23=H'00000017
Register Select24=H'00000018
Register Select25=H'00000019
Register Select26=H'0000001A
Register Select27=H'0000001B
Register Select28=H'0000001C
Register Select29=H'0000001D
Register Select30=H'0000001E
Register Select31=H'0000001F
Register Select32=H'00000020
Register Select33=H'00000021
Register Select34=H'00000022
Register Select35=H'00000027
SymbolSize=0 0 450 475
SymbolState=0
Memory Line Byte=H'00000000
Memory Change Color=255 0 0
Memory Mark Color0=192 192 192
Memory Mark Color1=192 0 0
Memory Mark Color2=255 255 0
Memory Mark Color3=0 255 0
Memory Mark Color4=0 255 255
Memory Mark Color5=0 128 192
Memory Mark Color6=255 128 64
Watch2Size=0 0 420 112
Watch2State=0
Watch3Size=0 0 420 112
Watch3State=0
TraceSize=492 0 738 145
TraceState=0
Layer0=1004,
Layer1=1005,
Layer2=1006,
Source0Name=SRC\Minimal\blocktim.c
Source0Size=512 400 1024 600
Source0State=0
Source0Line=195
Source0Mode=2
LocalSize=0 300 512 600
LocalState=0
Watch Variable0=[xTickCount],82030000,1,-1 -1
Watch Variable1=[uxTopReadyPriority],80030000,1,-1 -1
Watch Variable2=[tasks\uxCurrentNumberOfTasks],80030000,1,-1 -1
Watch Variable3=[tasks\pxCurrentTCB],82040000,1,-1 -1
Watch Variable4=[xTaskCheck],10010000,1,-1 -1
Watch Variable5=[sCheckVariables],10010000,1,-1 -1
Watch Variable6=[xSemaphoreParameters],10080000,1,-1 -1
Watch Variable7=[sNextCheckVariable],92030000,1,-1 -1
Command History0=cmd send
Command History1=cmd send=60000
Command History2=cmd send
Command History3=cmd send=50000
Command History4=cmd help
Command History5=cmd send
Command History6=cmd send
Command History7=cmd send
Command History8=cmd send
Command History9=cmd help
Command History10=cmd
Command History11=cmd send
Command History12=cmd send
Command History13=cmd send=60000
Command History14=cmd send
Command History15=cmd send = 60000
Command History16=cmd send
Command History17=send
Command History18=cmd send=50000
Command History19=cmd send
Command History20=cmd send
Command History21=cmd send=60000
Command History22=cmd send
Command History23=cmd send=500
Command History24=cmd send
Command History25=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History26=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History27=load c:\CYGWIN\usr\cross\bin\test.mhx
Layer3=2000,SRC\Minimal\blocktim.c
Layer4=2000,SRC\Minimal\comtest.c
Layer5=2000,SRC\taskutility.c
Source1Name=SRC\MAIN.c
Source1Size=512 200 1024 400
Source1State=0
Source1Line=9F
Source1Mode=2
Layer6=2000,SRC\FreeRTOSConfig.h
Layer7=2000,SRC\os\queue.c
Source2Name=SRC\FreeRTOSConfig.h
Source2Size=110 110 936 513
Source2State=0
Source2Line=22
Source2Mode=2
Source3Name=SRC\Minimal\comtest.c
Source3Size=154 154 984 561
Source3State=0
Source3Line=100
Source3Mode=2
Source4Name=SRC\Start91460.asm
Source4Size=198 198 1028 605
Source4State=0
Source4Line=627
Source4Mode=2
Source5Name=SRC\taskutility.c
Source5Size=0 0 830 407
Source5State=0
Source5Line=76
Source5Mode=2
Layer8=2000,SRC\Start91460.asm
Layer9=1007,
Layer10=2000,SRC\MAIN.c
Layer11=1002,
Watch Variable8=[xStart],10080000,1,-1 -1
Watch Variable9=[xEnd],10080000,1,-1 -1
Source6Name=SRC\os\queue.c
Source6Size=154 154 1006 564
Source6State=0
Source6Line=322
Source6Mode=2
Watch Variable10=[xPrimaryCycles],90030000,1,-1 -1
Watch Variable11=[xSecondaryCycles],80030000,1,-1 -1
Command History28=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History29=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History30=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History31=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History32=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History33=load c:\CYGWIN\usr\cross\bin\test.mhx
[Path Environment]
Flag=Enable
Source=
[Map]
Flag=Enable
[Radix Environment]
Flag=Enable
Mode=10
Source=1
[Watch Environment]
Flag=Enable
Size=0
Mode=0
MBuf=0
Check=1
CSiz=100
[Exec Environment]
Flag=Enable
GoIntMask=0
StepUnit=3
StepIntMask=0
StepIntpCtrl=4
GoTrcCtrl=2
OnTheFlyBreakAdmit=1
[Break Environment]
Flag=Enable
EventCodeMode=0
EventDataMode=0
Code0=00040302 1 1 1 0 0 MAIN.c$162
Debug File=C:\Fujitsu\FreeRTOS\FreeRTOS_Port_FR\91467d_FreeRTOS\STANDALONE\ABS\91467d_FreeRTOS.abs
[Emulation Environment]
Flag=Enable
Verify=0
TRIG Input=0
RunMode=3
ICache Auto Control=0
DefaultBreak=1
TraceLostBreak=0
AlignmentErrorBreak=1
RFCR Auto Control=On
RFCR Execute=5B50
RFCR Break=F98
Frequency=50
AutoWait=3
Limit Volt=6.6 2.0
WatchDog=0
Resource=1
EventMode=0
[Monitor Environment]
Flag=Enable
MemoryWindow=1
WatchWindow=1
ObjectWindow=0
ElapseTime=3E8
Unit=1
Mode=0
RealtimeMemoryWindow=0
[Error]
Flag=Enable
GuiErrorOutput=2
CommandErrorOutput=1
BatchErrorOutput=1
ErrorOutputLevel=0
[Color]
Flag=Enable
[Tab Environment]
TabSize=8
[Communication]
Send=60000
Receive=32000
[Trace Environment]
Trace Break=0
Trace Status=0
[CS Memory]
Flag=Disable
Area=0
Write Enable=Disable
[IceMonitor Environment]
Mode=FFFFFFFF
[FLASH Environment]
File Specified Area=00000001 00000000 00000000
Environment Area=00000001 00000000 00000000
MCU Number=MB91F467D
EnvSectorInfo1=0 00000000 00000000
EnvSectorInfo2=0 00000000 00000000
EnvSectorInfo3=0 00000000 00000000
EnvSectorInfo4=0 00000000 00000000
EnvSectorInfo5=0 00000000 00000000
EnvSectorInfo6=0 00000000 00000000
EnvSectorInfo7=0 00000000 00000000
EnvSectorInfo8=0 00000000 00000000
EnvSectorSelectMode=0
FileSectorInfo1=0 00000000 00000000
FileSectorInfo2=0 00000000 00000000
FileSectorInfo3=0 00000000 00000000
FileSectorInfo4=0 00000000 00000000
FileSectorInfo5=0 00000000 00000000
FileSectorInfo6=0 00000000 00000000
FileSectorInfo7=0 00000000 00000000
FileSectorInfo8=0 00000000 00000000
FileSectorSelectMode=0
[Book Mark]
BookMarkMem0=SystemStack,,6,H'00028000,H'000280FB
BookMarkMem1=H'00028228,,1,H'00028228,H'0002837B
BookMarkMem2=H'0002837C,,3,H'0002837C,H'000284CF
BookMarkMem3=H'000284D0,,1,H'000284D0,H'00028623
BookMarkMem4=(tasks\pxCurrentTCB)->pxTopOfStack,,6,H'00028624,H'00028627
BookMarkMem5=*((tasks\pxCurrentTCB)->pxTopOfStack),,2,H'00028838,H'0002883B
BookMarkMem6=\pxCurrentTCB,,7,H'0002892C,H'0002892F
BookMarkMem7=UserStack,,4,H'0002894C,H'00028D47

View File

@ -0,0 +1,195 @@
[Information]
DebChangeFlag=0
MCUChangeFlag=0
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=2
Virtual CPU File=wv911r1.dll
Monitor Load=0
Monitor Load Condition=Disable
[Device]
Communication=RS COM1 57600
ProductID=0
Protocol=0
[Target]
AutoLoad=Enable
Before Batch File=
After Batch File=PRC\set_MONITOR.prc
Non AutoMap=Enable
Load DebInfo Only=Disable
Ondemand Load Condition=Disable
[Start]
Batch File=
[Window]
Flag=Enable
AssemblySize=189 109 609 349
AssemblyState=0
AssemblyFGColor=0 0 255
CommandSize=337 424 757 744
CommandState=0
Assembly Address=H'00042B4A
Memory Address=H'0002F038
Memory Mode=H'00000003
Memory Ascii=H'00000001
Memory SplitRow=0
RMemory Address=H'00000000
RMemory Mode=H'FFFFFFFF
RMemory Ascii=H'00000001
RMemory SplitRow=0
Trace ViewMode=FFFFFFFF
Command Max History=H'00000032
Source Display Mode=Enable
Source Multi Mode=Enable
Source Ask Mode=Enable
Source Active Mode=Enable
Source PC Color=255 255 0
Source Scope Color=255 0 255
Source Back Trace=255 0 255
Register Change Color=255 0 0
Abs Sort Mode=H'00000001
Perfomance Mode=H'00000001
Perfomance Scale=1 0 0.000000 0.000000
RMemory Change Color=255 0 0
RMemory Invalid Color=128 128 128
Command History0=step
Command History1=go ,main
RegisterSize=0 300 512 600
RegisterState=0
Register Select0=H'00000000
Register Select1=H'00000001
Register Select2=H'00000002
Register Select3=H'00000003
Register Select4=H'00000004
Register Select5=H'00000005
Register Select6=H'00000006
Register Select7=H'00000007
Register Select8=H'00000008
Register Select9=H'00000009
Register Select10=H'0000000A
Register Select11=H'0000000B
Register Select12=H'0000000C
Register Select13=H'0000000D
Register Select14=H'0000000E
Register Select15=H'0000000F
Register Select16=H'00000010
Register Select17=H'00000011
Register Select18=H'00000012
Register Select19=H'00000013
Register Select20=H'00000014
Register Select21=H'00000015
Register Select22=H'00000016
Register Select23=H'00000017
Register Select24=H'00000018
Register Select25=H'00000019
Register Select26=H'0000001A
Register Select27=H'0000001B
Register Select28=H'0000001C
Register Select29=H'0000001D
Register Select30=H'0000001E
Register Select31=H'0000001F
Register Select32=H'00000020
Register Select33=H'00000021
Register Select34=H'00000022
Register Select35=H'00000027
MemorySize=512 0 1024 200
MemoryState=0
Layer0=1006,
Layer1=1003,
Layer2=1005,
Source0Name=SRC\Start91460.asm
Source0Size=22 22 848 425
Source0State=0
Source0Line=914
Source0Mode=2
Source1Name=SRC\MAIN.c
Source1Size=66 66 892 469
Source1State=0
Source1Line=6A
Source1Mode=2
SymbolSize=0 0 0 0
SymbolState=0
Memory Line Byte=H'00000000
Memory Change Color=255 0 0
Memory Mark Color0=192 192 192
Memory Mark Color1=192 0 0
Memory Mark Color2=255 255 0
Memory Mark Color3=0 255 0
Memory Mark Color4=0 255 255
Memory Mark Color5=0 128 192
Memory Mark Color6=255 128 64
Layer3=1004,
Layer4=1002,
Layer5=1007,
Layer6=2000,SRC\Start91460.asm
Layer7=2000,SRC\MAIN.c
LocalSize=512 400 1024 600
LocalState=0
WatchSize=512 200 1024 400
WatchState=0
Layer8=2000,SRC\vectors.c
Source2Name=SRC\vectors.c
Source2Size=176 184 1006 612
Source2State=2
Source2Line=80
Source2Mode=2
[Path Environment]
Flag=Enable
Source=
[Map]
Flag=Enable
[Radix Environment]
Flag=Enable
Mode=10
Source=1
[Watch Environment]
Flag=Enable
Size=0
Mode=0
MBuf=0
Check=1
CSiz=100
[Exec Environment]
Flag=Enable
GoIntMask=0
StepUnit=3
StepIntMask=0
StepIntpCtrl=4
GoTrcCtrl=2
OnTheFlyBreakAdmit=0
[Break Environment]
Flag=Enable
[Emulation Environment]
Flag=Disable
[Monitor Environment]
Flag=Enable
MemoryWindow=0
WatchWindow=0
ObjectWindow=0
ElapseTime=3E8
Unit=1
Mode=0
RealtimeMemoryWindow=0
[Error]
Flag=Enable
GuiErrorOutput=2
CommandErrorOutput=1
BatchErrorOutput=1
ErrorOutputLevel=0
[Color]
Flag=Enable
[Tab Environment]
TabSize=8
[Communication]
Send=250
Receive=250
[CS Memory]
Flag=Disable
Area=0
Write Enable=Disable
[FLASH Environment]
File Specified Area=00000001 00000000 00000000
Environment Area=00000001 00000000 00000000
MCU Number=MB91F467D

View File

@ -0,0 +1,197 @@
[Information]
DebChangeFlag=0
MCUChangeFlag=0
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=2
Virtual CPU File=wv911r1.dll
Monitor Load=0
Monitor Load Condition=Disable
[Device]
Communication=RS COM2 57600
ProductID=0
Protocol=0
[Target]
AutoLoad=Enable
Before Batch File=
After Batch File=PRC\set_MONITOR.prc
Non AutoMap=Enable
Load DebInfo Only=Disable
Ondemand Load Condition=Disable
[Start]
Batch File=
[Window]
Flag=Enable
AssemblySize=0 0 420 240
AssemblyState=0
AssemblyFGColor=0 0 255
CommandSize=0 0 420 320
CommandState=0
Layer0=2000,..\Common\Minimal\flop.c
Layer1=2000,..\Common\Minimal\dynamic.c
Layer2=2000,..\Common\Minimal\integer.c
Layer3=2000,..\Common\Minimal\semtest.c
Layer4=2000,..\..\Source\portable\Softune\MB91460\port.c
Assembly Address=H'00040DFC
Memory Address=H'00000000
Memory Mode=H'FFFFFFFF
Memory Ascii=H'00000001
Memory Line Byte=H'00000000
Memory SplitRow=0
RMemory Address=H'00000000
RMemory Mode=H'FFFFFFFF
RMemory Ascii=H'00000001
RMemory SplitRow=0
Trace ViewMode=FFFFFFFF
Command Max History=H'00000032
Source Display Mode=Enable
Source Multi Mode=Enable
Source Ask Mode=Enable
Source Active Mode=Enable
Source PC Color=255 255 0
Source Scope Color=255 0 255
Source Back Trace=255 0 255
Register Change Color=255 0 0
Memory Change Color=255 0 0
Memory Mark Color0=192 192 192
Memory Mark Color1=192 0 0
Memory Mark Color2=255 255 0
Memory Mark Color3=0 255 0
Memory Mark Color4=0 255 255
Memory Mark Color5=0 128 192
Memory Mark Color6=255 128 64
Abs Sort Mode=H'00000001
Source0Name=SRC\Start91460.asm
Source0Size=0 0 715 313
Source0State=0
Source0Line=916
Source0Mode=2
Source1Name=SRC\MAIN.c
Source1Size=88 88 825 404
Source1State=0
Source1Line=9C
Source1Mode=2
Source2Name=..\Common\Minimal\flop.c
Source2Size=132 132 873 452
Source2State=0
Source2Line=115
Source2Mode=1
Perfomance Mode=H'00000001
Perfomance Scale=1 0 0.000000 0.000000
RMemory Change Color=255 0 0
RMemory Invalid Color=128 128 128
Layer5=2000,..\..\Source\portable\MemMang\heap_1.c
Layer6=2000,..\..\Source\portable\MemMang\heap_3.c
Layer7=2000,..\..\Source\tasks.c
Source3Name=..\Common\Minimal\integer.c
Source3Size=0 0 737 316
Source3State=0
Source3Line=7C
Source3Mode=2
Source4Name=..\..\Source\tasks.c
Source4Size=22 22 759 338
Source4State=0
Source4Line=46F
Source4Mode=2
Source5Name=..\Common\Minimal\dynamic.c
Source5Size=44 44 781 360
Source5State=0
Source5Line=159
Source5Mode=2
Layer8=2000,..\..\Source\portable\MemMang\heap_2.c
Source6Name=..\Common\Minimal\semtest.c
Source6Size=110 110 976 426
Source6State=0
Source6Line=8B
Source6Mode=2
Layer9=1002,
Source7Name=..\..\Source\portable\Softune\MB91460\port.c
Source7Size=132 132 998 448
Source7State=0
Source7Line=BE
Source7Mode=2
Layer10=2000,SRC\Start91460.asm
Layer11=1007,
Layer12=2000,SRC\MAIN.c
Layer13=2000,..\..\Source\queue.c
Source8Name=..\..\Source\portable\MemMang\heap_2.c
Source8Size=66 66 936 386
Source8State=0
Source8Line=3F
Source8Mode=2
Source9Name=..\..\Source\portable\MemMang\heap_1.c
Source9Size=88 88 958 408
Source9State=0
Source9Line=31
Source9Mode=2
Source10Name=..\..\Source\portable\MemMang\heap_3.c
Source10Size=110 110 980 411
Source10State=0
Source10Line=31
Source10Mode=2
Source11Name=..\..\Source\queue.c
Source11Size=0 0 866 297
Source11State=0
Source11Line=328
Source11Mode=2
[Path Environment]
Flag=Enable
Source=
[Map]
Flag=Enable
[Radix Environment]
Flag=Enable
Mode=10
Source=1
[Watch Environment]
Flag=Enable
Size=0
Mode=0
MBuf=0
Check=1
CSiz=100
[Exec Environment]
Flag=Enable
GoIntMask=0
StepUnit=3
StepIntMask=0
StepIntpCtrl=4
GoTrcCtrl=2
OnTheFlyBreakAdmit=0
[Break Environment]
Flag=Enable
Code0=00042682 1 0 1 MAIN.c$160
Code1=0004268A 1 0 1 MAIN.c$162
Debug File=E:\FreeRTOS\FR\91467d_FreeRTOS\91467d_FreeRTOS\Demo\MB91460_Softune\STANDALONE\ABS\91467d_FreeRTOS.abs
Code2=00042690 1 0 1 MAIN.c$167
[Emulation Environment]
Flag=Disable
[Monitor Environment]
Flag=Enable
MemoryWindow=0
WatchWindow=0
ObjectWindow=0
ElapseTime=3E8
Unit=1
Mode=0
RealtimeMemoryWindow=0
[Error]
Flag=Enable
GuiErrorOutput=2
CommandErrorOutput=1
BatchErrorOutput=1
ErrorOutputLevel=0
[Color]
Flag=Enable
[Tab Environment]
TabSize=8
[Communication]
Send=250
Receive=250
[CS Memory]
Flag=Disable
Area=0
Write Enable=Disable

View File

@ -0,0 +1,291 @@
[Information]
DebChangeFlag=0
MCUChangeFlag=0
[Version]
Version=1
Level=1
Revision=0
[Debug Type]
Type=1
Virtual CPU File=wv911s1.dll
Monitor Load=0
Monitor Load Condition=Disable
[Device]
Communication=LAN
ProductID=0
Protocol=0
[Target]
AutoLoad=Enable
Before Batch File=
After Batch File=C:PRC\set_SIMULATE.prc
Non AutoMap=Disable
Load DebInfo Only=Disable
Ondemand Load Condition=Disable
[Start]
Batch File=
[Window]
Flag=Enable
Assembly Address=H'000F4000
Memory Address=H'00005742
Memory Mode=H'00000001
Memory Ascii=H'00000001
Memory SplitRow=0
RMemory Address=H'00000000
RMemory Mode=H'FFFFFFFF
RMemory Ascii=H'00000001
RMemory SplitRow=0
Trace ViewMode=FFFFFFFF
Command Max History=H'00000032
Source Display Mode=Enable
Source Multi Mode=Enable
Source Ask Mode=Enable
Source Active Mode=Enable
Source PC Color=255 255 0
Source Scope Color=255 0 255
Source Back Trace=255 0 255
Register Change Color=255 0 0
Perfomance Mode=H'00000001
Perfomance Scale=1 0 0.000000 0.000000
RMemory Change Color=255 0 0
RMemory Invalid Color=128 128 128
RegisterSize=703 3 997 211
RegisterState=0
Register Select0=H'00000000
Register Select1=H'00000001
Register Select2=H'00000002
Register Select3=H'00000003
Register Select4=H'00000004
Register Select5=H'00000005
Register Select6=H'00000006
Register Select7=H'00000007
Register Select8=H'00000008
Register Select9=H'00000009
Register Select10=H'0000000A
Register Select11=H'0000000B
Register Select12=H'0000000C
Register Select13=H'0000000D
Register Select14=H'0000000E
Register Select15=H'0000000F
Register Select16=H'00000010
Register Select17=H'00000011
Register Select18=H'00000012
Register Select19=H'00000013
Register Select20=H'00000014
Register Select21=H'00000015
Register Select22=H'00000016
Register Select23=H'00000017
Register Select24=H'00000018
Register Select25=H'00000019
Register Select26=H'0000001A
Register Select27=H'0000001B
Register Select28=H'0000001C
Register Select29=H'0000001D
Register Select30=H'0000001E
Register Select31=H'0000001F
Register Select32=H'00000020
Register Select33=H'00000021
Register Select34=H'00000022
Register Select35=H'00000027
MemorySize=521 35 939 404
MemoryState=0
AssemblySize=0 0 420 240
AssemblyState=0
AssemblyFGColor=0 0 255
WatchSize=51 443 471 555
WatchState=0
CommandSize=-2 380 418 551
CommandState=0
Command History0=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History1=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History2=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History3=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History4=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History5=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History6=load c:\CYGWIN\usr\cross\bin\test.mhx
Abs Sort Mode=H'00000001
SymbolSize=0 0 0 0
SymbolState=0
Command History7=load c:\CYGWIN\usr\cross\bin\test.mhx
Memory Line Byte=H'00000000
Memory Change Color=255 0 0
Memory Mark Color0=192 192 192
Memory Mark Color1=192 0 0
Memory Mark Color2=255 255 0
Memory Mark Color3=0 255 0
Memory Mark Color4=0 255 255
Memory Mark Color5=0 128 192
Memory Mark Color6=255 128 64
Command History8=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History9=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History10=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History11=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History12=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History13=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History14=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History15=load c:\CYGWIN\usr\cross\bin\test.mhx
Layer0=1004,
TraceSize=0 0 0 0
TraceState=0
Watch2Size=0 0 420 112
Watch2State=0
Layer1=1002,
Source0Name=SRC\Start91460.asm
Source0Size=0 0 868 429
Source0State=0
Source0Line=627
Source0Mode=1
Layer2=2000,SRC\FreeRTOS.h
Layer3=2000,SRC\tasks.c
Layer4=2000,SRC\portmacro.h
Layer5=1007,
Source1Name=SRC\MAIN.c
Source1Size=132 132 1000 579
Source1State=2
Source1Line=E1
Source1Mode=1
Source2Name=SRC\tasks.c
Source2Size=154 154 1022 601
Source2State=0
Source2Line=59E
Source2Mode=1
Source3Name=SRC\port.c
Source3Size=176 176 1044 623
Source3State=0
Source3Line=EC
Source3Mode=2
Layer6=2000,SRC\Start91460.asm
Command History16=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History17=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History18=load c:\CYGWIN\usr\cross\bin\test.mhx
Command History19=load c:\CYGWIN\usr\cross\bin\test.out
Command History20=load c:\CYGWIN\usr\cross\bin\test.out
Command History21=load c:\CYGWIN\usr\cross\bin\test.out
Command History22=load c:\c:\CYGWIN\usr\cross\bin\test.out
Command History23=load
Command History24=open
Command History25=go ,main
Command History26=go noClockStartup,Start91460\smd_cs
Command History27=go ,noClockStartup
Command History28=go ,noClockStartup
Command History29=go noClockStartup,Start91460\smd_cs
Command History30=go ,noClockStartup
Command History31=go noClockStartup,Start91460\smd_cs
Command History32=go ,Start91460\smd_tbr
Command History33=FLASHREADT
Command History34=SET MEMORY/WORD 0xFFFFC=__start
Command History35=SET MEMORY/WORD 0xFFFFC=__start
Command History36=SET MEMORY/WORD 0xFFFFC=__start
Command History37=_start
Command History38=_start
Command History39=_start
Command History40=SET MEMORY/WORD 0xFFFFC=_start
Layer7=2000,SRC\port.c
Layer8=2000,SRC\FreeRTOSConfig.h
Layer9=2000,SRC\MAIN.c
Source4Name=SRC\portmacro.h
Source4Size=176 176 969 598
Source4State=0
Source4Line=25
Source4Mode=2
Source5Name=SRC\FreeRTOS.h
Source5Size=0 0 793 422
Source5State=0
Source5Line=52
Source5Mode=2
Source6Name=SRC\FreeRTOSConfig.h
Source6Size=22 22 815 444
Source6State=0
Source6Line=28
Source6Mode=2
[Path Environment]
Flag=Enable
Source=
[Map]
Flag=Enable
Area0=00000000 00020401 3 0 0
Area2=00028000 0002C9DB 3 0 0
Area4=0002D000 0002D411 3 0 0
Area6=00030000 0003FFFF 7 0 0
Area7=00040000 00044E91 5 0 0
Area9=000F4000 000F42A7 5 0 0
Area11=000F5000 000F549D 5 0 0
Area13=000FFC00 000FFFFF 5 0 0
Area15=00148000 0014800F 5 0 0
[Radix Environment]
Flag=Enable
Mode=10
Source=1
[Watch Environment]
Flag=Enable
Size=0
Mode=0
MBuf=0
Check=1
CSiz=100
[Exec Environment]
Flag=Enable
GoIntMask=0
StepUnit=3
StepIntMask=0
StepIntpCtrl=4
GoTrcCtrl=2
OnTheFlyBreakAdmit=0
[Break Environment]
Flag=Enable
Code0=000413F8 1 0 1 tasks.c$628
Debug File=C:\Fujitsu\FreeRTOS\FreeRTOS Port FR\91467d_FreeRTOS-v11\STANDALONE\ABS\91467d_FreeRTOS.abs
[Emulation Environment]
Flag=Disable
[Monitor Environment]
Flag=Enable
MemoryWindow=0
WatchWindow=0
ObjectWindow=0
ElapseTime=3E8
Unit=1
Mode=0
RealtimeMemoryWindow=0
[Error]
Flag=Enable
GuiErrorOutput=2
CommandErrorOutput=1
BatchErrorOutput=1
ErrorOutputLevel=0
[Color]
Flag=Enable
[Tab Environment]
TabSize=8
[Communication]
Send=1000
Receive=64
[Trace Environment]
Trace Break=0
Trace Status=1
[CS Memory]
Flag=Disable
Area=0
Write Enable=Disable
[FLASH Environment]
File Specified Area=00000001 00000000 00000000
Environment Area=00000001 00000000 00000000
MCU Number=MB91F467D
EnvSectorInfo1=0 00000000 00000000
EnvSectorInfo2=0 00000000 00000000
EnvSectorInfo3=0 00000000 00000000
EnvSectorInfo4=0 00000000 00000000
EnvSectorInfo5=0 00000000 00000000
EnvSectorInfo6=0 00000000 00000000
EnvSectorInfo7=0 00000000 00000000
EnvSectorInfo8=0 00000000 00000000
EnvSectorSelectMode=0
FileSectorInfo1=0 00000000 00000000
FileSectorInfo2=0 00000000 00000000
FileSectorInfo3=0 00000000 00000000
FileSectorInfo4=0 00000000 00000000
FileSectorInfo5=0 00000000 00000000
FileSectorInfo6=0 00000000 00000000
FileSectorInfo7=0 00000000 00000000
FileSectorInfo8=0 00000000 00000000
FileSectorSelectMode=0
[Simulation Environment]
Interrupt0=0 1 1

View File

@ -0,0 +1,114 @@
==========================================================================
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

View File

@ -221,6 +221,12 @@
#endif
#endif
#ifdef __91467D
#include "portmacro.h"
#include "mb91467d.h"
#include <stddef.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif

View File

@ -0,0 +1,23 @@
#include "FreeRTOSConfig.h"
#include <stdlib.h>
static long brk_siz = 0;
// #if configTOTAL_HEAP_SIZE != 0
typedef int _heep_t;
#define ROUNDUP(s) (((s)+sizeof(_heep_t)-1)&~(sizeof(_heep_t)-1))
static _heep_t _heep[ROUNDUP(configTOTAL_HEAP_SIZE)/sizeof(_heep_t)];
#define _heep_size ROUNDUP(configTOTAL_HEAP_SIZE)
/* #else
extern char *_heep;
extern long _heep_size;
#endif
*/
extern char *sbrk(int size)
{
if (brk_siz + size > _heep_size || brk_siz + size < 0)
return((char*)-1);
brk_siz += size;
return( (char*)_heep + brk_siz - size);
}

View File

@ -0,0 +1,352 @@
/*
FreeRTOS.org V4.7.1 - Copyright (C) 2003-2008 Richard Barry.
This file is part of the FreeRTOS.org distribution.
FreeRTOS.org is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
FreeRTOS.org is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with FreeRTOS.org; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
A special exception to the GPL can be applied should you wish to distribute
a combined work that includes FreeRTOS.org, without being obliged to provide
the source code for any proprietary components. See the licensing section
of http://www.FreeRTOS.org for full details of how and when the exception
can be applied.
***************************************************************************
Please ensure to read the configuration and relevant port sections of the
online documentation.
+++ http://www.FreeRTOS.org +++
Documentation, latest information, license and contact details.
+++ http://www.SafeRTOS.com +++
A version that is certified for use in safety critical systems.
+++ http://www.OpenRTOS.com +++
Commercial support, development, porting, licensing and training services.
***************************************************************************
*/
#include "FreeRTOS.h"
#include "task.h"
#include "mb91467d.h"
/*-----------------------------------------------------------*/
/* We require the address of the pxCurrentTCB variable, but don't want to know
any details of its type. */
typedef void tskTCB;
extern volatile tskTCB * volatile pxCurrentTCB;
/*-----------------------------------------------------------*/
#pragma asm
#macro SaveContext
ORCCR #0x20 ;Switch to user stack
ST RP,@-R15 ;Store RP
STM0 (R7,R6,R5,R4,R3,R2,R1,R0) ;Store R7-R0
STM1 (R14,R13,R12,R11,R10,R9,R8) ;Store R14-R8
ST MDH, @-R15 ;Store MDH
ST MDL, @-R15 ;Store MDL
ANDCCR #0xDF ;Switch back to system stack
LD @R15+,R0 ;Store PC to R0
ORCCR #0x20 ;Switch to user stack
ST R0,@-R15 ;Store PC to User stack
ANDCCR #0xDF ;Switch back to system stack
LD @R15+,R0 ;Store PS to R0
ORCCR #0x20 ;Switch to user stack
ST R0,@-R15 ;Store PS to User stack
LDI #_pxCurrentTCB, R0 ;Get pxCurrentTCB address
LD @R0, R0 ;Get the pxCurrentTCB->pxTopOfStack address
ST R15,@R0 ;Store USP to pxCurrentTCB->pxTopOfStack
ANDCCR #0xDF ;Switch back to system stack for the rest of tick ISR
#endm
#macro RestoreContext
LDI #_pxCurrentTCB, R0 ;Get pxCurrentTCB address
LD @R0, R0 ;Get the pxCurrentTCB->pxTopOfStack address
ORCCR #0x20 ;Switch to user stack
LD @R0, R15 ;Restore USP from pxCurrentTCB->pxTopOfStack
LD @R15+,R0 ;Store PS to R0
ANDCCR #0xDF ;Switch to system stack
ST R0,@-R15 ;Store PS to system stack
ORCCR #0x20 ;Switch to user stack
LD @R15+,R0 ;Store PC to R0
ANDCCR #0xDF ;Switch to system stack
ST R0,@-R15 ;Store PC to system stack
ORCCR #0x20 ;Switch back to retreive the remaining context
LD @R15+, MDL ;Restore MDL
LD @R15+, MDH ;Restore MDH
LDM1 (R14,R13,R12,R11,R10,R9,R8) ;Restore R14-R8
LDM0 (R7,R6,R5,R4,R3,R2,R1,R0) ;Restore R7-R0
LD @R15+, RP ;Restore RP
ANDCCR #0xDF ;Switch back to system stack for the rest of tick ISR
#endm
#pragma endasm
/*-----------------------------------------------------------*/
/*
* Perform hardware setup to enable ticks from timer 1,
*/
static void prvSetupTimerInterrupt( void );
/*-----------------------------------------------------------*/
/*
* Initialise the stack of a task to look exactly as if a call to
* portSAVE_CONTEXT had been called.
*
* See the header file portable.h.
*/
portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters )
{
unsigned portSHORT usAddress;
/* Place a few bytes of known values on the bottom of the stack.
This is just useful for debugging. */
*pxTopOfStack = 0x11111111;
pxTopOfStack--;
*pxTopOfStack = 0x22222222;
pxTopOfStack--;
*pxTopOfStack = 0x33333333;
pxTopOfStack--;
/* This is a redundant push to the stack, it may be required if in some implentation of the compiler
the parameter to the task is passed on to the stack rather than in R4 register*/
*pxTopOfStack = (portSTACK_TYPE)(pvParameters);
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x00000000; /* RP */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x00007777; /* R7 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x00006666; /* R6 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x00005555; /* R5 */
pxTopOfStack--;
/* In the current implemention of the compiler the first parameter to the task(or function) is passed
via R4 parameter to the task, hennce the pvParameters pointer is copied in R4 regsiter. See compiler
manual section 4.6.2 for more information.*/
*pxTopOfStack = ( portSTACK_TYPE ) (pvParameters); /* R4 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x00003333; /* R3 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x00002222; /* R2 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x00001111; /* R1 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x00000001; /* R0 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x0000EEEE; /* R14 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x0000DDDD; /* R13 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x0000CCCC; /* R12 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x0000BBBB; /* R11 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x0000AAAA; /* R10 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x00009999; /* R9 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x00008888; /* R8 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x11110000; /* MDH */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) 0x22220000; /* MDL */
pxTopOfStack--;
usAddress = ( unsigned portSHORT ) pxCode;
*pxTopOfStack = ( portSTACK_TYPE ) usAddress ; /* PC */
pxTopOfStack--;
/* PS - User Mode, USP, ILM=31, Interrupts enabled */
*pxTopOfStack = ( portSTACK_TYPE ) 0x001F0030; /* PS */
return pxTopOfStack;
}
/*-----------------------------------------------------------*/
portBASE_TYPE xPortStartScheduler( void )
{
/* Setup the hardware to generate the tick. */
prvSetupTimerInterrupt();
/* Restore the context of the first task that is going to run. */
#pragma asm
RestoreContext
#pragma endasm
/* Simulate a function call end as generated by the compiler. We will now
jump to the start of the task the context of which we have just restored. */
__asm(" reti ");
/* Should not get here. */
return pdTRUE;
}
/*-----------------------------------------------------------*/
void vPortEndScheduler( void )
{
/* It is unlikely that the AVR port will get stopped. If required simply
disable the tick interrupt here. */
}
/*-----------------------------------------------------------*/
/*
* Setup RLT0 to generate a tick interrupt.
*/
static void prvSetupTimerInterrupt( void )
{
TMCSR0_CNTE=0; /* Count Disable */
TMCSR0_CSL=0x2; /* CLKP/32 */
TMCSR0_MOD=0; /* Software trigger */
TMCSR0_RELD=1; /* Reload */
TMCSR0_UF=0; /* Clear underflow flag */
//TMRLR0=0x1F3; /* Tick = 1 ms*/
TMRLR0=0x1387; /* Tick = 10 ms*/
TMCSR0_INTE=1; /* Interrupt Enable */
TMCSR0_CNTE=1; /* Count Enable */
TMCSR0_TRG=1; /* Trigger */
PORTEN = 0x3; /* Port Enable */
}
/*-----------------------------------------------------------*/
#if configUSE_PREEMPTION == 1
/*
* Tick ISR for preemptive scheduler. The tick count is incremented
* after the context is saved. Then the context is switched if required,
* at last the context of the task which is to be resume is restored.
*/
#pragma asm
.global _ReloadTimer0_IRQHandler
_ReloadTimer0_IRQHandler:
ANDCCR #0xEF ;Disable Interrupts
SaveContext ;Save context
ORCCR #0x10 ;Re-enable Interrupts
LDI #0xFFFB,R1
LDI #_tmcsr0, R0
AND R1,@R0 ;Clear RLT0 interrupt flag
CALL32 _vTaskIncrementTick,R12 ;Increment Tick
CALL32 _vTaskSwitchContext,R12 ;Switch context if required
ANDCCR #0xEF ;Disable Interrupts
RestoreContext ;Restore context
ORCCR #0x10 ;Re-enable Interrupts
RETI
#pragma endasm
#else
/*
* Tick ISR for the cooperative scheduler. All this does is increment the
* tick count. We don't need to switch context, this can only be done by
* manual calls to taskYIELD();
*/
__interrupt void ReloadTimer0_IRQHandler( void )
{
/* Clear RLT0 interrupt flag */
TMCSR0_UF = 0;
vTaskIncrementTick();
}
#endif
/*
* Manual context switch. We can use a __nosavereg attribute as the context
* would be saved by PortSAVE_CONTEXT(). The context is switched and then
* the context of the new task is restored saved.
*/
#pragma asm
.global _vPortYieldDelayed
_vPortYieldDelayed:
ANDCCR #0xEF ;Disable Interrupts
SaveContext ;Save context
ORCCR #0x10 ;Re-enable Interrupts
LDI #_dicr, R0
BANDL #0x0E, @R0 ;Clear Delayed interrupt flag
CALL32 _vTaskSwitchContext,R12 ;Switch context if required
ANDCCR #0xEF ;Disable Interrupts
RestoreContext ;Restore context
ORCCR #0x10 ;Re-enable Interrupts
RETI
#pragma endasm
/*
* Manual context switch. We can use a __nosavereg attribute as the context
* would be saved by PortSAVE_CONTEXT(). The context is switched and then
* the context of the new task is restored saved.
*/
#pragma asm
.global _vPortYield
_vPortYield:
SaveContext ;Save context
CALL32 _vTaskSwitchContext,R12 ;Switch context if required
RestoreContext ;Restore context
RETI
#pragma endasm

View File

@ -0,0 +1,116 @@
/*
FreeRTOS.org V4.7.1 - Copyright (C) 2003-2008 Richard Barry.
This file is part of the FreeRTOS.org distribution.
FreeRTOS.org is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
FreeRTOS.org is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with FreeRTOS.org; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
A special exception to the GPL can be applied should you wish to distribute
a combined work that includes FreeRTOS.org, without being obliged to provide
the source code for any proprietary components. See the licensing section
of http://www.FreeRTOS.org for full details of how and when the exception
can be applied.
***************************************************************************
Please ensure to read the configuration and relevant port sections of the
online documentation.
+++ http://www.FreeRTOS.org +++
Documentation, latest information, license and contact details.
+++ http://www.SafeRTOS.com +++
A version that is certified for use in safety critical systems.
+++ http://www.OpenRTOS.com +++
Commercial support, development, porting, licensing and training services.
***************************************************************************
*/
#ifndef PORTMACRO_H
#define PORTMACRO_H
/*-----------------------------------------------------------
* Port specific definitions.
*
* The settings in this file configure FreeRTOS correctly for the
* given hardware and compiler.
*
* These settings should not be altered.
*-----------------------------------------------------------
*/
/* Type definitions. */
#define portCHAR char
#define portFLOAT float
#define portDOUBLE double
#define portLONG long
#define portSHORT int
#define portSTACK_TYPE unsigned portSHORT
#define portBASE_TYPE char
/* This is required since SOFTUNE doesn't support inline directive as is. */
#define inline
#if( configUSE_16_BIT_TICKS == 1 )
typedef unsigned portSHORT portTickType;
#define portMAX_DELAY ( portTickType ) 0xffff
#else
typedef unsigned portLONG portTickType;
#define portMAX_DELAY ( portTickType ) 0xffffffff
#endif
/*-----------------------------------------------------------*/
/* Critical section management. */
#define portENTER_CRITICAL() \
__asm(" ST PS,@-R15 "); \
__asm(" ANDCCR #0xef "); \
#define portEXIT_CRITICAL() \
__asm(" LD @R15+,PS "); \
#define portDISABLE_INTERRUPTS() __DI();
#define portENABLE_INTERRUPTS() __EI();
/*-----------------------------------------------------------*/
/* Architecture specifics. */
#define portSTACK_GROWTH ( -1 )
#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ )
#define portBYTE_ALIGNMENT 4
#define portNOP() __asm( " nop " );
/*-----------------------------------------------------------*/
/* portYIELD() uses SW interrupt */
#define portYIELD() __asm( " INT #40H " );
/* portYIELDFromISR() uses delayed interrupt */
#define portYIELDFromISR() DICR_DLYI = 1;
/*-----------------------------------------------------------*/
/* Task function macros as described on the FreeRTOS.org WEB site. */
#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters )
#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )
#define portMINIMAL_STACK_SIZE configMINIMAL_STACK_SIZE
#endif /* PORTMACRO_H */