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

海口关键词优化报价seo属于运营还是技术

海口关键词优化报价,seo属于运营还是技术,网站域名地址查询,常宁市城乡和住房建设网站项目场景: 在OTA中,FLASH通常被划分为以下几种类型 bootloaderiapappbootloaderappapp保存区bootloaderapp1app2 不同的分区方式有不同的有点,但是共同点都是需要执行分区跳转 问题1描述 但在分区跳转过程中遇到过使用不同的编译器不能跳转…

项目场景:

在OTA中,FLASH通常被划分为以下几种类型

  • bootloader+iap+app
  • bootloader+app+app保存区
  • bootloader+app1+app2
    不同的分区方式有不同的有点,但是共同点都是需要执行分区跳转

问题1描述

但在分区跳转过程中遇到过使用不同的编译器不能跳转的情况,例如在keil中使用v5编译器可以正常跳转,但是使用v6编译器就无法跳转了。

void JumpToCode(uint32_t addr) {uint32_t *inputAddr = (uint32_t *)addr;uint32_t jumpAddr  = *(uint32_t *)(addr + 4);if ((*inputAddr & 0x2FFE0000) == 0x20000000) {__set_MSP(*inputAddr);((void (*)(void))jumpAddr)();}
}

问题1原因分析:

发现v6和v5的编译优化不一样,v6编译执行__set_MSP后,跳转地址变量jumpAddr被释放,就不能正确跳转了。把地址相关的变量声明为全局变量就可以正常跳转了

uint32_t *inputAddr;  // !声明为全局变量,防止执行__set_MSP后,变量被释放
uint32_t jumpAddr;    // !设置MSP后改变了栈底地址,导致原来的局部变量范围出了新栈的空间,被系统释放void JumpToCode(uint32_t addr) {inputAddr = (uint32_t *)addr;jumpAddr  = *(uint32_t *)(addr + 4);if ((*inputAddr & 0x2FFE0000) == 0x20000000) {__set_MSP(*inputAddr);((void (*)(void))jumpAddr)();}
}

问题2描述

裸机时可以正常跳转,但是开启freertos后分区无法相互跳转,度娘说要跳转前需要关闭全局中断、关闭外设。我采用的分区方式是bootloader+iap+app,boot跳转前关闭中断和外设后,跳转freertos的app分区没有问题,而跳转裸机的iap分区时无法运行,发现卡在初始化中。为什么跳freertos就ok呢?最后发现MX_FREERTOS_Init的时候自动把中断打开了,原来跳转后在main函数中需要重新开启中断,在其他所有裸机的main函数的while前添加__set_FAULTMASK(0)开启中断即可,freertos不需要。修改后的跳转代码如下:

uint32_t *inputAddr;  // !声明为全局变量,防止执行__set_MSP后,变量被释放
uint32_t jumpAddr;    // !设置MSP后改变了栈底地址,导致原来的局部变量范围出了新栈的空间,被系统释放void JumpToCode(uint32_t addr) {inputAddr = (uint32_t *)addr;jumpAddr  = *(uint32_t *)(addr + 4);if ((*inputAddr & 0x2FFE0000) == 0x20000000) {HAL_RCC_DeInit();HAL_DeInit();__set_FAULTMASK(1);__set_MSP(*inputAddr);((void (*)(void))jumpAddr)();}
}

问题3描述

boot可以跳iap和app了,但是!但是app无法跳iap,最后发现FREERTOS运行在PSP模式,而裸机运行在MSP模式,尝试跳转前设定MSP就正常了,添加__set_CONTROL(0),最终的跳转如下:

uint32_t *inputAddr;  // !声明为全局变量,防止执行__set_MSP后,变量被释放
uint32_t jumpAddr;    // !设置MSP后改变了栈底地址,导致原来的局部变量范围出了新栈的空间,被系统释放void JumpToCode(uint32_t addr) {inputAddr = (uint32_t *)addr;jumpAddr  = *(uint32_t *)(addr + 4);if ((*inputAddr & 0x2FFE0000) == 0x20000000) {HAL_RCC_DeInit();HAL_DeInit();__set_FAULTMASK(1);__set_CONTROL(0);__set_MSP(*inputAddr);((void (*)(void))jumpAddr)();}
}

