1.4.ARM裸机第四部分-GPIO和LED

1.4.1.裸机实验体验之usb启动配合dnw工具下载

1.4.1.1、背景知识介绍

回顾S5PV210的启动方式,必须将OM5打到VCC,才能从USB启动。
S5PV210的启动过程:开机时先执行内部的iROM中的BL0,然后BL0做了一系列的初始化后,再读取外部OMpin的设置来确定用户选择了从哪里启动。当检测到我们设置的是USB启动时,S5PV210就会从USB OTG接口试图连接主机进行下载启动。

1.4.1.2、dnw工具介绍

dnw是一个软件,是三星公司编写的,这个软件的功能是通过USB线连接开发板和电脑主机,然后从主机下载文件镜像到开发板中去烧录系统。
dnw软件使用注意1:dnw是需要装usb驱动的,驱动在“X210光盘资料\A盘\tools\USB驱动”目录中
dnw软件使用注意2:dnw使用时通过usb线下载,所以一定要插USB线。
dnw软件使用注意3:dnw下载时需要设置dnw下载内存地址。在dnw软件的菜单“Configuration”中设置

Download Address为0xd0020010,确认即可。


1.4.1.3、dnw驱动安装

X210开发板使用了软开关,但是我们这里还没到操作系统没去处理开关,所以在整个裸机实验中必须手工按下POWER键才能保持开机,只要手一抬起来就关机了····
dnw驱动装好的标志是:开发板开机从usb启动后,设备管理器中显示已经安装的设备,并且关键是dnw工具中USB:OK

1.4.1.4、裸机程序下载地址设置

从usb启动做裸机实验时,因为不需要16字节的校验头,所以直接下载到0xd0020010

1.4.1.5、usb启动裸机实验总结

usb启动方式主要是用来调试程序的,其实分析S5PV210即可知道,我们这里是把裸机程序当作BL1来使用了。

扩充知识:Win7 X64版本驱动安装非常麻烦,因为微软启用了USB设备驱动签名政策。

1.4.2.裸机实验体验之SD卡下载

1.4.2.1、背景知识

一般情况下,用USB下载来调试裸机程序比较方便;但是有时候电脑使用dnw会频繁蓝屏,这时候用SD卡下载调试是不错选择。
把OM5打开GND,以从SD通道启动。
从SD启动时会先从iNand(SD0)启动执行,当iNand启动做校验和时失败才会转为启动SD2。而我们做裸机实验时是通过SD2来提供裸机程序镜像的,因此需要先破坏内部iNand的uboot才可以强迫开发板从SD2启动去执行我们的裸机程序。

1.4.2.2、擦除开发板iNand中的uboot的方法

在linux和android系统下,擦除uboot的方法:
busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync
sync
在uboot底下如何擦除uboot:movi write u-boot 0x30000000

1.4.2.2、Windows下制作启动SD卡

方法等同于我们第三部分讲过的SD卡刷机时的操作

1.4.2.3、linux下制作启动SD卡

后面章节再演示。

总结:SD卡启动和usb启动优劣势对比:如果你的电脑本身支持usb启动下载而且不蓝屏,建议以后做实验用usb下载调试;


1.4.3.自己动手安装交叉编译工具链1

1.4.3.1、Windows中装软件的特点

Windows中装软件使用安装包,安装包解压后有2种情况:一种是一个 安装文件(.exe .msi),双击进行安装,下一步直到安装完毕。安装完毕后会在桌面上生成快捷方式,我们平时使用快捷方式来启动这些程序;另一种是所谓的 绿色软件、免安装软件。这种不用安装,直接解压开里面就有exe可以直接双击执行。

1.4.3.2、linux中装软件的特点

linux中安装软件比windows中复杂。linux中安装软件一般有以下几种方法:
第一种:在线安装。譬如ubuntu中使用 apt-get install vim来安装vim软件。
第二种:自己下载安装包来安装。这种方式的缺陷就是你不知道你下载的安装包和你的系统是否匹配。
第三种:最装逼的一种方式,就是源代码安装。
总结:我们安装 交叉编译工具链(arm-linux-gcc)实际采用第二种安装方式。

1.4.3.3、交叉编译工具链的选择

我们选择交叉编译工具链的原则:和我们所使用的目标平台(给哪款SoC编程)尽量去匹配。譬如我们开发S5PV210的程序就是用 arm-2009q3这个版本,因为三星官方在开发S5pv210时就使用这个版本的交叉编译工具链,这样可以最大限度的避免稀奇古怪的问题出现。

1.4.3.4、交叉编译工具链的安装

步骤1:打开虚拟机,在/usr/local/下创建/usr/local/arm文件夹
步骤2:先将安装包从Windows中弄到linux中去。可以用共享文件夹,也可以用Samba,也可以cuteftp。
步骤3:解压。 tar -jxvf arm-2009q3.tar.bz2
到此相当于程序已经安装完毕,真正的应用程序安装在 /usr/local/arm/arm-2009q3/bin目录下

注:linux中的目录管理方法。技术角度来讲,linux中所有目录性质都是一样的,所以技术角度来讲我们把软件安装到哪里都行。但是因为如果胡乱放置,将来程序可能不好找。所以久而久之大家就总结了一个文件放置的一般定义,譬如说/bin目录放置一些系统自带的用户使用的应用程序,/sbin目录下存放的是系统自带的系统管理方面的应用程序。
那我们装软件放在哪里?一般都在/usr目录下。我们安装arm-linux-gcc,就在/usr/local/底下创建一个arm文件夹,然后装到里面。

1.4.3.5、安装后的测试

到真正的应用程序的安装目录下(也就是/usr/local/arm/arm-2009q3/bin),去执行 arm-linux-gcc -v
执行方法是: ./arm-none-linux-gnueabi-gcc -v
执行后可以得到一长串输出,其中有“ gcc version 4.4.1 ”字样,即表示安装成功。

1.4.4.自己动手安装交叉编译工具链2

1.4.3.1、环境变量的意义

环境变量就是操作系统的 全局变量。每一个环境变量对操作系统来说都是唯一的,名字和所代表的意义都是唯一的。linux系统可以有很多个环境变量。其中有一部分是linux系统自带的,还有一些是我们自己来扩充的。我们这里涉及到的一个环境变量是:
PATH。PATH这个环境变量是系统自带的,它的含义就是系统在查找可执行程序时会搜索的路径范围。

1.4.3.2、将工具链导出到环境变量

export PATH=/usr/local/arm/arm-2009q3/bin:$PATH
解释:把/usr/local/arm/arm-2009q3/bin这个导出到以前的环境变量前并加冒号
:$PATH:以前的环境变量前加冒号

在一个终端中执行以上命令后,该终端中就可以直接使用arm-none-linux-gnueabi-gcc了,但是只要关掉这个终端再另外打开一个立马就不行了。原因是我们本次终端中执行时的操作只是针对本终端,以后再打开的终端并未被执行过这个命令所以没导出。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值