| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- //-------------------------------------------------------------------------------
- #include "loadBasicPacket.h"
- //-------------------------------------------------------------------------------
- #include "generateSave.h"
- #include "generateBin.h"
- #include "generateOutput.h"
- //-------------------------------------------------------------------------------
- bool isLoadBasicPacket( void )
- {
- return (strlen( miBaseImageName ) != 0);
- }
- //-------------------------------------------------------------------------------
- void freeBasicPacket( void )
- {
- removeTempFile( BASEIMAGE_CODEBIN );
- removeTempFile( BASEIMAGE_SAVE );
-
- #if( CONFIG_DATA_FLASH_SIZE != 0 )
- removeTempFile( BASEIMAGE_DATABIN );
- #endif
- }
- static inline bool generateDecryptFlashBin( const char *tmp, const char *final )
- {
- dbgMsg( "[generateDecryptFlashBin]\n" );
- if( sisspi_encrypt( tmp, final, false ) )
- {
- errMsg( "decrypt failed\n"); return false;
- }
- removeTempFile( tmp );
- return true;
- }
- static inline bool outputFileContent( const char *targetName, FILE *fpIn, u32 cpySize )
- {
- FILE *fpOut; int readSize;
- u8 readBuf[TMP_BUFFER_SIZE] = {0};
- fpOut = fopen( targetName, "wb" );
- if( fpOut == NULL )
- {
- errMsg( "File (%s) can not create\n", targetName );
- return false;
- }
- while( (!feof( fpIn)) && (cpySize) )
- {
- readSize = fread( readBuf, 1, MIN(TMP_BUFFER_SIZE,cpySize), fpIn );
- if( readSize < 0 ) return true;
-
- fwrite( readBuf, 1, readSize, fpOut );
- cpySize -= readSize;
- }
- fclose( fpOut );
- return true;
- }
- bool separateBasicPacket()
- {
- if( !isLoadBasicPacket() ) return true;
- showMsg( "miBasicPacketImage: %s\n", miBaseImageName );
- bool ret = true;
- FILE *fpIn= fopen( miBaseImageName, "rb" );
- if( fpIn == NULL ) return false;
- if( ret ) ret = outputFileContent( BASEIMAGE_SAVE, fpIn, SAVEINFO_SIZE );
- if( ret ) ret = outputFileContent( BASEIMAGE_CODETMP, fpIn, CONFIG_CODE_FLASH_SIZE*1024 );
- if( ret ) ret = generateDecryptFlashBin( BASEIMAGE_CODETMP, BASEIMAGE_CODEBIN );
- #if( CONFIG_DATA_FLASH_SIZE != 0 )
- if( ret ) ret = outputFileContent( BASEIMAGE_DATATMP, fpIn, CONFIG_DATA_FLASH_SIZE*1024 );
- if( ret ) ret = generateDecryptFlashBin( BASEIMAGE_DATATMP, BASEIMAGE_DATABIN );
- #endif
- fclose( fpIn );
- return ret;
- }
- //-------------------------------------------------------------------------------
- bool loadBasicPacket()
- {
- if( !separateBasicPacket() ) return false;
- return true;
- }
|