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

2020年建站公司还有前途吗seo关键词排行优化教程

2020年建站公司还有前途吗,seo关键词排行优化教程,b2b与b2c的概念区别,网站的首页设计IAP(In Application Programming)简介 Flash够大的情况下,上电后的程序通过修改 MSP 的方式,可以在一块Flash上存在多个功能差异的程序。 IAP是为了在执行正常功能前,为了升级功能,提前运行的一段程序。这…

IAP(In Application Programming)简介

Flash够大的情况下,上电后的程序通过修改 MSP 的方式,可以在一块Flash上存在多个功能差异的程序。

IAP是为了在执行正常功能前,为了升级功能,提前运行的一段程序。这个程序不执行正常的功能操作,而只是通过某种通信方式(如 USB、USART)接收程序或数据,执行对第二部分代码的更新;
1)检查是否需要对第二部分代码进行更新
2)如果不需要更新则转到 4)
3)执行更新操作
4)跳转到第二部分代码执行

第一部分称为bootloader程序,第二部分称为APP。可以有多个APP,STM的APP可以运行在Flash或者SRAM中

在 0x1FFF F000 这个地址上官方写入了一段 BootLoader 用户使用,我们也可以自己写一段 BootLoader 程序方便自己使用,是我们自己把程序分成了 BootLoader部分和 应用程序部分,大概的意思如下图所示:
在这里插入图片描述

为什么要使用用户 BootLoader :

在有些项目中,可能因为某些原因需要经常更换 程序,如果每次都是重新烧录,特别的麻烦,那么我们就可以自己设计一个 BootLoader,通过 SD卡进行升级:
上电后先运行 BootLoader,BootLoader主要工作是检测是否有SD卡,SD卡中是否有需要的BIn文件,
如果检测到就将其复制到 应用程序区域 使得程序得以更新,更新结束以后跳转到应用程序执行;
如果没检测到相应的SD卡,就说明程序不需要更新,也跳转到应用程序执行;

STM32的启动模式

单片机复位

从0x0000 0000启动

单片机的复位方式有3种:上电复位,硬件复位,软件复位

且离开复位状态后,CM4 内核做的第一件事就是读取下列两个 32 位整数的值
在这里插入图片描述
1、从地址 0x0000 0000 处取出堆栈指针 MSP 的初始值,该值就是栈顶地址
2、从地址 0x0000 0004 处取出程序计数器指针 PC 的初始值,该值指向复位后执行的第一条指令

既然这里说stm32都是从0x0000 0000 开始启动的,那为什么我们看到的启动模式是从0x0800 0000,0x2000 0000,0x1FFF F000开始启动呢?

将 0x0000 0000 和 0x0000 0004 两个的地址重映射到其他地址空间,就是启动模式选择。这样访问0x0000 0000就相当于访问0x0800 0000,0x2000 0000或者0x1FFF F000

重映射也就是"启动模式选择"

STM32的启动方式(自举模式)有3种:内部 FLASH内部 SRAM系统存储器
在这里插入图片描述
注:启动引脚的电平:0:低电平;1:高电平;x:任意电平,即高低电平均可

FLASH 启动方式:么内核会从地址 0x0800 0000 处取出堆栈指针 MSP 的初始值,从地址 0x0800 0004 处取出程序计数器指针PC 的初始值。CPU 会从 PC 寄存器指向的地址空间取出的第 1 条指令开始执行程序,就是开始执行复位中断服务程序 Reset_Handler。也就是开始执行中断向量表。

内部 SRAM 启动方式:地址0x00000000 和 0x00000004 被映射到内部 SRAM 的首地址0x20000000 和 0x20000004,内核从SRAM 空间获取内容进行自举。在实际应用中,由启动文件 starttup_stm32f407xx.s 决定了0x00000000 和 0x00000004 地址存储什么内容,链接时,由分散加载文件(sct)决定这些内容的绝对地址,即分配到内部 FLASH 还是内部 SRAM。

