X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=pkernel%2Fmain.c;h=7963c2a13242684f4db7f0f86665dc35b29172f8;hb=a81c47e8de76a280faf5830c0252f635f811e1d5;hp=9f1cd287ed359a434bd12efe2bb9c6cd7b58f667;hpb=96324b051bfefe94b0887d30f1897ed21b25efff;p=pyfrprog.git diff --git a/pkernel/main.c b/pkernel/main.c index 9f1cd28..7963c2a 100644 --- a/pkernel/main.c +++ b/pkernel/main.c @@ -1,200 +1,49 @@ -/* 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. - - 06.10.06 1.01 UMa changed includes --------------------------------------------------------------------------*/ - - -/*************************@INCLUDE_START************************/ #include "mb91465k.h" -#include "vectors.h" -#include "rlt.h" #include "flash.h" -/**************************@INCLUDE_END*************************/ - -/*********************@GLOBAL_VARIABLES_START*******************/ -/**********************@GLOBAL_VARIABLES_END********************/ +#pragma section CODE=IRAM,attr=CODE -/*******************@FUNCTION_DECLARATION_START*****************/ - -/*********************@FUNCTION_HEADER_START********************* -*@FUNCTION NAME: main() * -* * -*@DESCRIPTION: The main function controls the program flow * -* * -*@PARAMETER: none * -* * -*@RETURN: none * -* * -***********************@FUNCTION_HEADER_END*********************/ - +void increaseled(void) +{ + PDR14 = ~(((~PDR14)+1)%256); + HWWD_CL = 0; +} void main(void) { - unsigned char error = 0; - unsigned char global_error = 0; - unsigned int i; + unsigned int i, baseaddr; + unsigned int toflash[] = {0x9b00, 0x0d4e, 0xcff1, 0x1601, 0x9b05, 0x04c7, 0xc106, 0x1656, 0xe0fb}; //len = 9 - /* Enable Clock Monitor */ - CSCFG_MONCKI = 1; - CMCFG = 0x0D; - - __EI(); /* enable interrupts */ - __set_il(31); /* allow all levels */ - InitIrqLevels(); /* init interrupts */ - - PORTEN = 0x3; /* enable I/O Ports */ - /* This feature is not supported by MB91V460A */ - /* For all other devices the I/O Ports must be enabled*/ + PORTEN = 0x3; /* enable I/O Ports */ - /* Enable LEDs */ + /*Enable LEDs*/ DDR14 = 0xFF; - PDR14 = 0xff; - - /* Initialize Reload Timer Channel 0 */ - RLT_InitializeTimer(0, RLT_RUMMODE_RELOAD, RLT_CLOCKMODE_DIV32, RLT_TRIGGER_SOFTWARE, RLT_OUTOUTMODE_HIGHLEVEL); - RLT_SetReloadValue(0,0xfffe); - RLT_TriggerTimer(0); - RLT_EnableInterrupt(0, 1); + PDR14 = 0x00; + increaseled(); - /* Initialize UART4 */ + /*Initialize UART4*/ InitUart4(); - /* Output Welcome Message */ - Puts4(" \n\n"); - Puts4("\n\n********** Welcome to FUJITSU FLASH Programming Demo **********\n"); - - /* Do BlankCheck on Sector at 0xA0000 */ - Puts4("Blank Check of FLASH Sector at 0xA0000 ... "); - error = FLASH_SectorBlankCheck(0xA0000, 0x4000); - if( error == 1 ) - { - Puts4("done.\n"); - } - else - { - Puts4("failed.\n"); - } - - /* Show Current Content of 0xA0000 ... 0xA001F */ - i=0; - Puts4("\nCurrent Content of FLASH at 0xA0000 ... 0xA001F:\n"); - while(i < 0x20) - { - Puts4("0x"); Puthex4( *(unsigned char *)(0xA0000 + i), 2); Puts4(" "); - i++; - if( (i % 0x10) == 0 ) Puts4("\n"); - } - Puts4("\n"); - - /* SectorErase of FLASH Memory 0xA0000*/ - Puts4("Sector Erase of 0xA0000 ... "); - error = FLASH_SectorErase(0xA0000); - error = FLASH_SectorErase(0xA0004); - if( error == 1 ) - { - Puts4("done.\n"); - } - else - { - global_error = 1; - Puts4("failed.\n"); +#if 1 + i = 0; + baseaddr = 0xf4000; + for (; i <0x30; i+=4) { + (void) FLASH_SectorErase(baseaddr + i); + increaseled(); } +#endif - /* Do BlankCheck on Sectors at 0xA0000 */ - Puts4("Blank Check of FLASH Sector at 0xA0000 ... "); - error = FLASH_SectorBlankCheck(0xA0000, 0x4000); - if( error == 1 ) - { - Puts4("done.\n"); - } - else - { - global_error = 1; - Puts4("failed.\n"); - } - - /* Show Current Content of 0xA0000 ... 0xA001F */ - i=0; - Puts4("\nCurrent Content of FLASH at 0xA0000 ... 0xA001F:\n"); - while(i < 0x20) - { - Puts4("0x"); Puthex4( *(unsigned char *)(0xA0000 + i), 2); Puts4(" "); - i++; - if( (i % 0x10) == 0 ) Puts4("\n"); - } - Puts4("\n"); - - /* Write 0x55AA to 0xA0002 */ - Puts4("Write 0x55AA to 0xA0002 ... "); - error = FLASH_WriteHalfWord(0xA0002,0x55AA); - if( error == 1 ) - { - Puts4("done.\n"); - } - else - { - global_error = 1; - Puts4("failed.\n"); + i = 0; + baseaddr = 0xf4000; + for(; i<9; i++) { + increaseled(); + (void) FLASH_WriteHalfWord(baseaddr + (2*i), toflash[i]); } - /* Write 0x33CC to 0xA0004 */ - Puts4("Write 0x33CC to 0xA0004 ... "); - error = FLASH_WriteHalfWord(0xA0004,0x33CC); - if( error == 1 ) - { - Puts4("done.\n"); - } - else - { - global_error = 1; - Puts4("failed.\n"); - } - - /* Show Current Content of 0xA0000 ... 0xA001F */ - i=0; - Puts4("\nCurrent Content of FLASH at 0xA0000 ... 0xA001F:\n"); - while(i < 0x20) - { - Puts4("0x"); Puthex4( *(unsigned char *)(0xA0000 + i), 2); Puts4(" "); - i++; - if( (i % 0x10) == 0 ) Puts4("\n"); - } - Puts4("\n"); + PDR14 = 0x55; //signal that we finished now! - - /* Output Ready Meassage */ - if( global_error != 0 ) - { - Puts4("\n********* FLASH Programming Demo failed **********\n"); + while(1) { + HWWD_CL = 0; } - else - { - Puts4("\n********* FLASH Programming Demo done **********\n"); - } - - RLT_EnableInterrupt(0, 0); - - while(1) /* endless loop */ - { - - HWWD_CL = 0; - - /* feed hardware watchdog */ - /* (Only for devices with hardware (R/C based) watchdog) */ - /* The hardware (R/C based) watchdog is started */ - /* automatically after power-up and can not be stopped */ - /* If the hardware watchdog is not cleared frequently */ - /* a reset is generated. */ - } } - -/********************@FUNCTION_DECLARATION_END******************/