X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=pyfrprog.git;a=blobdiff_plain;f=pkernel%2Fmain.c;h=2a5cae2ed8ec3f30384125955fe10d2fcb7eea8d;hp=9f1cd287ed359a434bd12efe2bb9c6cd7b58f667;hb=78a025d1b347075f04b26a9c2aa2249ea85c241b;hpb=3140c0cc070989e69eff0bff76dde4d00f2a1940 diff --git a/pkernel/main.c b/pkernel/main.c index 9f1cd28..2a5cae2 100644 --- a/pkernel/main.c +++ b/pkernel/main.c @@ -1,46 +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 */ -/*------------------------------------------------------------------------ - 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********************/ - - -/*******************@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 main(void) { unsigned char error = 0; unsigned char global_error = 0; - unsigned int i; + unsigned int i, baseaddr; /* Enable Clock Monitor */ CSCFG_MONCKI = 1; @@ -71,83 +38,25 @@ void main(void) 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"); - } - - /* 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 <0x30; i+=4) { + error = FLASH_SectorErase(baseaddr + i); + Puts4("\nerased: "); + Puts4(error == 1 ? "[success] " : "[failed] "); + Puthex4(baseaddr + i, 6); } - /* Write 0x33CC to 0xA0004 */ - Puts4("Write 0x33CC to 0xA0004 ... "); - error = FLASH_WriteHalfWord(0xA0004,0x33CC); + Puts4("Write simpleprog to 0xf4000 ... "); + error = FLASH_WriteHalfWord(0xf4000,0x9b00); + error = FLASH_WriteHalfWord(0xf4002,0x0d4e); + error = FLASH_WriteHalfWord(0xf4004,0xcff1); + error = FLASH_WriteHalfWord(0xf4006,0x1601); + error = FLASH_WriteHalfWord(0xf4008,0x9b05); + error = FLASH_WriteHalfWord(0xf4010,0x04c7); + error = FLASH_WriteHalfWord(0xf4012,0xc106); + error = FLASH_WriteHalfWord(0xf4014,0x1656); + error = FLASH_WriteHalfWord(0xf4016,0xe0fb); if( error == 1 ) { Puts4("done.\n"); @@ -158,12 +67,11 @@ void main(void) Puts4("failed.\n"); } - /* Show Current Content of 0xA0000 ... 0xA001F */ i=0; - Puts4("\nCurrent Content of FLASH at 0xA0000 ... 0xA001F:\n"); + Puts4("\nCurrent Content of FLASH at 0xf4000 ... 0xf401F:\n"); while(i < 0x20) { - Puts4("0x"); Puthex4( *(unsigned char *)(0xA0000 + i), 2); Puts4(" "); + Puts4("0x"); Puthex4( *(unsigned char *)(0xf4000 + i), 2); Puts4(" "); i++; if( (i % 0x10) == 0 ) Puts4("\n"); } @@ -182,19 +90,10 @@ void main(void) RLT_EnableInterrupt(0, 0); - while(1) /* endless loop */ + while(1) { 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******************/