系统存储器启动方式:内核将从系统存储器的 0x1FFFF000及 0x1FFFF004 获取 MSP 及 PC 值进行自举。系统存储器是一段特殊的空间,用户不能访问,ST 公司在芯片出厂前就在系统存储器中固化了一段代码。因而使用系统存储器启动方式时,内核会执行该代码,该代码运行时,会为 ISP(In System Program)提供支持,在 STM32F4 上最常见的是检测 USART1 传输过来的信息,并根据这些信息更新自己内部 FLASH 的内容,达到升级产品应用程序的目的,因此这种启动方式也称为 ISP 启动方式。

中断向量表

在这里插入图片描述
stm32的flash内存起始于0x0800 0000,基于 Cortex-M3/M4 内核的微控制器时,其内部通过一张“中断向量表”来响应中断。

中断向量是地址(指向中断服务函数),程序启动后,将首先从“中断向量表”取出复位中断向量的地址,执行复位中断程序完成启动,而这张“中断向量表”的起始地址是 0x0800 0004,当运行中中断来临,STM32的内部硬件机制亦会自动将 PC 指针定位到“中断向量表”处,并根据中断源取出对应的中断向量执行中断服务程序。

加入IAP程序之后,程序运行流程

在这里插入图片描述

复位后执行Reset_Handler后进入IAP升级程序

加入IAP升级程序之后,单片机复位之后,还是从 0x08000004 地址取出复位中断向量的地址,并跳转到复位中断服务程序(Reset_Handler在这个函数中初始化时钟系统等)。在运行完复位中断服务程序之后跳转到 IAP 的 main 函数:

①复位后,从 0x08000004 地址取出复位中断向量的地址并跳转到复位中断服务程序,在运行完复位中断服务程序之后跳转到 IAP 的 main 函数。

执行IAP函数

将APP程序写入指定的flash地址。

执行APP程序的Reset_Handler

执行完IAP程序之后,进入APP函数的中断向量表取出新程序的复位中断向量的地址。并跳转执行APP程序的复位中断服务程序,随后跳转至APP程序的 main 函数

此时STM32F407的FLASH,在不同位置上,共有两个中断向量表。

APP函数执行过程中,如果 CPU 得到一个中断请求,PC 指针仍然会强制跳转到地址0x08000004 中断向量表处,而不是新程序的中断向量表,如图标号④

程序再根据我们设置的中断向量表偏移量,跳转到对应中断源新的中断服务程序中如图标号⑤。

IAP程序设置条件

新程序必须在 IAP 程序之后的某个偏移量为 x 的地址开始;
新程序必须在 IAP 程序之后的某个偏移量为 x 的地址开始;

http://www.hkea.cn/news/723845/

相关文章:

  • web集团网站建设广告投放平台有哪些
  • 大连做网站建设广告资源对接平台
  • 做网站怎么写工作日志泉州网站seo公司
  • wordpress外链站内打开搜索引擎是什么意思啊
  • 做论坛网站需要什么备案新站seo优化快速上排名
  • 动漫网站html百度网盘搜索
  • 怎么看一个网站什么语言做的宝鸡seo培训
  • 数据库网站建设公司他达拉非片
  • 英文商城网站建设搜索引擎营销的特点
  • 易优建站系统图片百度搜索
  • 网站开发不用框架web网站设计
  • 技能网站建设项目需求武汉网络推广外包公司
  • 安卓市场下载手机版优化网站排名技巧
  • 建设网站平台哪个好互联网营销外包推广
  • 工商注册企业名称查询广东seo网站推广代运营
  • 中纪委网站两学一做征文资源平台
  • java高端网站建设现在广告行业好做吗
  • wordpress 制作下载优化关键词怎么做
  • 宁波网站建设哪个公司好百度爱采购推广怎么入驻
  • 重庆市建设工程信息网特种作业企业网站seo多少钱
  • 域名备案做电影网站制作免费个人网站
  • 公司网络营销方案优化设计七年级上册数学答案
  • 网站建设策划方案网址搜索引擎
  • 艺术培训学校系统网站怎么做百度优化是什么
  • 自己的网站做飘窗百度推广账号登录入口
  • 国内好的网站建设国内外十大免费crm软件推荐
  • 淄博品质网站建设百度销售推广
  • 网站建设学习内容网站模板哪家好
  • 建立b2b网站成本微信营销平台系统
  • 学做衣服网 缤纷网站手机百度ai入口