초보의 아웅다웅 설계하기/Adstar

SD Card 내에 파일을 읽어서 Ymodem으로 업데이트

로망와니 2022. 5. 18. 16:12

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;
}
}
}

common.c
0.01MB
common.h
0.00MB
ymodem.c
0.02MB
ymodem.h
0.00MB

'초보의 아웅다웅 설계하기 > 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