完善资料让更多小伙伴认识你,还能领取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)遇到问题。 蹲一下解决方案,谢谢 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
7 浏览 0 评论
26 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
13 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
644 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1000 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11770 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 11:33 , Processed in 0.676153 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号