当前位置: 首页 > news >正文

做网站避免上当网站访问量过大

做网站避免上当,网站访问量过大,重庆建设空调网站,搜索网站怎么做什么是OTA 百度百科解释个人理解:就是不通过烧录的方式,通过串口、网口、无线对主板运行的程序进行升级。减少后期的一个维护迭代程序的一个成本。 STM32的OTA升级模块的一个设计 程序启动的一个框架流程图(大致流程) FLASH的一个划分框图 BootLoader…

什么是OTA

  1. 百度百科解释
  2. 个人理解:就是不通过烧录的方式,通过串口、网口、无线对主板运行的程序进行升级。
  3. 减少后期的一个维护迭代程序的一个成本。

STM32的OTA升级模块的一个设计

程序启动的一个框架流程图(大致流程)

在这里插入图片描述

FLASH的一个划分框图

在这里插入图片描述

BootLoader程序

Flash配置头文件(app_flash_conf.h)

#define SIZE_8B (8)
#define SIZE_256B (256)
#define SIZE_512B (512)
#define SIZE_1K   (1024)
#define SIZE_2K   (2048)
#define SIZE_3K   (3072)
#define SIZE_4K   (4092)
#define SYS_CONVERT(type, val) ((type)(val))
// 引导程序大小: 10KB
#define BOOT_AREA_SIZE (SIZE_1K*10)
#define BOOT_START_ADDR FLASH_BASE
// APP: 150KB (应用程序)
#define APP_AREA_SIZE (SIZE_1K*150)
#define APP_START_ADDR SYS_CONVERT(uint32_t,BOOT_START_ADDR+BOOT_AREA_SIZE)
// APP UPGRADE: 150KB (应用升级)
#define APP_UPGRADE_AREA_SIZE (SIZE_1K*150)
#define APP_UPGRADE_START_ADDR SYS_CONVERT(uint32_t,APP_START_ADDR+APP_AREA_SIZE)
// 配置区域: 50KB
#define CONF_AREA_SIZE (SIZE_1K*50)
#define CONF_START_ADDR SYS_CONVERT(uint32_t,APP_UPGRADE_START_ADDR+APP_UPGRADE_AREA_SIZE)
// 数据区域: 130KB
#define DATA_AREA_SIZE (SIZE_1K*130)
#define DATA_START_ADDR SYS_CONVERT(uint32_t,CONF_START_ADDR+CONF_AREA_SIZE)
// 引导数据配置信息:
#define BOOT_INF_ADDR SYS_CONVERT(uint32_t,DATA_START_ADDR+DATA_AREA_SIZE)

OTA配置

头文件(ota_boot_info.h)

#define OTA_UPGRADE_FLAG (0x1389)
typedef struct {uint8_t app_version[6]; // 应用版本uint32_t app_new_version_flag; // 应用新版本标志位
//    uint32_t app_run_addr; // 应用运行地址
//    uint32_t app_upgrade_data_addr; // 应用升级数据地址uint32_t app_upgrade_data_size; // 应用升级数据大小
} APP_Info_t;void Load_App_Info(APP_Info_t *info);void Update_App_Info(APP_Info_t *info);
void Jump_To_App(uint32_t run_addr);void Jump_To_BootLoader(void);

源文件

#include "ota_boot_info.h"
#include "bsp_flash.h"
#include "app_flash_conf.h"typedef void (*pFunction)(void);/*** 加载APP信息* @param dst*/
void Load_App_Info(APP_Info_t *info) {STMFLASH_Read_Base(BOOT_INF_ADDR, info, sizeof(APP_Info_t));
}/*** 更新APP信息* @param dst*/
void Update_App_Info(APP_Info_t *info) {STMFLASH_Write_Base(BOOT_INF_ADDR, info, sizeof(APP_Info_t));
}void Jump_To_BootLoader(void) {__disable_irq();uint32_t JumpAddress;pFunction Jump_To_Application;JumpAddress = *(volatile uint32_t *) (0x00000004);Jump_To_Application = (pFunction) JumpAddress;__set_MSP(*(volatile uint32_t *) JumpAddress);__set_PSP(*(volatile uint32_t *) JumpAddress);Jump_To_Application();
}void Jump_To_App(uint32_t run_addr) {__disable_irq();pFunction jump_app;jump_app = (pFunction) (*(volatile uint32_t *) (run_addr + 0x04));__set_MSP(*(volatile uint32_t *) run_addr);jump_app();
}

待续

http://www.yayakq.cn/news/735964/

相关文章:

  • 网站仿制 个人如何统计网站访问量
  • 作品集展示的网站百度网盘手机版
  • 专业网站优化电话网站建设初级工程师
  • 网站建设标题怎么写西城顺德网站建设
  • 网站不备案可以建设吗盐城做网站多少钱
  • 甘肃网站空间网站建设视频百度网盘下载
  • 网站建设新的开始大连大连建设工程信息网站
  • 工作室网站网站站点结构图怎么做
  • 永州市建设工程质量安全监督站官方网站龙岩网站开发
  • 云南建设厅网站安全处休闲食品网站建设规划书
  • 山东省建设厅网站查帮客户做网站内容
  • .net 网站开发视频教程鲜花店网站建设
  • 龙山县建设局网站vs做网站链接sql
  • 亚马逊deal网站怎么做如何做简洁网站设计
  • 有哪些专做自然风景图片的网站国内手机网站建设
  • 国内有做网游评测的网站么wordpress 整容模板
  • 广州做营销型网站建设专业的上海网站建设公司哪家好
  • 网站维护方式河北省建设银行网站
  • 淘宝领券网站怎么做广州市萝岗区做网站设计服务
  • 网站建设珠江摩尔wordpress.org去除
  • 做自己域名的网站很贵吗网络营销推广方案案例分析
  • 网站页面美食网页制作教程
  • 哈尔滨网站建立公司wordpress 数据库批量
  • 安徽省芜湖建设定额网站做网站要属于无形资产吗
  • 兰州新区城乡建设管理局网站想做网站 优帮云
  • 太湖县住房与建设局网站如何进入网站后台地址
  • 江北网站建设的技术做宣传网站
  • 微信分销网站建设平台网站信息建设
  • 做家电家具回收用哪个网站好wordpress企业建站
  • 网站开发代做域名备案好了怎么建设网站