【OK210试用体验】u-boot篇 -- u-boot进一步定制 - 在线问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

【OK210试用体验】u-boot篇 -- u-boot进一步定制

【OK210试用体验】u-boot篇 -- u-boot进一步定制


    从u-boot单板的自定义,到SPL的移植,都还没有完全定制出自己的S5PV210单板信息,还是掺杂着S5PC100/S5PC110的影子,所以要进一步定制。

    对于移植和学习,u-boot中的常用重要文件有:

          arch/arm/cpu/armv7/start.S

          arch/arm/lib/crt0.S

          arch/arm/lib/board.c

          arch/arm/lib/relocate.S

          arch/arm/include/asm/arch-spc1xx/cpu.h

          common/main.c

          include/configs/smdkv210.h

          board/samsung/smdkv210/smdkv210.c

          board/samsung/smdkv210/lowlevel_init.S

    代码文件间的关联可以通过source insight这个强大的工具来查看。

    u-boot.bin从start.S中的reset开始执行,执行一些CPU底层初始化后,跳转到ctr0.S中的_main函数中执行。

     这里涉及到GD_SIZE和gd结构体,GD_SIZE定义在include/generated/generic-asm-offsets.h中,gd结构体在arch/arm/include/asm/global)data.h 和 include/asm-generic/global_data.h 中有相关定义。

     在smdkv210.h中,定义了DRAM 和 text的BASE地址,可以通过修改来指定地址

   

init_sequence

    在board_init_f中调用了重要的初始化数组init_sequence。

    第一个成员arch_cpu_init在arch/arm/cpu/armv7/s5p-commom/cpu_info.c中定义,作用是读取CPU的版本和ID。cpu_info.c打印出CPU型号和时钟信息,这里可以把S5PC110/S5PC100改成S5PV210,修改方法如下:

    CPU的名字在arch/arm/include/asm/arch-spc1xx/cpu.h中得到:

    timer_init成员则是对PWM_timer进行初始化,在arch/arm/cpu/armv7/s5p-commom/timer.c中定义。

    serial_init 是选择默认的串口,如果选择COM0的话,要在。board/samsung/smdkv210/lowlevel_init.S中添加代码。

    display_banner 是打印u-boot相关信息,display_banner定义和board_init_f在同一个代码文件里,这里可以添加自己的显示信息。

    在arch/arm/cpu/armv7/s5pc1xx/clock.c中有对系统时钟的相关操作,主要是获取系统时钟的信息。这里可以为S5PV210定制自己的版本,当然,方法就是模仿S5PC110怎么做,S5PC110跟S5PV210非常相似,只是大小不一,应用在不同环境下而已。 如:

    添加了S5PV210的系统时钟函数之后,要添加宏,一样根据S5PC110来:

    PLL输入时钟为24MHz。

    dram_init 中的初始化在board/samsung/smdkv210/smdkv210.c中。



    这样,又进一步简单的定制了自己的单板信息。


0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /6 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2024-5-6 04:33 , Processed in 0.459866 second(s), Total 34, Slave 24 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表