在线问答
直播中

杨永胜

11年用户 2379经验值
擅长:嵌入式技术
私信 关注

【OK210试用体验】+第四篇☞Linux环境搭建及led点灯测试(有图有真相)

本帖最后由 iysheng 于 2015-8-2 09:52 编辑

今天终于到达搭建Liunx环境这个步骤了,这一次,主要完成以下几个步骤:
1。VMware的安装
2。在VMware中新建一个Linux的虚拟机(我用的是RHEL6.6 Desktop)
3。在REHEL6.6中,借助cross-ng编译制作arm-cortex_a8-linux-gnueabi-*系列的交叉编译工具链
4。借助自己编译的交叉编译工具链完成u-boot和内核的编译测试
5。编写led电灯程序,并测试运行
接下来,我们细说中间我遇到的问题和解决办法。

1。VMware的安装
2。在VMware中新建一个Linux的虚拟机(我用的是RHEL6.6 Desktop
Desktop是我在安装RHEL6.6时选择的。
这两步骤,可以按照用户手册上的来进行操作,没有什么大问题,要注意的就是我在第三篇已经强调的安装VMware-8.0.2-591240时,要用管理员方式运行


3。这一步比较繁琐,也没什么难的,就是很费时间,主要和我的电脑的运算速度也有一定的关系。
  • 在crosstool-ng.org上下载crosstool-ng-1.18.0.tar.bz2
  • 在用户目录下,创建文件夹arm-linux-tools,接下来很多操作都是在这个文件夹内完成的。
  • 在arm-linux-tools文件夹内创建src,crosstool-build,crosstool-install三个文件夹,并在该文件夹内把crosstool-ng解压缩出来,进入crosstool-ng-1.80.0文件夹
  • 进行依赖检测./configure –prefix/home/ys/arm-linux-tools/crosstool-install
  • 根据对应的错误,安装相应的软件包,本次我的安装主要用到是原RHEL6.6镜像中的软件包,也就是本地源(这种制作本地源的方法网上很多,比较简单的,如果有疑问,可以给我留言,我会及时解答的)
  • 本次我安装了bison,flex,gperf(http://ftp.gnu.org/gnu/gperf/),libtool,expat-devel,textinfo,ncurses-devel,ncurses-term。
  • 上述软件包,出了gperf我是在网站上下载的源码以外,其余都是用的本地源,在顺利安装了以上软件包以后,就可以进行ct-ng的安装了,
  • 首先make然后make install,这样ct-ng就被安装到~/arm-linux-tools/crosstool-install/bin目录中了
  • 把ct-ng的路径加入环境变量中,使系统可以找到该命令,下面就要进行配置了
  • 复制cross-ng-1.18.0/samples/arm-cortex_a8-gnueabi目录到crosstool-build文件夹下,并复制arm-cortex_a8-gnueabi文件夹下的crosstool.config到crosstool-build文件夹下,重命名为.config
  • 在该文件夹下执行ct-ng menuconfig进来配置,主要更改以下内容 Red Hat Enterprise Linux 6-2015-07-31-09-31-39.PNG Red Hat Enterprise Linux 6-2015-07-31-10-06-32.PNG

      更改第一个图片中内容主要是为了更改路径,Local tarballsdirectoryPrefix        directory,
      更改第二个途中内容的原因是,官方网站上现在只有这个0.15.11版本的,避免麻烦,这样修改。
      还要更改
       Red Hat Enterprise Linux 6-2015-08-01-18-51-11.PNG
       这是网上教我的办法。很有必要,要不然会报错的。然后就保存。
12。ct-ng build开始编译,我等待了接近两个小时,编译完成, asd.PNG
13。接下来就是加入环境变量,建立arm-linux-*的软连接。至此,交叉编译工具链就住做好了,验证如下:
aaa.PNG

下面就是按照手册上的介绍自己动手编译u-boot和zImage,其中编译zImage的时候,我遇到了交叉编译工具链路径不对的问题,根据提示我又建立了新的软连接,解决了问题,成功完成了编译。

最后说一下我的led电灯程序,主要是测试一下自己编译的交叉编译工具链是否好用。
代码很简单,直接贴出来了,
  1. start:
  2.     @;output
  3.     ldr r0,=0xe0200340
  4.     ldr r1,=0x11110000
  5.     str r1,[r0]

  6.     @;data  
  7.     ldr r0,=0xe0200344
  8.     ldr r1,=0x30
  9.     str r1,[r0]

  10. halt:
  11.     b halt   



编译链接生成bin文件,通过串口下载到开发板
上电出现如下所示时,按任意键,接着按7,进入u-boot
Red Hat Enterprise Linux 6-2015-08-01-19-27-25.PNG

这是我在minicom中,观察串口的数据。
通过我的实验,minicom(本地源安装 yum install minicom)中,以ymodem协议发送数据(输入loady 0x20008000),正常没有问题,我在minicom中用kermit协议没有成功。我重新下载了ckermit的源码,编译 安装 之后,可以用kermit依照kermit协议下载裸机bin文件成功了。
下面附上我的效果图:
Red Hat Enterprise Linux 6-2015-08-01-17-45-41.PNG
kermit下kermit协议的下载
Red Hat Enterprise Linux 6-2015-08-01-17-53-14.PNG
minicom下使用ymodem协议的下载
Red Hat Enterprise Linux 6-2015-08-01-17-46-53.PNG

go 0x20008000命令完成裸机程序的运行
程序效果图两个led灯亮了,如下所示:
20150801_174750_meitu_1.jpg

好了,今天就写到这里,接下来的几天我想多看看驱动的内容,加油。

回帖(6)

ycdhonker

2015-8-7 13:54:30
不错 学习了  赞一个!
举报

杨永胜

2015-8-7 15:40:55
引用: ycdhonker 发表于 2015-8-7 13:54
不错 学习了  赞一个!

嗯,谢谢支持啊。
举报

ycdhonker

2015-8-7 19:01:44
引用: iysheng 发表于 2015-8-7 15:40
嗯,谢谢支持啊。

我烧写系统时碰到了问题,sd分区不识别,但是我是按照手册分区的 换了个SD卡还是出现同样的问题
举报

杨永胜

2015-8-7 21:07:00
引用: ycdhonker 发表于 2015-8-7 19:01
我烧写系统时碰到了问题,sd分区不识别,但是我是按照手册分区的 换了个SD卡还是出现同样的问题

需要用管理员权限,,win7的话xp模式,然后,点击右上角的scan,会出来,
你可以试一试,
举报

更多回帖

发帖
×
20
完善资料,
赚取积分