1.裸机开发环境的体验(Redhat 6.4 + vbox)

1.裸机开发环境的体验(Redhat 6.4 + vbox)

一、裸机开发的一般流程

注意:这是假定你已经搭建好了裸机开发环境

我们裸机的一般开发流程:图1-1:

图1-1 裸机开发流程

由于在这篇文章里是体验裸机程序,所以我们跳过了1、2步骤。直接从第三步开始:

二、交叉工具链的安装:

在这里,我们编写的程序是要在开发板运行的,不是在pc机,所以pc机的gcc等编译器不再适用了,我们必须按照交叉工具链。由于我们的程序是要在ARM架构运行的。所以安装的工具链是arm-linux-*的工具链。

我们的工具链包放在/home/ARM-tools里的:arm-linux-gcc-4.3.2.tgz。如图1-2:

图1-2

接下来是解压,就是安装,我们把它解压到/usr/local目录下:使用的命令是:

tar -zxvf arm-linux-gcc-4.3.2.tgz -C /

该命令的意思是将该工具包解压到根目录。由于它加压开的文件夹是/usr/local/arm/4.3.2…所以我们解压后会在/usr/local/下看见有新的文件夹arm:如图1-3:

解压命令:

回车:

图1-3 安装工具包

我们从上面的回显看到安装的目录确实是/usr/local/arm。

安装好了之后,我们会在/usr/local/arm目录下看到4.3.2的工具链文件夹,这就是我们交叉编译的工具集。里面有很多arm-linux-开头的编译器,包括arm-linux-gcc,arm-linux-g++。这两个就是交叉编译C和C++的工具。如图1-4:

图1-4交叉工具链

三、交叉工具链的配置:

上面我们只是将交叉工具链解压安装而已,我们现在还不能用这些交叉工具链,因为我们还没有配置环境。如果我们现在在命令行执行:arm-linux-gcc会报错:图1-5:

图1-5

接下来配置这些工具链,使我们能够在命令行使用他们。配置的文件是在/etc/profile.打开该文件,添加工具链的路径即可:

export PATH=$PATH:/usr/local/arm/4.3.2/bin/

然后保存,使能我们刚配置的环境:source /etc/profile

这样我们就配置好交叉工具链。如下图1-6:

图1-6使能交叉工具链环境

测试一下环境:安装成功,图1-7:

图1-7

四、裸机体验:

接下来就是我们用编写好的裸机程序来测试一下我们的交叉工具链。

这里我们提供了一个点亮led的汇编文件程序:图1-8:

图1-8

在这里我们的源程序就两个,一个是led.lds链接脚本文件,一个汇编文件led.S。

编译汇编文件,产生二进制.o文件,图1-9:

图1-9 编译

链接文件,产生.elf文件,图1-10:

图1-10 链接文件

但是此时产生的文件是elf格式的,不是可执行的二进制文件。我们需要将elf文件转为可以在开发板执行的.bin文件。图1-11:

图1-11 生成bin可执行文件

上面我们终于把一个文件编程了可执行文件即是.bin文件。但是步骤有点繁琐,当我们一个文件需要修改的时候,又得重新编译一次。所以,我们不得不编写我们的Makefile文件。

?

由于我们现在只是体验裸机程序烧写到开发板。所以会在后面讲解:

  1. 交叉工具链的使用
  2. 链接器脚本的编写
  3. Makefile的编写。

?

现在我们把上面生成的bin可执行文件裸机程序烧写到开发板,看效果:

注意我们烧写到开发板的NandFlash的。

烧写裸机程序:

1、首先是把我们的SD卡插入到SD卡读卡器,并且插入电脑的usb口。图2-1:

?

图2-1 SD卡

2.打开我的电脑,右键SD卡盘符,选择格式化SD卡,点击开始,会有警告提示,选确定进行格式化SD卡。格式化完成会提示格式化完成,点确定即可。图2-2:

图2-2格式化SD卡

图2-2 格式化SD卡

3.格式化好了SD卡,就是烧写我们的SD卡引导程序。首先是打开烧写软件。我的是在F:\forfish资料\OK6410-A基础资料-256 (H)\Linux-3.0.1\Linux烧写工具目录下:图2-3:

图2-3

双击上面的SD_Writer.exe软件,会出现下图2-4.

图2-4

