您的位置:首页 > 操作系统 > Uc/OS II > u-boot移植日记2

u-boot移植日记2

来源:网络 作者:luofuchong 时间:2007-02-02 浏览:5448次 标签:
 

  移植:说时迟那时快,现在开始移植工作(以下是我一步步重新做一遍,力求说得详细点,感谢我吧^_^)我以B2板子的程序做为模板来做. #cd u-boot-1.1.2#cd board #cp -R dave myboard (这是我取的板子名字,可以换上你的,但是后面的也要跟着来换哦^_^)
  
  #cd myboard#mv B2 myboards3c44b0 (自己取个板子名) #cd myboards3c44b0 # mv B2.c myboards3c44b0.c 修改myboards3c44b0里面的Makefile, 把B2改成myboards3c44b0,编译时如果报的其它类似找不到B2的错误也是把相应的B2改成myboards3c44b0来处理。

  1)其中的myboards3c44b0.c文件是板的初始化代码,看一下就知道,根据你的板上自带的44binit.s来修改吧。memsetup.S文件主要是存储器的初始化设置,其实也是44binit.s里面的一部分。

  2)其实board这里要修改的不多,先跳过flash部分吧,我们来看一下cpu设置部分吧。u-boot-1.1.2里面已经加入了对s3c44b0的支持,让我们来看一下cpu/s3c44b0里面的部分吧。看到start.S这个文件了吗?要修改的其实并不多,按照你的板设置一下中断跳转矢量就行了,或者上网查一下吧,应该很容易看明的。其中cpu.c这个文件简直不用修改,再来看一下serial.c这个文件吧,改一下波特率的设置就行,就是你用多少M的CPU频率的话对应的波特率参数设置问题,其实B2已经做得不错的了,很多子程序都不用自己写的了^_^,在我的板上是这样设置的,参考一下吧:#if CONFIG_S3C44B0_CLOCK_SPEED==66 ,把所有的这些66改成60,原因,我的实验板上用的频率是60(44B0最高频率为64M)。然后其它分频系数,寄存器初始化设置,可以参考一下44blib.c,在这里我给出我的设置出来吧,可以参考一下。 case 115200:#if CONFIG_S3C44B0_CLOCK_SPEED==60divisor = 32; UFCON0 = 0x0; ULCON0 = 0x03; UCON0 = 0x245; UBRDIV0 = divisor; 我在这方面算术不好,所以都是参考人家的。

  3)好,再加上个头文件:cd u-boot-1.1.2/include/configscp B2.h myboards3c44b0.h这个头文件其实要改的地方还挺多的,我等下再说怎样修改。先回到u-boot.1.1.2目录,

  4)在Makefile里面加上这部分,不会的话就模仿B2来写吧^_^在B2的这部分文件B2_config : unconfig @./mkconfig $(@:_config=) arm s3c44b0 B2 dave后面加上这部分:myboards3c44b0_config : unconfig @./mkconfig $(@:_config=) arm s3c44b0 myboard3c44b0 myboard 切记在@./mkconfig $(@:_config=) arm s3c44b0 myboard3c44b0 myboard前面的是Tab来的,万万不能用空格代替,因为它是靠这个来识别命令的!

  5)好,现在可以在u-boot-1.1.2目录下执行如下命令:Make distclean(还是用这个吧,比较彻底)Make myboards3c44b0_configMake看看有没有错,有错的话按着提示来改,如果没错的话应该就能生成u-boot.bin这个文件,现在还不能用哦,因为这几是B2的一个仿制品而已(注:在我的机上到这一步可没有报错哦,你一步步按着来做的话应该也不会有什么错误吧^_^)

相关文章

推荐