⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zipimage.c

📁 自己写的adi bf561的bootloader.实现最简单的串口和flash
💻 C
字号:

#include "main.h"
#include "image.h"

#define SWAP_LONG(data) ((unsigned long)                                  \
		         (((unsigned long)(data) >> 24)                 | \
			  ((unsigned long)(data)  << 24)                | \
			  (((unsigned long)(data) >> 8) & 0x0000ff00 )  | \
			   (((unsigned long)(data) << 8) & 0x00ff0000 )))
			   

#define DOWN_ZIP_TMP 0x800000

int DownFileFromUART(char * DistAddr);
int gunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp);
void ChoiceToRun(void);




void DownZipImage(void)
{
   
    
   unsigned long SrcLen; 
   int tmp;
   
   image_header_t * pHead = (image_header_t *)DOWN_ZIP_TMP;
   unsigned char * pSrc = (unsigned char *)(DOWN_ZIP_TMP + 64) ; // sizeof(image_header_t));  
   
   
   
   tmp =  DownFileFromUART((char *)DOWN_ZIP_TMP) ; 
   if (0 != tmp)
     return ;
   
   
   SrcLen = pHead->ih_size;
   SrcLen =    SWAP_LONG(SrcLen);

   printf("\r\nSrcLen=%d " , SrcLen);
   if (pHead->ih_comp != IH_COMP_GZIP)
   {
     printf("\r\nCompress type Is Not IH_COMP_GZIP ");  
   }
   
   gunzip(  (void*)LINUX_RAM_ADDR ,1024*1024*5,
          pSrc ,&SrcLen);
          
   ChoiceToRun();
}

void UnZipFlashImage(void)
{
   unsigned long SrcLen; 
  
   image_header_t * pHead = (image_header_t *)FLASH_PART1;
   unsigned char * pSrc = (unsigned char *)(FLASH_PART1 + sizeof(image_header_t));  
   
   SrcLen = pHead->ih_size;
   SrcLen =    SWAP_LONG(SrcLen);

   printf("\r\nSrcLen=%d " , SrcLen);
   if (pHead->ih_comp != IH_COMP_GZIP)
   {
     printf("\r\nCompress type Is Not IH_COMP_GZIP ");  
   }
   
   gunzip(  (void*)LINUX_RAM_ADDR ,1024*1024*5,
          pSrc ,&SrcLen);
          
   ChoiceToRun();
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -