?? main.c
字號:
//======================================================================
// The information contained herein is the exclusive property of
// Sunnnorth Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
// (C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.
// ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorized copies.
//=======================================================================
//=======================================================================
// 工程名稱: ex6_SPR4096_FLASH
// 功能描述: 《實驗儀指導書》模組實驗,
// SPR4096A FLASH的擦除及其讀寫
// SPR4096 的FLASH存儲開機次數
// 涉及的庫: CMacro1016.lib
// 組成文件: main.c
// 4096.asm
// SPCE061A.INC
// SPCE061A.H
// 硬件連接: CF7->DGND
// SDA->IOB1
// SCK->IOB0
// LED_SEG接口的IOA0~IOA7與a~h連接
// LED_DIG接口的IOB6與DIG5連接
// 維護記錄: 2005-10-21
//=======================================================================
//=======================================================================
// 文件名稱: main.c
// 功能描述: SPR4096 的FLASH存儲功能
// 維護記錄: 2005-10-21 v1.0
//=======================================================================
extern void SP_SIOInitial(void);
extern void SP_SIOMassErase(void);
extern void SP_SIOSectorErase(unsigned int uiSector);
extern void SP_SIOSendAWord(unsigned long int ulAddr,unsigned int uiData);
extern void SP_SIOSendAByte(unsigned long int ulAddr,unsigned int uiData);
extern unsigned int SP_SIOReadAWord(unsigned long int ulAddr);
extern unsigned int SP_SIOReadAByte(unsigned long int ulAddr);
#define M_SECTOR 0 //第幾個扇區(0~255)
#include "SPCE061A.H"
//========================================================================
// 語法格式: int main(void)
// 實現功能: 主程序
// 參數: 無
// 返回值: 無
//========================================================================
int main(void)
{
unsigned long int ulStartAddr;
unsigned int uiData,uiBuffer;
for(uiData=0;uiData<10000;uiData++); //延時
uiData=0;
SP_SIOInitial(); //SIO初始化,函數定義在4096.asm中
*P_IOA_Dir = 0xffff; //初始化IOA口為同相低電平輸出口
*P_IOA_Attrib = 0xffff;
*P_IOA_Data = 0x0000;
*P_IOB_Dir |= 0x0040; // IOB6輸出高電平
*P_IOB_Attrib |= 0x0040;
*P_IOB_Buffer |= 0x0040;
ulStartAddr=0x800*(M_SECTOR);
uiData=SP_SIOReadAWord(ulStartAddr); //讀4096的第M_SECTOR個扇區的首地址一個Word的數據
SP_SIOSectorErase(M_SECTOR); //對4096的第M_SECTOR個扇區進行擦除
*P_IOA_Data = uiData; //點亮與IOA0相連的LED
uiData++;
SP_SIOSendAWord(ulStartAddr,uiData); //往4096的第M_SECTOR個扇區的首地址寫入一個Word的數據
while(1)
{
*P_Watchdog_Clear=0x1; //清看門狗
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -