微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 第1课:S3C2440的烧写

第1课:S3C2440的烧写

时间:11-11 来源:互联网 点击:
首先明确要学什么?

1写Bootloader。会以u-boot为例。

2改内核。用ARM编译器对linux内核进行编译。并移植驱动

3制作文件系统,把shell放入开发板(串口shell),把应用程序植入。

那么先来介绍开发板的硬件:

现在手上拿到的是山寨的2440开发板,分上层核心板和下层母板。

有1个arm的cpu(片上系统,里面还包括外设,不只一个cpu),2个32m的内存,一个flash,和一个晶振提供的时钟。

母板则为4.3寸触摸屏和LCD屏(2个屏要分开驱动),USB的3个host端和1个device端。RJ45网络端口。Rs232串口(15电压)。

JTAG仿真接口。SD卡槽。3个指示灯。音频输入输出口。gps芯片。

一下介绍pc机与开发板直接的连接方式。

usb,并口<-------------------------------->JTAG

<------------------------串口----------------------->

PC<------------------------网络-----------------------> ARM开发板

<------------------------usb------------------------>

还有一类叫wiggier仿真器,可以进行flash烧写和简单的调试。

接下来介绍整个开发板的烧写流程。

1我们使用openjtag对裸板进行烧写。OPENJTAG仿真器网上都有卖。它通过把写好的u-boot,uimage放入开发板内存,再通过烧写flash,把内存中的u-boot程序烧如flash中。

2利用网络来巧妙安装系统。先执行minicom -s来启动minicom,在serial port setup中A选/dev/ttyS0, E选115200 8N1.然后关闭hardware flow control。最后选save setup as dfl。minicom就可以控制开发板了。

在开发板开机后按空格,可进入u-boot的命令行。

我们利用linux上的nfs把剪裁好的linux与linux系统的压缩包先挂载在nfs服务器上,然后通过网线把开发板和pc机连起来,修改u-boot的环境变量,让他从网络加载。之后定制的linux系统便起来了,然后把先前一起加载的压缩包解压缩,解压缩的文件自动烧入flash中,完成烧写。之后把u-boot的环境变量改回来就行了。

以下是具体的执行代码

1启动openjtag。

2执行脚本

a, >halt 使开发板的cpu暂停
b, >arm920t cp15 2 0协处理器命令来关闭mmu
c,>init_2440对开发板进行初始化
d,>halt
e,>arm920t cp15 2 0
f,>load_image /u-boot.bin 0x33f80000 把u-boot放入内存
g,>load_image /uImage 0x32000000 把uImage放入内存
h,>resume 0x33f80000 从u-boot位置开始运行

i,minicom #help nand
j,#nand erase清除flash
k,#nand write 33f80000 0 40000 把内存中的u-boot写入flash中
l,#nand write 32000000 100000 200000把内存中的uImage写入flash中
m,#reset重启

3在linux下执行一下步骤

a,mkdir/work/root;chmod 777 /work/root 新建工作目录,并把权限位设置到最高
b,tar zxvf root.tgz -C /work/root解压当前目录下的文件系统压缩包
b,mv root.tgz /work/root 并把该压缩包一同放入工作目录
c,vi /etc/exports ,添加一行 /work/root *(rw,sync,no_root_squash) 配置nfs的配置文件
d,services nfs restart 重启nfs服务
e, minicom >setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.3:/work/root ip=192.168.1.8:192.168.1.3:255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M 在minicom中的开发板的uboot下改变环境变量,让开发板通过网络从主机端启动工作目录下的文件系统。(这里主机端的ip位用ifconfig eth0 +ip来设)
h,>printenv
ti,>boot

4之后你会发现开发板的linux系统已经启动,之后继续通过minicom操作开发板

a,minicom >mount /dev/mtdblock2 /mnt 把flash设备挂载到mnt里
b,>tar zxvf root.tgz -C /mnt 把刚刚的压缩包直接解压到flash设备中,完成操作系统的烧录
c,>reboot 重启

d,minicom >setenv bootargs root=/dev/mtdblock2 console=ttySAC0 mem=64M 重启后在u-boot里把环境变量改成从flash启动

e.>boot

这样就是一个完整的烧录过程。而其中的u-boot uImage 与 操作系统的定制。我们将在以后的课程中来编写。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top