红联Linux门户
Linux帮助

总结下最近两周学习arm linux的过程

发布时间:2008-04-06 15:53:13来源:红联作者:Inwind
  刚开始使用uclinux-dist-2..70130的发布包,2.95的arm-elf- 编译器,目标ARMGDB,可以编译成功,但是一调试就死掉,问题没得到解决,无奈下载uclinux-dist-20040408的发布包,同样的编译环境,编译kernel 2.4成功,可惜目标是AT91的芯片。

  因为手头上有EASYLPC2210的开发版,现在不会自己移植,需要改很多文件阿,没把握,决定使用2.6的内核,依然使用0408的包来 使用2.95的arm-elf-来编译。NXP有2.6.11.8的LPC22XX的补丁,所以在http://opensrc.sec.samsung.com/download.html下载该内核和补丁,替换到原发布包2.6.x,并下载LPC22XX补丁http://www.nxp.com/external/mailman/2005-June,补丁打完之后,编译提示错误,其中有lookup_machine_type(),在arch/arm/kernel/setup.c中,找不到此函数,无奈使用2.4内核中的语句替换掉该函数调用

锟斤拷锟斤拷:
/* struct machine_desc *list; */
/*
* locate machine in the list of supported machines.
*/
/* list = lookup_machine_type(nr); */

extern struct machine_desc __arch_info_begin, __arch_info_end;
struct machine_desc *list;

/*
* locate architecture in the list of supported architectures.
*/
for (list = &__arch_info_begin; list < &__arch_info_end; list++)
if (list->nr == nr)
break;


  解决了这个错误。接下来,一堆变量提示找不到定义,网上找了很久,没找到解决办法,然后下载3.4的arm-elf-编译环境,解决了这个问题,终于编译完成,声称romfs.img,但使用arm-elf-gdb 调试没有通过,找不到可执行文件,这是接下来需要解决的。

  同时想回过头编译2.4内核,发现3.4版本的编译器太高了,编译出错。发现非要用LPC芯片,明显是跟自己过不去啊,linux对三星的芯片的补丁很多啊,应该比其他的方便很多。
文章评论

共有 0 条评论