⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 evmdm642_flash_write.c

📁 DM642串口调试模块
💻 C
字号:
/*
 *  Copyright 2003 by Spectrum Digital Incorporated.
 *  All rights reserved. Property of Spectrum Digital Incorporated.
 */

/*
 *  ======== evmdm642_flash_write.c ========
 *  EVMDM642_FLASH_write() implementation
 */

#include <std.h>
#include <csl.h>

#include <evmdm642.h>
#include <evmdm642_flash.h>

/* Write data to a data range in Flash */
void EVMDM642_FLASH_write(Uint32 src, Uint32 dst, Uint32 length)
{
    Uint8 *psrc, *pdst;
    Uint32 i;

    /* Establish source and destination */
    psrc = (Uint8 *)src;
    pdst = (Uint8 *)dst; 
    for (i = 0; i < length; i++)
    {
        // Program one 8-bit word
        *((Uint8 *)EVMDM642_FLASH_BASE) = 0xaa;
        *((Uint8 *)EVMDM642_FLASH_BASE) = 0x55;
        *((Uint8 *)EVMDM642_FLASH_BASE) = 0xa0;
        *pdst = *psrc;
        
        // Wait for operation to complete
        while(1)
            if (*pdst == *psrc)
                break;
                
        pdst++;
        psrc++;
    }
    
    /* Put back in read mode */
    *((Uint16 *)EVMDM642_FLASH_BASE) = 0xf0;    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -