OpenCores
URL https://opencores.org/ocsvn/usb_fpga_1_2/usb_fpga_1_2/trunk

Subversion Repositories usb_fpga_1_2

[/] [usb_fpga_1_2/] [trunk/] [examples/] [usb-fpga-1.2/] [flashdemo/] [flashdemo.c] - Diff between revs 4 and 8

Show entire file | Details | Blame | View Log

Rev 4 Rev 8
Line 1... Line 1...
/*!
/*!
   flashdemo -- demo for Flash memory access from firmware and host software for ZTEX USB FPGA Module 1.2
   flashdemo -- demo for Flash memory access from firmware and host software for ZTEX USB-FPGA Module 1.2
   Copyright (C) 2009-2010 ZTEX e.K.
   Copyright (C) 2009-2011 ZTEX GmbH.
   http://www.ztex.de
   http://www.ztex.de
 
 
   This program is free software; you can redistribute it and/or modify
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License version 3 as
   it under the terms of the GNU General Public License version 3 as
   published by the Free Software Foundation.
   published by the Free Software Foundation.
Line 26... Line 26...
ENABLE_FLASH;
ENABLE_FLASH;
 
 
// this product string is also used for identification by the host software
// this product string is also used for identification by the host software
#define[PRODUCT_STRING]["Flash demo for UFM 1.2"]
#define[PRODUCT_STRING]["Flash demo for UFM 1.2"]
 
 
code char flash_string[] = "Hello World!";
__code char flash_string[] = "Hello World!";
 
 
// include the main part of the firmware kit, define the descriptors, ...
// include the main part of the firmware kit, define the descriptors, ...
#include[ztex.h]
#include[ztex.h]
 
 
void main(void)
void main(void)
{
{
    xdata DWORD sector;
    __xdata DWORD sector;
 
 
    init_USB();                                         // init everything
    init_USB();                                         // init everything
 
 
    if ( flash_enabled ) {
    if ( flash_enabled ) {
        flash_read_init( 0 );                            // prepare reading sector 0
        flash_read_init( 0 );                            // prepare reading sector 0
        flash_read((xdata BYTE*) &sector, 4);           // read the number of last sector 
        flash_read((__xdata BYTE*) &sector, 4);         // read the number of last sector 
        flash_read_finish(flash_sector_size - 4);       // dummy-read the rest of the sector + finish read operation
        flash_read_finish(flash_sector_size - 4);       // dummy-read the rest of the sector + finish read operation
 
 
        sector++;
        sector++;
        if ( sector > flash_sectors || sector == 0 ) {
        if ( sector > flash_sectors || sector == 0 ) {
            sector = 1;
            sector = 1;
        }
        }
 
 
        flash_write_init( 0 );                           // prepare writing sector 0
        flash_write_init( 0 );                           // prepare writing sector 0
        flash_write((xdata BYTE*) &sector, 4);          // write the current sector number
        flash_write((__xdata BYTE*) &sector, 4);                // write the current sector number
        flash_write_finish(flash_sector_size - 4);      // dummy-write the rest of the sector + finish write operation
        flash_write_finish_sector(flash_sector_size - 4);       // dummy-write the rest of the sector + CRC
 
        flash_write_finish();                                   // finish write operation
 
 
        flash_write_init( sector );                     // prepare writing sector sector
        flash_write_init( sector );                     // prepare writing sector sector
        flash_write((xdata BYTE*) flash_string, sizeof(flash_string));  // write the string 
        flash_write((__xdata BYTE*) flash_string, sizeof(flash_string));        // write the string 
        flash_write_finish(flash_sector_size - sizeof(flash_string));   // dummy-write the rest of the sector + finish write operation
        flash_write_finish_sector(flash_sector_size - sizeof(flash_string));    // dummy-write the rest of the sector + CRC
 
        flash_write_finish();                                                   // finish write operation
    }
    }
 
 
    while (1) { }                                       //  twiddle thumbs
    while (1) { }                                       //  twiddle thumbs
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.