完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的应用程序程序从外部将升级高级文件写入到我分区的 flashri,bootloaderprogaderPrograderprogres将升级到应用程序区。
但是如何实现跳转呢?有跳转函数数的设计可以参考吗? |
|
相关推荐
3个回答
|
|
如果你使用的不是我们的 DFU 引导加载程序架构,而是自定义的架构,跳转函数可以参考的代码
/* 跳转地址必须对齐到 128 字节*/ void (*flash_Jump) (void);void flash_boot_jump (u int32_t addr) { uint32_t MspValue; uint32_t JumpValue; SCB->RESERVED0 = addr; MspValue = *((uint32_t *)(addr)); JumpValue = *((uint32_t *)(addr+4)); flash_Jump = (void(*)(void))(JumpValue); __set_MSP(MspValue); flash_Jump(); } void bootjumPapp (uint32_t addr) { __disable all interrupt // pseudocode __clear all pending interrupt // pseudocode flash_boot_jump(addr); } |
|
|
|
在PSOC6中,跳转到应用程序的实现主要依赖于Bootloader和Bootloader Launcher两个组件。
1. Bootloader:该组件负责升级过程中的数据传输、校验和存储。它会将升级文件写入到Flash的指定分区中,在写入完成后,它可以通过指定的协议(如UART、USB等)通知Bootloader Launcher准备跳转到应用程序。 2. Bootloader Launcher:该组件负责在合适的时机执行跳转指令,使程序从Bootloader切换到应用程序。它通常位于Bootloader的末尾,并被存储在Flash的特定地址。Bootloader Launcher在启动时判断是否需要跳转到应用程序,若需要,则通过跳转函数实现程序的跳转。 在实现跳转时,需要在Bootloader Launcher中定义一个函数,用于将控制权转移到应用程序的入口点。这个函数通常被命名为“Cy_JumpToApp”或类似的名称。示例代码如下: ```c __attribute__((noreturn)) void Cy_JumpToApp(void) { /* 将中断禁用 */ Cy_SysLib_EnterCriticalSection(); /* 设置应用程序的入口点地址 */ cy_en_reset_t type = CY_SYSLIB_RESET_HWWDT | CY_SYSLIB_RESET_ACT_FAULT; *(uint32_t *)(FLASH_ADDR_APPLICATION_RESET + 4) = FLASH_ADDR_APPLICATION_RESET + 48; /* 关闭所有外设并执行系统软复位 */ Cy_SysLib_SystemReset(type); } ``` 注意,上述示例中,`FLASH_ADDR_APPLICATION_RESET`是应用程序的入口地址。 通过调用`Cy_JumpToApp`函数,Bootloader Launcher可以将控制权转移到应用程序,实现跳转。 需要注意的是,跳转的实现可能因具体的应用场景而有所差异,上述代码仅为示例,具体的跳转函数实现需要根据项目需求进行调整。 |
|
|
|
我遇到一个类似问题,我使用了这段跳转程序,之前在开发板上是可以成功跳转的。现在移植到自己的板子上就遇到问题了。
boot程序跳转时会进入Cy_SysLib_FaultHandler。 开发工具:Modustoobox。工程为单核,CM0没有用。CM4的flash划分为BOOT和APP。 之前在开发板上做的调试版本可以正常跳转,开发板型号是:CY8CKIT-062-BLE 现在移植到我自己的板子上(芯片型号:CY8C6244LQI-S4D92)遇到问题。 蹲一下解决方案,谢谢 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
stm32f407+ksz8863rlli概率性ping不通
478 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-常见网络服务搭建之NFS服务搭建
320 浏览 0 评论
求助:辉芒微芯片 FDM B11GBMH 的信息及开发环境安装
245 浏览 0 评论
867 浏览 0 评论
嵌入式 学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之输入输出重定向
740 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11303 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-28 23:09 , Processed in 0.653921 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号