您的位置 首页 主动

第1课:S3C2440的烧写

首先明确要学什么?1写Bootloader。会以u-boot为例。2改内核。用ARM编译器对linux内核进行编译。并移植驱动3制作文件系统,把shell放入开发…

首要清晰要学什么?

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 与 操作体系的定制。咱们将在今后的课程中来编写。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/274810.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部