/* * Flash.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "DSP28335/FLASH.h" namespace DSP28335 { //CONSTRUCTOR FLASH::FLASH(): DSP28335::CPUBase(), m_mask_sector(0), // m_operation_status_erase(0), m_operation_status_program(0), m_operation_status_verify(0), // m_version_hex_default(API_VERSION_DEFAULT), m_version_hex(0) { m_sector.StartAddr = 0; m_sector.EndAddr = 0; // m_status_erase.FirstFailAddr = 0; m_status_erase.ExpectedData = 0; m_status_erase.ActualData = 0; // m_status_program.FirstFailAddr = 0; m_status_program.ExpectedData = 0; m_status_program.ActualData = 0; // m_status_verify.FirstFailAddr = 0; m_status_verify.ExpectedData = 0; m_status_verify.ActualData = 0; // }//end CONSTRUCTOR void FLASH::setup(Uint16 mask_sector, Uint16 *StartAddr, Uint16 *EndAddr) { m_mask_sector = mask_sector; m_sector.StartAddr = StartAddr; m_sector.EndAddr = EndAddr; //SCALE_FACTOR is defined in Flash2833x_API_Config.h //EALLOW; Flash_CPUScaleFactor = SCALE_FACTOR; //EDIS; // m_mode = DSP28335::FLASH::OPERATIONAL; // }//end Uint16 FLASH::erase() { //Uint16 status = 0; //Flash_Erase(Uint16 SectorMask, FLASH_ST *FEraseStat); //status = Flash_Erase(m_mask_sector, &m_status_erase); //return status; return Flash_Erase(m_mask_sector, &m_status_erase); // }//end Uint16 FLASH::read(Uint16 *Dest, Uint32 Length) { Uint16 *Source = m_sector.StartAddr; Uint16 status = 0; if(Length <= 0x4000) { for(Uint32 i=0; i