4.然后点击界面右上角的Scan键,会自动检测到我们的SD卡,SD Volume会显示你SD卡的盘符。Board Model是6410(我的是6410)。SD Type选Auto默认即可。OS Type也是默认Linux||Android。然后点击左下角的Select Boot。会出现一个界面,找到SD卡烧写程序mmc_ram256.bin(我的是256的),点选择。最后点击Program进行烧写。烧写成功会出现It is OK!. 图2-5:

?

图2-5

这就显示我们烧写好了SD程序。

?

?

?

?

?

5.退出usb,拔出SD卡,插入到开发板的SD卡插槽。图2-6:

图2-6

6.在我们给开发板上电之前,我们需要去设置我们pc机的端口,我们这里使用的是串口软件SecureCRT.exe。打开该软件后,创建一个新的serial端口,参数如下,名字com1.图2-7.

点击新建,然后选择Serial.

?

端口选择COM1,波特率115200,数据位8位,奇偶校验None,停止位1.取消流控的选择。然后点下一步。

?

点确定即可。

?

?

?

?

?

?

?

这样我们就创建好了端口COM1:

如上,我们选择COM1,点连接,即可通过串口连接开发板:

图2-7端口

?

?

?

?

7.接下来就是设置开发板从SD卡启动。图2-8:

1---8好开关引脚:off-off-off-on-on-on-on-on:

图2-8

8.最后给开发板上电,串口显示:图2-9:

图2-9 串口显示信息

9.选择1 Format the nand flash。格式化Nand Flash图2-10:

?

然后选择y:

?

选择3 Burn image from USB.

选择1 Flash u-boot:

图2-10 烧写

10.接下来才是到了我们烧写我们前面生成的led.bin点亮led的程序。

首先是将usb从windows 7拉到虚拟机的Redhat 6.4.右击vbox右下角的usb,会看到图2-11:然后鼠标点击选择该usb,选择之后,再次看,会发现这个usb前面多了一个对勾。这样usb就从windows 7 被我拉到了Redhat 6.4.这样我们就可以进行led.bin的烧写了。

图2-11 usb连接

12.烧写程序之前,要先装usb烧写的驱动程序:dnw_usb.ko。安装命令:

Insmod dnw_usb.ko

安装截图2-12:

图2-12

如上我们就安装好了usb烧写驱动。接下来就是到了真正烧写led.bin程序了。

?

13.把生成的led.bin拷贝到dnw所在的目录,就是截图2-12的那个目录。然后执行:

./dnw led.bin 50008000

执行的结果如下图2-13:

?

?

?

?

?

拷贝:

执行:

图2-13 执行结果

串口的反馈信息图2-14:

图2-14 烧写

可以看到我们烧写了1032192bytes到了内存里。

?

14.查看是否烧写成功,就是程序有没在开发板顺利运行。我们设置开发板从Nand Flash启动,然后重启。

Nand Flash启动:1-8:off-off-off-on-on-off-off-on即可。然后按动重启键。如下图2-15:

图2-15 设置Nand Flash启动, 点亮led

我们来看一下程序:

我们看到我们在汇编里给第一个灯的值赋为0,因为0xe=0b1110,就是第一个灯亮。说明我们烧写成功。

呼呼,终于烧写完成,呼呼……………………..

时间: 2024-08-06 07:58:59

1.裸机开发环境的体验(Redhat 6.4 + vbox)的相关文章

ok6410[000] 搭建裸机开发环境

1.安装交叉工具链arm-linux-gcc-4.3.2 先把这个工具复制到rhat系统中[rhel-server-6.3-i386-dvd.iso] 解压arm-linux-gcc-4.3.2到一个目录中,然后,配置环境变量 2.编译示例程序 编译 arm-linux-gcc -g -c led.S 链接 arm-linux-ld -Tled.lds -o led.elf led.o 格式转换 arm-linux-objcopy -O binary led.elf led.bin 这样就做出了

在MDK V5.12.0环境下建立2440的裸机开发环境

在网上普遍的教程是使用ADS开发2440的裸机程序的,但是这东西十分的古老,在win7平台上面运行的并不是十分的流畅.在加上之前做stm32开发一直使用的是MDK的平台,所以还是打算使用MDK作为我开发2440的裸机程序的主要环境.网上关于如何使用MDK开发2440的教程还是挺多的,但是基本使用的都是老版本的MDK,但是我现在电脑上面安装的是最新的MDK 5.12的版本,其实新的版本最大的变换就是改变了器件的管理方式,原来是单片机的模型之类的随着安装包一起安装到我们的电脑上的.但是新的MDK做了

