ld命令初识

这个标题起得不好,不太符合文中意思,但是标题亦表明了事实。关于ld命令,网上资料不多,流传的有ld的中文手册,不过那手册不是给人看的,至少不是给新手看的,太难理解了。

阅读全文>>

gcc-2.95.3安装过程

背景交待:1、正在研究ld、栈帧相关的东西;2、使用高版本编译器得到的添加了诸多内容,不适合研究;3、gcc的2.95.3版本并不是最低的,但它很经典,也当怀念一下吧;4、安装低版本gcc实属研究、兴趣所致,与实际开发并无联系。

阅读全文>>

u-boot移植随笔(17):一些内存地址的再次研究(二维数组及指针数组)

李迟按:经常碰到些笔试题、面试题,将指针、数组、字符串操作及内存的一些东西发挥到极点,本人以为,以内存角度看问题,有时会更清晰。不过,本人能力不怎么行,写完这篇文章后一段时间,又忘了二维数组和指针的指针了。一来年纪大了,记忆力不行,二来一没碰这些东西就会忘得很快。

阅读全文>>

Linux移植随笔:让内核支持nor flash

内核:linux-2.6.37.3nor flash芯片:SST39VF6401B网上有文章说了如何让linux内核支持nor flash。不过那些转载的文章中没有头文件(因为使用了<尖括号>,在一些网页中是不会显示的,详细请参考HTML相关资料)。后来研究了类似的驱动文件,发现它们都是大同小异,只是在一些参数上有改变而已。本文中源代码基于那些转载文章的代码。

阅读全文>>

u-boot移植随笔(14):困难重重,前路未知

这两周的周末,我都将我的开发板带回家(此处指租的房子)里搞。本来以前根文件系统这一部分是比较简单、容易的,结果搞了很多天,都没进展。第一个周末带回来是解决了u-boot引导内核的问题,第二个周末却解决不了NFS和jffs2的问题,看来我的能力下降了。

阅读全文>>

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移植随笔(11):一些内存地址的研究(gd_t和bd_t结构体)

李迟按:学计算机的人不应该对二进制反感,因为计算机只认识0和1,但面对许多枯燥的0和1,有些人望而却步。我大约是大三、大四时候开始强迫自己认真对待二进制的,最早应该是研究SD卡时候,其时主要研究FAT表,使用WinHex工具;后来研究网络协议,主要是ENC28J60芯片,代码是国外一个组织写的,基于AVR芯片,这个实践算是理论结合实践。再后来,慢慢对底层的东西感兴趣,不断看,研究,心里老想着数据在内存中如何分布的(gdb是个强大工具)。现在,对于研究某个文件的结构,直接分析二进制数据是最好的方法。

阅读全文>>