李迟按:经常碰到些笔试题、面试题,将指针、数组、字符串操作及内存的一些东西发挥到极点,本人以为,以内存角度看问题,有时会更清晰。不过,本人能力不怎么行,写完这篇文章后一段时间,又忘了二维数组和指针的指针了。一来年纪大了,记忆力不行,二来一没碰这些东西就会忘得很快。
u-boot移植随笔(16):u-boot技巧二则
u-boot移植随笔(14):困难重重,前路未知
这两周的周末,我都将我的开发板带回家(此处指租的房子)里搞。本来以前根文件系统这一部分是比较简单、容易的,结果搞了很多天,都没进展。第一个周末带回来是解决了u-boot引导内核的问题,第二个周末却解决不了NFS和jffs2的问题,看来我的能力下降了。
u-boot移植随笔(13):u-boot2010.09移植到8MB Nor Flash的S3C2440,第一步搞定(补记)
这个本来是我发在csdn上的帖子,有一次使用搜索引擎时不小心搜索到。于是再将它放到博客里。
u-boot移植随笔(12):关于u-boot引导内核出现“Error: unrecognized/unsupported machine ID (r1 = 0x33f4fee8)”的问题
这个问题同样经典,大意是说u-boot传递的machine id不正确。在网上看到的文章几乎如出一辙:有两种方法,一是修改内核的head.S(具体在./arch/arm/kernel目录下),二是修改u-boot代码。可惜,第二种方法中出现的源代码文件,在我移植的版本中没有发现。
u-boot移植随笔(10):解决引导内核遇到undefined instruction的错误
前天解决了内核不能引导的问题了。在网上搜索了一些资料,才有点明白这个是怎么回事。
不能引导内核时提示的信息各种各样。像ERROR: can’t get kernel image!、Bad Magic Number、 Bad Data CRC这些。这些有时出现,有时又不出现,很是诡异。
不过最严重的还是遇到undefined instruction的错误。
u-boot移植随笔(9):终于解决Nor Flash的问题了
今天解决了困扰我好几个月的问题了。这个问题本来应该在过年前就解决的,但是那个时候死活就是没招。
其实问题很简单:将u-boot下载到内存中,再使用cp命令将u-boot从内存复制到Nor Flash零地址处,之后就可以从新的u-boot启动了。网上说得很轻松,然而实际解决起来却不然。因为,我的Nor Flash是64Mbit的,即8MB。解决封装问题很轻松——开发板上的地址线预留出来了,可以扩大容量。使用并口下载的问题也解决了——到H-JTAG官方论坛上下载对应的配置文件。
u-boot移植随笔(8):EEPROM移植及测试
EEPROM说简单也简单,说难自己也捣鼓好几天。
开发板上的EEPROM是AT24C08,大小1024个字节,使用I2C接口。——严重注意,EEPROM是指设备,而I2C是指接口,两者有着很密切的关系,但不可混淆它们,这点必须注意。
u-boot移植随笔(7):u-boot启动流程简图
u-boot移植随笔(6):自定义u-boot命令点灯
前几天一不小心在CSDN论坛上发帖散分,同时许诺完成点灯就结账,经过努力,终于可以在u-boot的shell中输入自定义的命令来点灯了。下面简单讲一下,但不想深入讲解原理。
u-boot移植随笔(5):u-boot的内存分布图
花了两天时间来专门研究u-boot的内存分布,这个图网上已经有了,但只是大致图形,没有详细、深入解析。所以自己就专门画了图,添加一些东西。
此外,还专门测试了一下u-boot下全局变量、未初始化变量等等的地址分布,也画了一张图。不过好像跟linux下进程的内存分布不太一致,估计是u-boot自己管理内存的——很明显,此时linux还不知道在哪里呢。但是,这些都不妨碍我们学习一些底层的东西。
u-boot移植随笔(4):移植过程问题及解决
这个文章主要记录移植过程中出现的问题及解决方法,但不涉及问题背景。
u-boot移植随笔(3):使用svn进行版本控制
当年做毕业设计时,一时想不开,竟然使用cvs对写的代码进行版本控制,——当研究有一点心得时,只能跟一两个人讨论,这不能不说是我的悲哀。
这几天u-boot没搞什么,都是在研究源代码,已经有一些心得了,但不好用语言表达出来。有些代码的妙处,只能意会,不能言传。
其实很久我就意识到版本控制的好处及作用,只是周边环境不谈这个,只好自己偷偷地一个人研究了。