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

河南郑州网站建设哪家公司好商场装修

河南郑州网站建设哪家公司好,商场装修,电影网站怎么做关键词,网站搭建团队项目场景#xff1a; 在OTA中#xff0c;FLASH通常被划分为以下几种类型 bootloaderiapappbootloaderappapp保存区bootloaderapp1app2 不同的分区方式有不同的有点#xff0c;但是共同点都是需要执行分区跳转 问题1描述 但在分区跳转过程中遇到过使用不同的编译器不能跳转…项目场景 在OTA中FLASH通常被划分为以下几种类型 bootloaderiapappbootloaderappapp保存区bootloaderapp1app2 不同的分区方式有不同的有点但是共同点都是需要执行分区跳转 问题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后分区无法相互跳转度娘说要跳转前需要关闭全局中断、关闭外设。我采用的分区方式是bootloaderiapappboot跳转前关闭中断和外设后跳转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://www.yutouwan.com/news/161689/

相关文章:

  • 常州网站制作套餐python制作视频网站开发
  • 十堰网站建设是什么防城港做网站的
  • wordpress 调用最新文章谷歌seo需要做什么
  • 佛山专业做企业网站百度云建站
  • 找人做网站注意哪些kuler网站
  • 网站建设更新中英文网站模板下载
  • 国外优秀购物网站网站建设编程软件
  • 鞍山网站怎么做出来的做国外网站关键词用写
  • wordpress 企业版Wordpress校内优化
  • 三门网站建设wordpress cpu飙升
  • 注册企业营业执照需要什么条件青岛seo优化公司
  • 北京企业建站公司南阳做网站哪家好
  • 外贸网站建设优化中企动力成都分公司网站建设案例
  • nas 可以做网站吗wordpress 插件教程
  • 贸易公司自建免费网站网站后台验证码不显示
  • 大连做网站的公司福州门户网站建设
  • 做营销型网站 推广的好处简约网站版式
  • seo爱站网临沂专业网站制作公司
  • 网站如何在百度上做推广方案个人简历网页制作教程
  • 爱站网长尾词挖掘邢台网站改版开发
  • 个体营业执照可以做网站嘛wordpress 跳转页面
  • 袜子网站建设规划书玉林市网站建设
  • 重庆手机网站推广方法石家庄网站建设的公司
  • 网站网址前的小图标怎么做的浙江综合网站建设配件
  • 网站建设公司做网站要多少费用上海嘉定网站建设
  • 还有哪些方法让网站更加利于seo中英文网站价格
  • 如何做网站网页免费营销网站的基本要素
  • 苏州做网站哪家比较好分类信息网站如何做优化
  • 马鞍山网站建设报价二级建造师报名入口官网
  • 自助式网站软件推广方式