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

div+css网站后台模板长沙关键词优化推荐

div+css网站后台模板,长沙关键词优化推荐,网站的设计思想,科技通信网站模板下载这次来分享一下IAP串口升级,想必这个是让大家很头疼且又很渴望学会的,这次详细的描述和丝滑的操作,来带大家走一遍这个流程! 本文参考这位大佬的内容:STM32---IAP升级 置顶!!!&…

这次来分享一下IAP串口升级,想必这个是让大家很头疼且又很渴望学会的,这次详细的描述和丝滑的操作,来带大家走一遍这个流程!
本文参考这位大佬的内容:STM32---IAP升级

置顶!!!!

代码放到百度网盘:自取    百度网盘代码链接,提取密码:1111

一.为什么要做IAP升级
1.不易拆卸的设备,可以使用IAP升级,方便用户升级固件
2.YMODEM协议是串口传输协议,传输速率较高,传输文件较大时,传输时间较短
3.不想给别人源代码,但是项目有bug,需要修复,总不能跑几千公里去升级对吧,所以使用IAP升级

总结下来就是实用,所以就做IAP升级

二.既然要做IAP升级,为什么要用YMODEM协议
1 开发板的原因
我用的是STM32F103C8T6,RAM空间只有20kB,Flash空间只有128kB,不能直接串口直接接收完bin文件,如果bin文件稍微大点,那不就GG了要是用的ZET6,那直接定义个55K的串口缓冲接收区,直接接收完bin文件。
 

三、必备知识储备
1.1 Code RO-data RW-data ZI-data
Code:代码区,存放程序代码,只读,程序运行时不能修改

RO-data:只读数据区,存放程序中需要用到的常量,只读,程序运行时不能修改

RW-data:可读写数据区,存放程序中需要用到的变量,可读写,程序运行时可以修改

ZI-data:零初始化数据区,存放程序中需要用到的变量,可读写,程序运行时可以修改,但是初始化为0,程序运行时可以修改,但是初始化为0
FLASH = Code + RO-data + RW-data
RAM = RW-data + ZI-data

1.2  ok  重点来了     重点来了    重点来了 

iap的核心思想就是划分flash空间,看我是如何划分且他们的用途是什么,FLASH总得大小是64K(实际上是128K)大家都这说,我也不知道为什么。

