针对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源码的修改,请高手帮忙看下,谢谢!
...全文
263 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是官方开发的版本么?从哪下载的?
下载代码方式:https://pan.quark.cn/s/317a849e89f2 ### H264编码机制及I帧、B帧与P帧的详细阐释#### 一、H264编码标准的概况H264是一种先进视频压缩标准,在多种视频场景和媒介中得到了普遍应用,包括网络视频传输、蓝光存储介质、高清电视广播等领域。与MPEG-2等早期规范相比,H264能够实现更优化的压缩效率,同时在维持图像清晰度方面表现卓越。这种优势主要源于H264采用了创新的编码策略,涵盖了帧内编码与帧间编码技术,并对不同类型帧(I帧、P帧、B帧)进行了高效整合。#### 二、H264编码的核心原理H264编码的基本理念是通过消除视频信号中的空间冗余和时间冗余来达成高效压缩。具体而言,H264充分运用了相邻帧间图像内容的相似度,以及帧内图像元素彼此间的关联性。统计分析显示,相邻帧之间的像素值差异普遍较小,因此H264能够有效利用这种相似性来削减必要的数据存储或传输容量。#### 三、I帧、P帧与B帧的详细说明H264中的帧被划分为三类:I帧(帧内编码帧)、P帧(前向预测编码帧)和B帧(双向预测内插编码帧)。这些帧类型的运用有助于提升压缩效能,并且它们在视频流中的布局和组合方式也会影响解码阶段的资源消耗。##### 1. I帧(Intra Frame)- **定义**:I帧是一个自包含的帧,包含了该帧完整的图像数据。这意味着在解码I帧时无需参照任何其他帧。- **特性**: - I帧是全帧压缩编码帧,通常采用JPEG压缩技术。 - I帧无需考虑运动矢量,因为它是基于当前帧的像素数据进行压缩。 - I帧可作P帧和B帧的参考基准,其质量直接影响后续帧的解码表现。 - 由于I帧包含完整的图像信息,因此其数据量相对较大...

21,619

社区成员

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

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