1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我已经从 nxp 的网站下载了标准的引导加载程序代码。构建代码并加载到 Eval 板中。
它似乎没有跳到应用程序。无法追踪确切的问题。 我使用了以下引导加载程序代码。 代码: #include "timeout.h" #include "comm.h" #include "clock.h" /* 引导加载程序定义 */ /* 引导加载程序接收的应用程序的起始地址 * 应用程序向量表应从该地址开始 * */ #define APP_START_ADDRESS 0x1000 /* 全局变量 */ uint8_t boot_from_comm = 0; /* 用于在 comm 通道上发出活动信号 */ /* 原型 */ void JumpToUserApplication( unsigned int userSP, unsigned int userStartup); /* 主应用程序 */ int main(void) { /* 初始化时钟 */ clock_initi(); /* 初始化通信接口 */ init_comm(); /* 初始化超时 */ init_timeout(); /* 检查是否接收到引导启动或是否发生超时 */ do{ uint8_t word_received = comm_status_rx(); 如果(word_received){ boot_from_comm = 1; comm_download_app(); } } while((!timeout()) & (!boot_from_comm)); /* 禁用所有系统并让设备保持复位状态 */ disable_timeout(); 禁用通信(); 重置时钟(); /* 检查是否加载了有效的应用程序并跳转到它 */ JumpToUserApplication(*((uint32_t*)APP_START_ADDRESS), *((uint32_t*)(APP_START_ADDRESS + 4))); /* 永远不应该从应用程序代码中返回 */ for (;;) {}; /* 永远不要离开 main */ return 0; } /** * 用于跳转到用户应用程序的入口点 * 用户应用程序的向量表必须位于 0x1000 * * */ void JumpToUserApplication( unsigned int userSP, unsigned int userStartup) { /* 检查入口地址被擦除,如果被擦除则返回 */ if(userSP == 0xFFFFFFFF){ return; } /* 设置堆栈指针 */ __asm("msr msp, r0"); __asm("msr psp, r0"); /* 重定位向量表 */ S32_SCB->VTOR = (uint32_t)APP_START_ADDRESS; /* 跳转到应用程序 PC (r1) */ __asm("mov pc, r1"); } ////////////////////////////////////////////// ///////////////////////////// // EOF //////////////// //////////////////////////////////////////////// ////////////// |
|
相关推荐
1个回答
|
|
可能有几个原因导致引导加载程序未能跳转到应用程序:
1. 应用程序的起始地址不正确。请确保应用程序的向量表从正确的地址开始。 2. 应用程序未正确加载到正确的地址。请确保应用程序已正确构建,并已正确地加载到目标设备的内存中。 3. 引导加载程序中的代码存在错误。请确保引导加载程序中的代码没有语法错误或逻辑错误,并已正确构建。 4. 目标设备的硬件或软件出现问题。请确保目标设备的硬件和软件环境正常,没有出现任何异常问题。 为了更好地调试这些问题,您可以尝试使用调试器来检查代码的执行情况,以及查看目标设备的状态和数据。您也可以添加一些调试代码,例如打印调试消息或将变量的状态写入串口或调试接口。这些调试技巧可以帮助您快速排除问题并找出引导加载程序未跳转到应用程序的原因。 |
|
|
|
只有小组成员才能发言,加入小组>>
1932个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36420 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4860 浏览 1 评论
6107 浏览 1 评论
6817 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4248 浏览 0 评论
645浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
641浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
643浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
729浏览 2评论
844浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 00:05 , Processed in 1.088458 second(s), Total 79, Slave 63 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号