返回学习汇总贴没错,冲着免费四核新平台,语言不及格的我开始写连载了...
step 1 编译原始分支,引导成功0.开发平台介绍: Virtualbox 4.2.4 + Ubuntu-12.04.1-desktop-i386
1.安装编译工具:
(1)解压友善提供的编译工具到根目录
cd ~ && mkdir tmp
cp /mnt/winFolder/tiny210/Android/arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz tmp/
sudo tar zxf tmp/arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /
(2)添加编译工具所在目录到PATH
vi ~/.bashrc
在文件末尾增加以下四行,添加完成后执行source ~/.bashrc
# set PATH here
PATH=/opt/FriendlyARM/toolschain/4.5.1/bin:$PATH
# export PATH
export PATH
(3)安装其他工具
sudo apt-get install vim git build-essential libncurses-dev minicom
2.下载源码
(1)创建工作目录
mkdir -p s5pv210/github/loader
cd s5pv210/github/loader/
(2)克隆github上的代码库
git clone
https://github.com/jiandeng/barebox.git cd barebox/
(3)回退到原始分支
git checkout 172bc39a25480647cb392e446f80fa4f8eec7712
一口吃不成大胖子,我们还是从头学吧,这个版本跟barebox官方源码没有区别,只是我添了step-by-step-note这个说明性文件
执行完后会提示:HEAD is now at 172bc39... add step-by-step notes
有人会问了:172bc39a25480647cb392e446f80fa4f8eec7712是个啥玩意儿? 她是github对源码版本的标识,理解为版本号吧,执行git log会显示类似以下信息:
commit 172bc39a25480647cb392e446f80fa4f8eec7712 #代码版本
Author: jiandeng <
jiandeng.develop@gmail.com> #修改作者
Date: Tue Dec 18 20:50:43 2012 +0800 #修改时间
add step-by-step notes #修改备注
3.编译
cp arch/arm/configs/friendlyarm_tiny210_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
编译生成barebox.s5p和barebox.bin等目标文件,bin是可直接运行的文件,适合下载到SDRAM运行,s5p是封装过的bin(见scripts/s5p_chsum.c),适合烧写到SD卡并运行。
4.烧写到SD卡
——搞不清楚情形的状况下千万别轻举妄动!硬盘数据是哭不回来的!! 本部分内容设定了隐藏,需要回复后才能看到
5.配置串口助手(baidu一下minicom使用吧,不好讲清楚)
sudo minicom -s
选择你使用的串口,配置为115200, 8位数据位,1位停止位,无校验位,无流控,如下图。
+-----------------------------------------------------------------------+
| A - Serial Device : /dev/ttyUSB0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - Bps/Par/Bits : 115200 8N1 |
| F - Hardware Flow Control : No |
| G - Software Flow Control : No |
| |
| Change which setting? |
+-----------------------------------------------------------------------+
选择Save setup as dfl 保存为默认配置
选择exit from minicom退出
6.运行
(1)打开串口助手
sudo minicom
(2)从SD卡启动单板
SD卡插入单板,拨动开关选择从SD卡启动,单板串口连接电脑,开机,查看minicom
barebox 2012.12.0-00125-g172bc39 #1 Tue Jan 8 20:11:10 CST 2013
Board: Tiny 210
malloc space: 0x23a00000 -> 0x23dfffff (size 4 MB)
stack space: 0x239f8000 -> 0x23a00000 (size 32 kB)
refclk: 24000 kHz
apll: 1000000 kHz
mpll: 667000 kHz
hclk: 133400 kHz
pclk: 66700 kHz
Open /dev/env0 No such file or directory
no valid environment found on /dev/env0. Using default environment
running /env/bin/init...
not found
barebox:
(3)各种折腾(?命令输出所有支持的命令)
barebox:/ ?
. - alias for source
? - alias for help
[ - alias for test
bootm - boot an application image
bootu - start a raw linux image
cat - concatenate file(s)
cd - change working directory
clear - clear screen
cp - copy files
cpuinfo - Show info about CPU
(4)退出串口助手
退出minicom算个技术活,按住CTRL不放,按A,再按Z,放开CTRL,按q,选yes,按回车...
或者用window下的串口助手算了...
7.如果你感兴趣
(1) 熟悉Barebox的源码目录
(2) 理清Barebox的启动过程
arch/arm/cpu/start.c 中
void __naked __section(.text_entry) start(void)
// 这个函数被链接到TEXT_BASE起始地址,她的第一条语句内联调用了barebox_arm_head函数 arch/arm/include/asm/barebox-arm-head.h 中
static inline void barebox_arm_head(void)
"b reset\n"
// TEXT_BASE起始地址存放的实际上是这条命令,所以第一条命令是跳转到reset函数开始执行 "1: b 1b\n"
"1: b 1b\n"
"1: b 1b\n"
"1: b 1b\n"
reset函数定义在
arch/arm/boards/friendlyarm-tiny210/lowlevel.c 中
依次执行:PLL初始化、SDRAM初始化、拷贝到SDRAM、在SDRAM中继续运行board_init_lowlevel_return();
[ 此帖被mei5150在2013-04-13 20:43重新编辑 ]