管理提醒: 本帖被 xoom 执行加亮操作(2013-01-11)
返回学习汇总贴有点晕了,连载继续...
支持跳过PLL和SDRAM初始化,编译出来的bin文件可以下载到SDRAM并运行,方便调试,免得每次修改完程序都要烧写到SD卡0.开始之前:
(1) 了解Makefile Kconfig diff Shell
(2) 掌握
Barebox for tiny 210 - step 31.编译运行
(1) 更新源码到对应版本
cd ~/s5pv210/github/loader/barebox
git checkout c3db4a92725f8a280adefde8823210fccbd0206f
(2) 配置编译
cp arch/arm/configs/friendlyarm_tiny210_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
禁用General Settings -> [ ]run machine low-level init
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
编译生成barebox.bin文件,这个文件不会进行PLL和SDRAM初始化,适合加载到SRAM并运行
sudo cp barebox.bin /srv/tftp/
将barebox.bin文件拷贝到tftp根目录
(3) 运行调试
从SD卡启动单板(继续使用step 3烧写的Barebox版本),用网线直接连接电脑与单板
将电脑IP地址设置为192.168.0.10,255.255.255.0
不需要设置单板IP,defaultenv自动设置好了192.168.0.100, 255.255.255.0
通过串口终端执行下边两条命令,下载barebox.bin文件到SDRAM并运行,检查单板是否正常启动
cp /mnt/tftp/barebox.bin /dev/ram0 && go /dev/ram0
(4) 使能General Settings -> [*]run machine low-level init,重新编译生成barebox.s5p,烧写到SD卡,检查单板能否正常启动
(5)
继续之前 使能PLL和SDRAM初始化(CONFIG_MACH_DO_LOWLEVEL_INIT)时,执行arch/arm/boards/friendlyarm-tiny210/lowlevel.c 中的reset()函数;跳过PLL和SDRAM初始化时,执行vi arch/arm/cpu/start.c中的reset()函数,搞清楚board_init_lowlevel_return()函数的作用,完全搞清楚SD卡启动流程。
2.代码分析
只修改了Makefile和Kconfig,感兴趣的建议看
github commit记录,我就不贴代码了。
[ 此帖被mei5150在2013-04-13 20:44重新编辑 ]