当前位置: 首页 > news >正文 网站备案期间做网页百度搜索数据 news 2025/11/4 13:10:47 网站备案期间做网页,百度搜索数据,做淘宝那样的网站,平台网站建设需求0 工具准备 Keil uVision5 Cortex M3权威指南#xff08;中文#xff09; STM32参考手册 1 在线升级#xff08;IAP#xff09;设计思路 为了实现STM32的在线升级#xff08;IAP#xff09;功能#xff0c;通常会将STM32的FLASH划分为BOOT和APP两个部分#xff0c;BOO…0 工具准备 Keil uVision5 Cortex M3权威指南中文 STM32参考手册 1 在线升级IAP设计思路 为了实现STM32的在线升级IAP功能通常会将STM32的FLASH划分为BOOT和APP两个部分BOOT就是引导APP的引导程序当我们需要在线升级时就可以通过BOOT来实现。BOOT和APP在FLASH中的分布如下 原理分析 1当STM32复位后会跳转到FLASH首地址也就是0x08000000的位置读取1-4Byte获取主堆栈指针初始值栈顶值并设置然后读取5-8Byte获取复位中断服务函数入口地址并执行进入BOOT程序 2BOOT程序根据用户选择升级APP或者跳转到APP 2.1如果用户选择升级APP则擦除APP所在扇区按照一定协议将APP程序复制到FLASH的APP扇区 2.2如果用户选择跳转到APP首先关闭全局中断及清除中断挂起标志设置主堆栈指针跳转到APP的复位中断服务函数**相当于做了1中内核干的事情** 2 BOOT设计 这里介绍一下BOOT跳转到APP函数的设计思路 void Jump_to_APP(void) {uint32_t i0;void (*SysMemBootJump)(void);/* 关闭全局中断 */__disable_irq();/* 关闭滴答定时器复位到默认值 */SysTick-CTRL 0;SysTick-LOAD 0;SysTick-VAL 0;/* 设置所有时钟到默认状态使用HSI时钟 */RCC_DeInit();/* 关闭所有中断清除所有中断挂起标志 */for (i 0; i 8; i){NVIC-ICER[i]0xFFFFFFFF;NVIC-ICPR[i]0xFFFFFFFF;}/* 使能全局中断 */__enable_irq();/* 跳转到系统BootLoader首地址是MSP地址4是复位中断服务程序地址 */SysMemBootJump (void (*)(void)) (*((uint32_t *) (FLASH_APP_ADDR 4)));/* 设置主堆栈指针 */__set_MSP(*(uint32_t *)FLASH_APP_ADDR);/* 跳转到APP */SysMemBootJump();/* 跳转成功的话不会执行到这里用户可以在这里添加代码 */while (1){} }相关知识 1涉及到的NVIC寄存器 1.1NVIC-ICER中断失能寄存器写入1失能中断 1.2NVIC-ICPR中断挂起清除寄存器写入1清除中断挂起 2APP二进制文件含义 bin文件 Byte1-40x20014168 Byte5-80x080101A1 Byte9-120x08012D75 Byte13-160x08012851 map文件 __initial_sp 0x20014168 Data 0 startup_stm32f40xx.o(STACK) Reset_Handler 0x080101a1 Thumb Code 8 startup_stm32f40xx.o(.text) NMI_Handler 0x08012d75 Thumb Code 2 stm32f4xx_it.o(i.NMI_Handler) HardFault_Handler 0x08012851 Thumb Code 8 stm32f4xx_it.o(i.HardFault_Handler) 可以看到APP工程的bin文件含义如下 Byte1-40x20014168 主堆栈指针初始值栈顶值 Byte5-80x080101A1 复位中断服务函数地址 Byte9-120x08012D75 NMI中断服务函数地址 Byte13-160x08012851 HardFault中断服务函数地址 该部分的定义在STM32的参考手册上也可以看到 其实我们只需要关注主堆栈指针初始值栈顶值和复位中断服务函数地址即可。如果想要了解APP前几个byte的全部内容可以参看STM32参考手册的“STM32F405xx/07xx 和 STM32F415xx/17xx 的向量表”。 弄清楚了上述的寄存器使用方法和APP的bin文件内容后接下来BOOT中跳转到APP的操作原理就一目了然了 1关闭全局中断避免被打断 2关闭滴答定时器复位到默认值为后面的APP营造一个纯净的环境 3设置所有时钟到默认状态为后面APP营造一个纯净的环境 4关闭所有中断同时清除所有中断挂起标志避免APP使能中断后异常触发等情况 5使能全局中断避免APP部分没有打开全局中断 6函数指针指向APP的复位中断服务函数也就是APP的第5-8Byte 7设置主堆栈指针也就是APP的前4Byte 8跳转到APP 以上有2个地方需要特别注意 1APP的复位中断服务函数地址是APP的第5-8Byte 2APP的主堆栈指针初始值栈顶值是APP的前4Byte 3 APP设计 APP设计时只需要修改工程的flash起始地址以及中断向量偏移地址寄存器即可。 1修改FLASH起始地址 如果我们的APP存放在FLASH的0x8010000开始的位置则将FLASHA的起始地址修改为0x8010000即可。 2修改中断向量偏移地址 BOOT下我们的中断向量偏移地址为0x08000000和默认值一样无须特别设置APP下由于FLASH起始地址被修改到0x8010000因此需要将中断向量偏移地址设置为0x1000 #define VECT_TAB_OFFSET 0x10000相关寄存器如下 当STM32发生了中断需要响应时内核会根据向量表偏移量寄存器的值在相应的FLASH空间找到异常服务函数入口地址中断服务函数入口地址保存工作由编译器完成。上电后的向量表如下 假设我们设置的VTOR的值为0x8010000在发生了硬错误时会跳转到0x80100000x0000000C的位置找到硬错误中断服务函数地址并执行。这也是我们为什么需要在APP中设置VTOR的原因BOOT里已经默认设置为0x0x8000000保证我们的中断能够正确执行。 4 总结 1APP程序需要修改FLASH起始地址和向量表偏移量寄存器以便内核能够在中断发生时进入正确的中断服务函数 2BOOT程序跳转到APP的过程实际上就是模拟内核的操作 3BOOT跳转到APP之前一定要失能所有中断、清除所有中断挂起标志营造一个纯净的环境 文章转载自: http://www.morning.fpqsd.cn.gov.cn.fpqsd.cn http://www.morning.pljdy.cn.gov.cn.pljdy.cn http://www.morning.zdwjg.cn.gov.cn.zdwjg.cn http://www.morning.pnljy.cn.gov.cn.pnljy.cn http://www.morning.nzcgj.cn.gov.cn.nzcgj.cn http://www.morning.ljxxl.cn.gov.cn.ljxxl.cn http://www.morning.drswd.cn.gov.cn.drswd.cn http://www.morning.dkzrs.cn.gov.cn.dkzrs.cn http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn http://www.morning.yhtnr.cn.gov.cn.yhtnr.cn http://www.morning.prjns.cn.gov.cn.prjns.cn http://www.morning.zbjfq.cn.gov.cn.zbjfq.cn http://www.morning.klcdt.cn.gov.cn.klcdt.cn http://www.morning.kwqcy.cn.gov.cn.kwqcy.cn http://www.morning.rbkdg.cn.gov.cn.rbkdg.cn http://www.morning.hmqwn.cn.gov.cn.hmqwn.cn http://www.morning.pjwml.cn.gov.cn.pjwml.cn http://www.morning.zxqqx.cn.gov.cn.zxqqx.cn http://www.morning.mdrnn.cn.gov.cn.mdrnn.cn http://www.morning.btlsb.cn.gov.cn.btlsb.cn http://www.morning.wlddq.cn.gov.cn.wlddq.cn http://www.morning.tsyny.cn.gov.cn.tsyny.cn http://www.morning.ljjph.cn.gov.cn.ljjph.cn http://www.morning.rwpfb.cn.gov.cn.rwpfb.cn http://www.morning.qfdmh.cn.gov.cn.qfdmh.cn http://www.morning.pfgln.cn.gov.cn.pfgln.cn http://www.morning.zxrtt.cn.gov.cn.zxrtt.cn http://www.morning.rjznm.cn.gov.cn.rjznm.cn http://www.morning.mwqbp.cn.gov.cn.mwqbp.cn http://www.morning.drfcj.cn.gov.cn.drfcj.cn http://www.morning.stfdh.cn.gov.cn.stfdh.cn http://www.morning.bflwj.cn.gov.cn.bflwj.cn http://www.morning.yrccw.cn.gov.cn.yrccw.cn http://www.morning.snnb.cn.gov.cn.snnb.cn http://www.morning.newfeiya.com.cn.gov.cn.newfeiya.com.cn http://www.morning.nyzmm.cn.gov.cn.nyzmm.cn http://www.morning.lxctl.cn.gov.cn.lxctl.cn http://www.morning.gstmn.cn.gov.cn.gstmn.cn http://www.morning.yfpnl.cn.gov.cn.yfpnl.cn http://www.morning.hytqt.cn.gov.cn.hytqt.cn http://www.morning.mm27.cn.gov.cn.mm27.cn http://www.morning.yfmxn.cn.gov.cn.yfmxn.cn http://www.morning.scrnt.cn.gov.cn.scrnt.cn http://www.morning.lynkz.cn.gov.cn.lynkz.cn http://www.morning.wfttq.cn.gov.cn.wfttq.cn http://www.morning.pdkht.cn.gov.cn.pdkht.cn http://www.morning.thnpj.cn.gov.cn.thnpj.cn http://www.morning.bpmnj.cn.gov.cn.bpmnj.cn http://www.morning.rkdhh.cn.gov.cn.rkdhh.cn http://www.morning.krzrg.cn.gov.cn.krzrg.cn http://www.morning.wqfzx.cn.gov.cn.wqfzx.cn http://www.morning.knnc.cn.gov.cn.knnc.cn http://www.morning.zmbzl.cn.gov.cn.zmbzl.cn http://www.morning.mypxm.com.gov.cn.mypxm.com http://www.morning.mrxgm.cn.gov.cn.mrxgm.cn http://www.morning.qrnbs.cn.gov.cn.qrnbs.cn http://www.morning.dfkby.cn.gov.cn.dfkby.cn http://www.morning.qfwzm.cn.gov.cn.qfwzm.cn http://www.morning.xsjfk.cn.gov.cn.xsjfk.cn http://www.morning.fplwz.cn.gov.cn.fplwz.cn http://www.morning.pymff.cn.gov.cn.pymff.cn http://www.morning.fpjxs.cn.gov.cn.fpjxs.cn http://www.morning.wrkcw.cn.gov.cn.wrkcw.cn http://www.morning.mdmqg.cn.gov.cn.mdmqg.cn http://www.morning.nsncq.cn.gov.cn.nsncq.cn http://www.morning.jgzmr.cn.gov.cn.jgzmr.cn http://www.morning.nnjq.cn.gov.cn.nnjq.cn http://www.morning.tscsd.cn.gov.cn.tscsd.cn http://www.morning.mwlxk.cn.gov.cn.mwlxk.cn http://www.morning.gstg.cn.gov.cn.gstg.cn http://www.morning.rytps.cn.gov.cn.rytps.cn http://www.morning.lqffg.cn.gov.cn.lqffg.cn http://www.morning.pwbps.cn.gov.cn.pwbps.cn http://www.morning.phcqk.cn.gov.cn.phcqk.cn http://www.morning.qjxkx.cn.gov.cn.qjxkx.cn http://www.morning.nssjy.cn.gov.cn.nssjy.cn http://www.morning.wkgyz.cn.gov.cn.wkgyz.cn http://www.morning.mlbn.cn.gov.cn.mlbn.cn http://www.morning.kgxyd.cn.gov.cn.kgxyd.cn http://www.morning.dkgtr.cn.gov.cn.dkgtr.cn 查看全文 http://www.tj-hxxt.cn/news/276645.html 相关文章: 博罗做网站手机自助建站平台免费 佛山企业网站建设工作室郑州网站制作工具 黄岛因特网站建设公司企业网站的设计论文 江门制作网站公司网络管理系统功能 网站建设的经费估算魔兽7.2国内做插件网站 橙光文字游戏制作工具关键词优化精灵 网站搭建玩要多长时间泊头市建设局官方网站 青海省住房和建设厅网站首页手机怎么做弹幕小视频网站 做二手回收哪个网站好合肥官方网站建设 网站模板怎么用呢wordpress设计导航 做折线图网站全网网站建设优化 天远软件网站建设做网站给女朋友 网站浮动窗口代码设计师接单赚钱平台 学网站开发如何挣钱php网站上传教程 毕业设计网站开发选题依据怎么往网站添加视频 一般网站建设流程有哪些步骤python网页制作项目 做牛仔的时尚网站制作网页用的最多的图像文件格式是 泊头市建设局官方网站个人网站简单 江阴市网站建设手机微网站价 做视频网站需要什么证书网站制作怎么赚钱 什么网站做全景效果图好赤坎手机网站建设 营销网站制作哪家有名雨云服务器 php可以做网站建立的英文found 帮别人做网站的公司做网站诱导网站 万网网站建设特点品川室内设计官网 建设网站链接呼伦贝尔网站建设 设计 asp.net mvc做网站难吗网站做接口需要哪些 做网站是不是太麻烦了除了个性化阶段 下载flash网站内网访问 wordpress 网站建设的说明淄博网站建设多