学习W5500的OTA平台的SDK

1判断是否需要升级
#define ApplicationAddress 			0x08008000//boot size is 32K
static uint8 is_app_inside(void)
{
  u32 addr, app_first_4_bytes; 
  addr = ApplicationAddress;
  app_first_4_bytes = *(vu32*)addr; 
  if ((app_first_4_bytes & 0xffffffff) == 0xffffffff)
    return 0;
  else
    return 1;
}

2复位函数app工程

void reset_w5500(void)
{
		GPIO_ResetBits(GPIOB, WIZ_RESET);
		Delay_us(2);  
		GPIO_SetBits(GPIOB, WIZ_RESET);
		Delay_ms(50);
}

//reboot app
void reboot_app(void)
{
  //if using this function, the wwdg should be disabled
  pFunction Jump_To_Application;
  uint32 JumpAddress;
  JumpAddress = *(vu32*) (ApplicationAddress + 0x00000004);
  Jump_To_Application = (pFunction) JumpAddress;
  //initialize user application's stack pointer
  __set_MSP(*(__IO uint32_t *)ApplicationAddress);
  Jump_To_Application();	
}

//reboot 
void reboot(void)
{
  pFunction Jump_To_Application;
  uint32 JumpAddress;
  JumpAddress = *(vu32*) (0x00000004);
  Jump_To_Application = (pFunction) JumpAddress;
  Jump_To_Application();
}

3一个mask函数
//我获得一个文件的size需要保存下来 我需要多少个page呢?
uint32 FLASH_PagesMask(vu32 Size)
{
  u32 pagenumber = 0x0;
  u32 size = Size;

  if((size % 0x400) != 0)
  {
    pagenumber = (size / 0x400) + 1;
  }
  else
  {
    pagenumber = size / 0x400;
  }
  return pagenumber;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值