SD Card 내에 파일을 읽어서 Ymodem을 사용하여 업데이트하였습니다.
MCU는 Adstar을 사용하였습니다.(Download는 미사용)
s32 Fats_UpdateFile_Read(char* fname, u8 *FileData, u16 FileSize, u32 FilePosition)
SD Card의 파일을 읽는 함수이고 File Name을 읽어오기 위해 아래 함수도 약간 수정하였습니다.
void Ymodem_PreparePacket(char* fname, u8 *SourceBuf, u8 *data, u8 pktNo, u32 sizeBlk)
/*******************************************************************************
* Function Name :
* Description :
* Parameters : None
* Return : None
*******************************************************************************/
u32 Fats_UpdateFileSize(void)
{
f_chdir("/");
FIL F;
FRESULT fres;
UINT bytesWritten;
u32 FileSize = 0;
fres = f_open(&F, "drvboot.bin", FA_OPEN_EXISTING | FA_READ);
if(fres==0){
FileSize = f_size(&F);
}
else{
debugprintf("Do not Find File");
}
f_close(&F);
return FileSize;
}
/*******************************************************************************
* Function Name :
* Description :
* Parameters : None
* Return : None
*******************************************************************************/
void SerialUpload(void)
{
u8 status = 0 ;
if (GetKey() == CRC16)
{
/* Transmit the flash image through ymodem protocol */
/* drvboot.bin */
status = Ymodem_Transmit((u8*)0, (const char*)"drvboot.bin", Fats_UpdateFileSize());
if (status != 0) {
debugprintf("\n\rError Occurred while Transmitting File\n\r");
return;
}
else{
debugprintf("\n\rFile uploaded successfully \n\r");
return;
}
}
}
'초보의 아웅다웅 설계하기 > Adstar' 카테고리의 다른 글
ADSTAR SDCard Boot 시 각종 에러 발생 문제 (0) | 2023.01.06 |
---|---|
ADSTAR - Sleep mode - 2 (0) | 2022.06.20 |
ADSTAR - Sleep mode (0) | 2022.06.17 |
WatchDog Clear 문제 (0) | 2015.06.29 |
DownLoad 설정 (0) | 2015.06.26 |