1.3 boot地址(需要修改中断偏移地址

ROM的地址修改为
START:0x8000000
SIZE:0X2FFF(size应小于于APP的起始地址)

1.4 app地址(这里也需要修改中断偏移地址

1.5 所以最后1K大小地址的 起始地址是0x0800FC00

四、一般执行流程

STM32 的内部闪存(FLASH)地址起始于 0x08000000,一般情况下,程序文 件就从此地址开始写入。此外 STM32 是基于 Cortex-M3 内核的微控制器,其内 部通过一张“中断向量表”来响应中断,程序启动后,将首先从“中断向量表” 取出复位中断向量执行复位中断程序完成启动,而这张“中断向量表”的起始地 址是 0x08000004,当中断来临,STM32 的内部硬件机制亦会自动将 PC 指针定 位到“中断向量表”处,并根据中断源取出对应的中断向量执行中断服务程序。 在上图中,STM32 在复位后,先从 0X08000004 地址取出复位中断向量的地 址,并跳转到复位中断服务程序,如图标号①所示;在复位中断服务程序执行完 之后,会跳转到我们的 main 函数,如图标号②所示;而我们的 main 函数一般 都是一个死循环,在 main 函数执行过程中,如果收到中断请求(发生重中断), 此时 STM32 强制将 PC 指针指回中断向量表处,如图标号③所示;然后,根据 中断源进入相应的中断服务程序,如图标号④所示;在执行完中断服务程序以后, 程序再次返回 main 函数执行,如图标号⑤所示。

五、当加入 IAP 程序之后,程序运行流程如下图所示:

在该流程图中,STM32 复位后,还是从 0X08000004 地址取出复位中断向量 的地址,并跳转到复位中断服务程序,在运行完复位中断服务程序之后跳转到 IAP 的 main 函数,如图标号①所示,此部分同前面 STM32 正常流程图一样;在 执行完 IAP 以后(即将新的 APP 代码写入 STM32 的 FLASH,灰底部分。新程 序的复位中断向量起始地址为 0X08000004+N+M),跳转至新写入程序的复位向 量表,取出新程序的复位中断向量的地址,并跳转执行新程序的复位中断服务程 序,随后跳转至新程序的 main 函数,如图标号②和③所示,同样 main 函数为 一个死循环,并且注意到此时 STM32 的 FLASH,在不同位置上,共有两个中断 向量表。 在 main 函数执行过程中,如果 CPU 得到一个中断请求,PC 指针仍强制跳 转到地址 0X08000004 中断向量表处,而不是新程序的中断向量表,如图标号④ 所示;程序再根据我们设置的中断向量表偏移量,跳转到对应中断源新的中断服务程序中,如图标号⑤所示;在执行完中断服务程序后,程序返回 main 函数继 续运行,如图标号⑥所示。 通过以上两个过程的分析,我们知道 IAP 程序必须满足两个要求: ①新程序必须在 IAP 程序之后的某个偏移量为 x 的地址开始; ②必须将新程序的中断向量表相应的移动,移动的偏移量为 x; 本章,我们有 2 个 APP 程序,一个为 FLASH 的 APP,程序在 FLASH 中运 行,另外一个位 SRAM 的 APP,程序运行在 SRAM 中,上图虽然是针对 FLASH APP 来说的,但是在 SRAM 里面运行的过程和 FLASH 基本一致,只是需要设置向量 表的地址为 SRAM 的地址

上面字有点多,但是一定得看!

上面字有点多,但是一定得看!

上面字有点多,但是一定得看!

六、APP程序生成bin文件

具体可以参考我的上一篇文章传送门:keil5生成bin文件

总结:ok  经过上面一顿操作,现在就来到实践环节了。

七、IAP升级应用操作步骤(详细步骤)

1.串口配置,项目中用到的是USART1,PA9(TX),PA10(RX)

2.设置参数

八、设置完成后,将boot程序烧录到开发板,这时候上位机会显示如下图

1.输入1,发送 1 给单片机

2.等待接收到"C"后,发送bin文件

3..发送bin文件,单片机接收完成后打印信息

这时候重新按复位,或者掉电 重新上电,程序还是会执行到app这个程序,主要是在boot和app做了升级标志位。这个很关键

主要代码看下图

boot判断是否要进入升级模式的关键

app代码,每次要更新,都先把boot上面那个地址的值修改,这样boot程序就不需要修改了,每次都用同一个,只需要修改app程序即可,因为boot会一直判断

如果全程跟着步骤到这里,恭喜你,你肯定学会了iap并且实践成功了,以上就是本次分享内容,若对你有帮助,那最好不过,共勉!

http://www.dtcms.com/wzjs/189852.html

相关文章:

  • 广东的一起(17)做网站seo查询源码
  • 网站ico图标放在哪里网站设计模板
  • 桂林网站艰涩百度一下你就知道官网网页
  • 山东省高中生发展报告在哪个网站做国外独立网站如何建站
  • 怎么做有声小说网站播音员抖音关键词搜索指数
  • 海阳手机网站开发百度平台app
  • 东莞品牌网站建设服务网址提交入口
  • 做外贸网站市场分析seo优化策略
  • 企业黄页网站源码鹤壁网站推广公司
  • 做小程序好还是做微网站好pc优化工具
  • 英文b2b网站系统淘宝关键词搜索工具
  • 有那些专门做职业统计的网站如何发布自己的广告
  • 巴南网站建设百家号seo怎么做
  • 兴义网站建设公司百度竞价推广开户内容
  • 重庆怎么制作网站?青岛seo优化公司
  • 网站上做百度广告赚钱么软文广告经典案例短的
  • 西安招标网杭州seo专员
  • 建设网站深圳免费推广的方式有哪些
  • 网站建设可以用350摸板栾城seo整站排名
  • 网站的做网站公司家庭优化大师
  • 找人一起做素材网站网络营销的缺点及建议
  • 成都网站建设推广在超级seo助手
  • wordpress没有样式表上海seo培训中心
  • 做网站页面对PS切图网上销售平台有哪些
  • 做网站zwnet网络推广有哪些途径
  • 网站建设与设计网站seo关键词设置
  • 如何做网站友情链接成都网络推广哪家好
  • 做商业网站没有注册公司百度快速收录接口
  • 怎么做网站加盟产品网络营销策划方案
  • 做网站都需要学什么语言抓取关键词的软件