lmosem-exynos4412:iTOP-4412裸机开发环境

实验手册上说了安装DNW驱动,这个软件我没有细查,不过根据它的功能,它用的是USB上传文件到开发板,所以比那种用串口上传文件要方便很多. USB转串口支持驱动之前已经安装了,现在为了支持USB传输文件当然也要安装驱动,安装时有些文档里面没有说清楚,这里说下. 启动DNW,先在Configure里面设置一下,然后再点击Serial Port/connect,接着再打开开发板开关,输入dnw,会自动提示缺少驱动: 驱动文件先按照安装步骤先签名一下,然后再更新驱动: 安装完驱动,先回车输入dnw 40

裸机开发环境配置

sudo yum install ncurses-devel sudo yum install openssh-clients sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel sudo yum install svn sudo yum install dos2unix sudo yum insta

OK6410基于SD卡的裸机开发-LED灯控制

在上一篇文章中提到SD卡的裸机开发环境的搭建以及OK6410的启动设置,这章开始进入LED灯的闪烁控制. 1.首先打开OK6410的开发板原理图,找到LED等控制的原理图部分,如下图1所示. 图1 LED灯控制原理图 由图1可知,控制LED灯的CPU管脚为NLED1~NLED4,NLED1~NLED4对应的CPU管脚名称为GPM0~GPM3(CPU原理图未给出). 2.编写程序LED.s,下面直接给出LED.s的源码. .globl _start _start: /* 硬件相关的设置 */ ld

调研IOS的开发环境的发展演变

一. 关于IOS的开发发展历史: 百度一下,关于这方面的详细资料有很多,在这里就不复制粘贴占用篇幅了. 二. 关于个人搭建IOS开发环境的体验: 本人用的是华硕电脑,window7的操作系统,本来为了方便,打算体验一下安卓的开发环境就好了,但是,在舍友(是的,就是这个人@Mr.noboby)的怂恿下, 为了感受苹果操作系统的强大之处,伟大的作死之旅开始了: 首先,安装虚拟机是伟大旅程的第一步,根据百度大大的推荐,选择安装 VMware 10  : 然后,接下来这的一步是最最重要的,没有这一步我们

利用vagrant快速搭建rails开发环境

前言 当我们学习一门新的语言或技术的时候,最麻烦或比较浪费时间的事情就是搭建开发环境.而搭建开发环境与我们将要学习的新的语言或技术,没有太大的联系,因为我们感兴趣的只是新的语言或技术本身,而并非它们的开发环境.如果浪费太多的时间在这些上面,则更是不值得事情.如果能有一套现成的搭建好的开发环境,这样我们就可以直接关注我们所感兴趣的东西了.如在写某方面教程的时候,如果能配有一个现成的开发环境,这样初学者就可以快速的上手,掌握核心的知识,聚焦重点内容. 本文主要介绍如何利用vagrant快速的搭建ra

【转载】s3c2440裸机开发调试环境(MDK4.6,Jlink v8,mini2440)

用于arm裸机程序开发的IDE基本有 以下3个:MDK,IAR,还有ADS.具体它们的具体情况在这里我就不多说了,百度一下就明白了.由于之前开发c51,stm32时候都使用了MDK开发环境,而且MDK的界面确实看起来舒服多了,所以我选择了MDK作为我的s3c2440裸机开发的IDE.以下主要介绍一下如何使用MDK配合J-link来调试基于s3c2440的开发板. 首先,我们需要下载的有以下2样: MDK J-link 驱动 我的开发环境:windows 7 64位,J-linkv8,mini24

关于安卓开发环境的自我体验

记得第一次学习安卓系统开发的时候,在搭建坏境的时候就遇到了很多问题,足足困扰了我一周左右,不过最终还是成功搭建.想想每次进行一项实践,环境的搭建总是会浪费我很多时间,比如到底选择Visual Studio 2010还是08就困扰了我很久.搭建的过程总是很繁杂的,第一步就是JDK和ADT-BUNDLE的下载了,还要自行下载工具包,API等,当时一无所知的我对这些东西简直望而生畏.还记得安装JDK的过程中因为路径名有空格的问题就让我头疼了很久,包括JRE,安装路径也很重要.之后就需要配置环境变量.配