针对at91rm9200芯片,从外部nor flash启动ubtoot遇到的问题

mimic784887927 2014-07-22 05:16:01
硬件环境(选用的优龙公司的Yl9200开发板):
nor flash芯片选用的是intel的E28f128j3a
cpu芯片选用的是at91rm9200
uboot选用的版本为1.1.1
通过内部启动uboot时,uboot已经能够正常启动,但是将uboot通过nor flash启动时,遇到的问题如下。
1、移植好的uboot通过内部启动时,已经可以在sdram中运行。
2、从网上下载引导uboot启动的boot源码进行编译生成boot.bin文件,然后将boot.bin文件烧写到0x10000000地址,uboot.gz文件烧写到0x10010000地址时,发现uboot无法启动。引导文件卡在解压uboot.gz文件的地方,通过对boot源码进行分析,在解压uboot数据时,程序卡死在如下函数中:

static int fill_inbuf()
{
AT91F_DBGU_Printk("\n\r fill_inbuf is execing--lqs1\n\r");
//AT91F_DBGU_Printk(insize);
if (insize != 0) { //程序卡死
AT91F_DBGU_Printk("\n\r fill_inbuf ran out of input data--lqs2\n\r");
error("ran out of input data\n");
}

AT91F_DBGU_Printk("\n\r fill_inbuf is execing--lqs3\n\r");
AT91F_DBGU_Printk("\n\r fill_inbuf lqs--4 insize is\n\r");
inbuf = input_data;
insize = input_len;
inptr = 1;
return inbuf[0];
}
3、经分析,以上函数在insize变量不等于0时,程序进入error函数的死循环。
请问boot源码中那些地方需要修改,是因为没有读到uboot.gz在flash中存放的数据吗?还是在boot源码中需要修改对nor flash数据的初始化,本人感觉可能是因为没有读到flash中的数据造成的,但是不知道从何处下手进行boot源码的修改,请高手帮忙看下,谢谢!
...全文
279 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mimic784887927 2014-07-23
  • 打赏
  • 举报
回复
引用 5 楼 zhxianbin 的回复:
那你要追溯 为什么 insize != 0
没有追朔到了,insize变量的初始值就是0了,里面还有一些汇编代码,昨天在网上看了下,有人说是交叉编译工具选用的版本号不对了!我换个交叉编译工具试下了!
zhxianbin 2014-07-22
  • 打赏
  • 举报
回复
那你要追溯 为什么 insize != 0
mimic784887927 2014-07-22
  • 打赏
  • 举报
回复
引用 3 楼 zhxianbin 的回复:
if (insize != 0) 怎么会死循环呢 ?!
error()函数为一个死循环函数! error(char *s) { AT91_debug_printk("...."); while(1); }
zhxianbin 2014-07-22
  • 打赏
  • 举报
回复
if (insize != 0) 怎么会死循环呢 ?!
mimic784887927 2014-07-22
  • 打赏
  • 举报
回复
引用 1 楼 Huntercao 的回复:
[quote=引用 楼主 lv784887927 的回复:] 网上下载引导uboot启动的boot源码进行编译生成boot.bin文件
该boot.bin是官方开发的版本么?从哪下载的?[/quote] 从pudn网站上下载的,看了下里面的代码应该是官方网站开发的版本,请问针对我的开发板,boot代码中应该修改什么呢,谢谢!
曹大夯 2014-07-22
  • 打赏
  • 举报
回复
引用 楼主 lv784887927 的回复:
网上下载引导uboot启动的boot源码进行编译生成boot.bin文件
该boot.bin是官方开发的版本么?从哪下载的?
内容概要:本文围绕水陆两栖无人机的任务规划与执行问题,提出了一种基于Matlab实现的智能路径规划解决方案,重点融合粒子群优化算法(PSO)与遗传算法(GA)进行三维环境下的避障路径规划。研究系统性地构建了从复杂地形建模、任务需求分析到算法设计与仿真实验的完整流程,实现了在多约束、动态障碍物等复杂环境下无人机的高效任务调度。通过对GA与PSO两种智能优化算法在路径长度、收敛速度、路径平滑度及稳定性等方面的对比分析,深入探讨了各自在无人机路径规划中的适用场景与性能差异,验证了所提方法在提升任务执行效率与安全性方面的有效性。该方案不仅适用于水陆交互通用场景,也为多模态无人系统自主导航提供了可扩展的技术框架。; 适合人群:具备一定Matlab编程能力和算法基础,从事无人机路径规划、智能优化算法研究、自动化控制或相关领域科研工作的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于水陆两栖无人机在复杂自然环境(如江河湖海与陆地交错区域)中的自主巡航与任务执行;②比较遗传算法与粒子群算法在三维动态路径规划中的优化性能,指导实际工程中算法选型;③为多约束条件下无人系统的自主决策与实时避障提供算法支持与仿真验证平台。; 阅读建议:建议读者结合提供的Matlab代码进行动手实践,重点关注两种算法的数学建模过程、适应度函数设计、参数调优策略及路径生成逻辑,通过仿真实验直观对比算法性能差异,深入理解智能优化算法在复杂路径规划问题中的应用机制与优化潜力。

21,620

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