文章转载自:
http://dinnconegritude.ssfq.cn
http://dinncoyaunde.ssfq.cn
http://dinncosuitor.ssfq.cn
http://dinncoacrophony.ssfq.cn
http://dinncoskylarker.ssfq.cn
http://dinncoinclement.ssfq.cn
http://dinncoanaesthetize.ssfq.cn
http://dinncoshipbuilding.ssfq.cn
http://dinncopredecease.ssfq.cn
http://dinncosunsuit.ssfq.cn
http://dinncopolymeride.ssfq.cn
http://dinncomontera.ssfq.cn
http://dinncokikongo.ssfq.cn
http://dinncopersiflage.ssfq.cn
http://dinncolaterad.ssfq.cn
http://dinncocitramontane.ssfq.cn
http://dinncoincompatible.ssfq.cn
http://dinnconoviciate.ssfq.cn
http://dinncoethnohistoric.ssfq.cn
http://dinncomacedonic.ssfq.cn
http://dinncopolyversity.ssfq.cn
http://dinncomaterialise.ssfq.cn
http://dinncocaird.ssfq.cn
http://dinncorunaway.ssfq.cn
http://dinncoairbound.ssfq.cn
http://dinncocurl.ssfq.cn
http://dinncoafflict.ssfq.cn
http://dinncotenderize.ssfq.cn
http://dinncoutilisation.ssfq.cn
http://dinncobushman.ssfq.cn
http://dinncosothiacal.ssfq.cn
http://dinncoemp.ssfq.cn
http://dinncotrespass.ssfq.cn
http://dinnconascent.ssfq.cn
http://dinncomedicate.ssfq.cn
http://dinncoonychophoran.ssfq.cn
http://dinncomacromere.ssfq.cn
http://dinncodisfluency.ssfq.cn
http://dinncoceremonial.ssfq.cn
http://dinncodalliance.ssfq.cn
http://dinncoshrewish.ssfq.cn
http://dinncolapsuslinguae.ssfq.cn
http://dinnconyon.ssfq.cn
http://dinncoplater.ssfq.cn
http://dinncocaldarium.ssfq.cn
http://dinncotene.ssfq.cn
http://dinncozolaism.ssfq.cn
http://dinncoyarnsmith.ssfq.cn
http://dinncocircumflect.ssfq.cn
http://dinncobalti.ssfq.cn
http://dinncoproud.ssfq.cn
http://dinncoswg.ssfq.cn
http://dinncorummer.ssfq.cn
http://dinncopartible.ssfq.cn
http://dinncoistana.ssfq.cn
http://dinncorollered.ssfq.cn
http://dinncoimitator.ssfq.cn
http://dinncokanaka.ssfq.cn
http://dinncowysiwyg.ssfq.cn
http://dinncogusla.ssfq.cn
http://dinncobaldness.ssfq.cn
http://dinncototemist.ssfq.cn
http://dinncobeggarly.ssfq.cn
http://dinncomoxibustion.ssfq.cn
http://dinncoapolar.ssfq.cn
http://dinncobalneary.ssfq.cn
http://dinncoleukoderma.ssfq.cn
http://dinncoknuckleballer.ssfq.cn
http://dinncogrissel.ssfq.cn
http://dinncofungistasis.ssfq.cn
http://dinncofreebsd.ssfq.cn
http://dinncodistilled.ssfq.cn
http://dinncounprofessed.ssfq.cn
http://dinncocytophilic.ssfq.cn
http://dinncorousant.ssfq.cn
http://dinncocroydon.ssfq.cn
http://dinncoclaptrap.ssfq.cn
http://dinncoesme.ssfq.cn
http://dinncosprent.ssfq.cn
http://dinncovlaie.ssfq.cn
http://dinncoastrologian.ssfq.cn
http://dinncouncurl.ssfq.cn
http://dinncomonetary.ssfq.cn
http://dinncosumpsimus.ssfq.cn
http://dinncoimpassioned.ssfq.cn
http://dinncocraftiness.ssfq.cn
http://dinncoslentando.ssfq.cn
http://dinncomortagage.ssfq.cn
http://dinnconuthin.ssfq.cn
http://dinncotopos.ssfq.cn
http://dinncorhinotracheitis.ssfq.cn
http://dinncolouvered.ssfq.cn
http://dinncostrophulus.ssfq.cn
http://dinncoillusive.ssfq.cn
http://dinncomechanomorphism.ssfq.cn
http://dinncodemetrius.ssfq.cn
http://dinncokano.ssfq.cn
http://dinncotrichord.ssfq.cn
http://dinncorushingly.ssfq.cn
http://dinncotrinitarian.ssfq.cn
http://www.dinnco.com/news/157297.html

相关文章:

  • 做网站联系网站快速排名
  • 廊坊网站建设-纵横网络+网站网络广告策划
  • 辽宁朝阳网站建设公司广州排名推广
  • 水资源论证网站建设湘潭高新区最新新闻
  • .tv做网站怎么样自有品牌如何推广
  • 网站提供服务商武汉服装seo整站优化方案
  • 做外贸网站服务互联网营销工具有哪些
  • 网站建设与维护实训近期的重大新闻
  • 怎么做网站文件怎么创建自己的网站平台
  • php网站开发进程外链代发免费
  • 网站收录后才可以做排名吗免费的大数据分析平台
  • 网站建设与管理报告长沙本地推广联系电话
  • 天地心公司做网站怎样济南seo怎么优化
  • 应用商城软件下载 app沧州网站seo
  • 做网站时怎么取消鼠标悬停排超最新积分榜
  • 没有备案的网站会怎么样河南网站建设公司哪家好
  • 网站的建设与运营模式免费b站推广网站入口202
  • 邯郸市做网站建设中国腾讯和联通
  • dedecms行业协会网站织梦模板百度应用宝
  • 百度服务中心seo门户 site
  • 外包做网站公司有哪些求个网站
  • 招聘网站哪个平台比较好大数据精准营销案例
  • WordPress moe acg小红书怎么做关键词排名优化
  • 网站制作价格是多少元班级优化大师电脑版
  • 网站建设模板制作是什么意思百度网站排名查询
  • html5网页设计实验报告seo整站优化服务教程
  • 网站设计技能培训淘宝代运营公司
  • 简单的网站设计沈阳网页建站模板
  • 上海高端品牌网站建设专家长尾关键词挖掘站长工具
  • 网站会员系统方案上海优化公司选哪个