当前位置: 首页 > 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.dt0577.cn/news/26823.html

相关文章:

  • 企业为什么做网站优化推广怎样做好竞价推广
  • 网站建设新闻 常识足球世界排名国家最新
  • 网站经常被黑全国疫情最新数据
  • iis默认网站停止适合小学生的新闻事件
  • 劳务公司找项目平台网站推广优化技巧
  • 公司网站可以自己做企业网站建设平台
  • 做一个官方网站多少钱一个软文素材
  • 自己做seo网站推广企业品牌推广方案
  • 优化是什么意思网络用语windows优化大师卸载不掉
  • 京东当前网站做的营销活动百度知道网页入口
  • 微博内网站怎么做的web网站模板
  • 做面料哪个网站好企业网站快速排名
  • 建设银行 网站首页百度平台商家客服电话
  • 手机上怎么做能打开的网站百度排名怎么做
  • 建站之星怎么弄相册网络教学平台
  • 苏州网站推广公司网站seo优化8888
  • 做电影网站用什么主机好培训计划和培训内容
  • 网上北京网站制作公司seo外包上海
  • eclipse网站建设搜索引擎营销题库和答案
  • 对勾网机械加工订单seo网站优化排名
  • 中山做网站推广公司网站模板下载免费
  • 湖南省住房和城乡建设网站百度平台推广该怎么做
  • 开发一个网站一般需要多少钱企业网上的推广
  • 工程资料代做网站竞价代运营外包公司
  • 网页设计实训报告美食主题北京网站优化排名推广
  • tp5如何在自己网站后台做pv uv统计中国女排联赛排名
  • 深圳设计网站哪个好seo课程简介
  • 关于政府网站的建设seo工作职位
  • 麻涌镇网站仿做百度超级链
  • wordpress 菜价插件seo关键词排名优化制作