从零到第一个裸板程序的过程

原创 2015年07月10日 14:47:58


         第一次真正意义上的接触嵌入式开发,并没有之前接触软件开发那么的顺利,过程复杂,涉及的知识广是嵌入式门槛高的部分原因。一开始接触,我不断地在找概念,现在特在此将我的一些经验记录下来,以便不时之需,也提供给各位参考。

说明:我是用的开发板是 ARM9 的S3C2440 ,系统环境是 xp + linux 。

 

1.      安装ADS,我的环境是在xp下,我安装的是ADS1.2,安装过程可以在网上搜索。(具体安装过程不予介绍)

2.      在linux 系统下安装gcc,如果读者安装了ADS windows下的集成开发环境,那么这一步可以忽略,如果想要深入一点,那么还是建议把这一步做了。(具体安装过程不予介绍)

 

3.      到这里我们就可以编写我们的程序并得到我们要的文件(如 hello.bin): (1)如果用户使用的是ADS环境,那么可以在ADS下编写程序并make生成我们需要的.bin 文件。(2)如果用户更偏好于linux下,那么,可以直接编写汇编文件和c文件,并通过makefile 来编写我们的编译规则,最后生成我们要的 .bin 文件。

在这里我采用的是在linux下操作。

如图所示:

3-1 首先新建一个led1.s 文件,读者可以自行定义文件名,并编写代码如下:

读者请注意,以下代码适用于s3c2440开发板,其他板请阅读相关的文档。

 

3-2 新建MakeFile 文件。并输入以下规则:

 

 

3-3执行make 进行编译。如果对于linux 下的makefile 不熟悉,请自行学习。


3-4编译后的文件概况。

编译后将会生成:led1.dis ,led1.elf ,led1.o,led1.bin。led1.bin 即是我们想要得到的。

 

 

 

 

4.      在第三步得到了我们要的hello.bin 文件后,接下来就是要将hello.bin烧录到我们开发板上。所以这一步先将我们的开发板连接上电脑,这里针对的是TQ2440开发板,(1)开发板连接上电源;(2)我们需要连接USB转串口线到电脑,再用串口延长线连接TQ2440开发板的串口;(3)再将USB延长线连接 USB Slave 口。如图:

 

 

5.      硬件连接后,后面就是驱动安装:(1)由于我们开发板连接到电脑上采用的是USB转串口的方式(由上第4步可以看出),所以我们需要安装USB转串口的驱动,这里可以安装厂商提供的驱动,也可以使用方式来安装,我采用的方式是用驱动精灵安装这个驱动。(2)另外我们还需要安装USB下载驱动(开发板上会配送有),只有安装了才能将我们的文件通过usb烧到开发板。如图:

USB转并口驱动,说来我也迷惑为什么不是USB转串口?


无所谓,只要能出现下图就OK啦,表示com连接上了,注意到这里是COM3下面会用到


接下来就是安装TQ2440_USB下载驱动:


 

说明:只要两根线连接上电脑,如果是没有装过驱动的,会自动提示安装,读者要做的是选择我们需要的驱动进行安装即可。

6.      打开SecureCRT ,通过SecureCRT 来配置COM 。使开发板能够与dnw(下一步说dnw)链接上。

第一次打开SecureCRT是会跳到下面的界面:我们将它配置成下面的形式,注意这里用到了上面提过的COM3。

点击Connect ,如果成功会是下面的界面。

7.          安装和配置dnw 下载软件:安装dnw后,(1)打开软件;(2)选择菜单栏的”参数配置-选项” , 配置信息


配置完后确定。

(3)选择菜单栏的”串口-连接“,连接成功后如图:


此时,COM3连接成功。

 

 

 

 

8.      在这里我们可以将.bin文件烧录到开发板上了。烧录的过程如下:

拨动Nor/Nand选择开关,选择Nor flash 启动。打开电源,dnw 如下:

 

 

 

 

我们输入a, 如图:


此时选择DNW菜单栏的”USB下载-UBOOT-选择文件“选择我们的.bin所在路径,我的是led1.bin。

出现上图表示已经烧录成功了,接下来选择Nand flash 重新启动开发板,就可以看到led1和led2灯亮了。


最后附上代码:http://download.csdn.net/detail/u014699958/8887341

版权声明:本文为博主原创文章,未经博主允许不得转载。

友善之臂第一个裸板驱动LED程序的详细分析(新手向)

友善之臂第一个源码详细讲解 memset函数 fopen函数 fseek函数 memcpy函数 fwrite函数 fread 函数...
  • bilifo
  • bilifo
  • 2015年09月22日 16:37
  • 896

arm 裸板程序编译过程

看过编译原理的人都知道我们一句简单的arm-linux-gcc 到达做了哪些工作。他并不是简单的把我们的原文件编译成我们可执行的二进制文件,在这个过程中他其实至少做了两部工作。“编译”和链接“当然这其...
  • ly0303521
  • ly0303521
  • 2015年04月10日 20:52
  • 471

从零开始写一个arm下的裸板程序

从零开始写一个arm下的裸板程序.我们整个程序是基于uboot运行的. 所有我们可以借助uboot中的printf来输出,默认开发版的标准输出是串口. 电脑的默认标准输出的屏幕. 1.需要创建的文...
  • shaohuazuo
  • shaohuazuo
  • 2014年12月25日 17:33
  • 1928

JZ2440裸板程序烧写资料

  • 2017年07月04日 10:25
  • 124KB
  • 下载

S3C2440裸板程序

  • 2017年07月31日 22:32
  • 617KB
  • 下载

OK6410:如何烧录裸板程序

刚买到OK6410的开发板之后,按照光盘上的用户手册的教程,烧写Linux系统。然后就是在PC端红帽编写Linux C程序,交叉编译后,用SD卡或者是挂载U盘的办法,把编译出来的可执行文件放到开发板上...
  • stephenzcl
  • stephenzcl
  • 2013年01月18日 09:59
  • 3490

uboot-tiny4412启动流程(下)----如何将自己的裸板测试程序加入uboot中启动测试

今天在工作上搞了一天高通的芯片uboot程序,目的是希望将一个裸板的程序移植到uboot中,并且开机让它运行。这个芯片是NXP4330,目前是高通的一个芯片,基于ARM-contexA9架构,那么就跟...
  • morixinguan
  • morixinguan
  • 2016年12月16日 00:15
  • 1155

ok6410-第05篇-Linux 下裸板程序的开发

写在前面 1.用什么linux版本呢。 我想说的是,linux版本是不重要的,你是来学编程的,何必在乎用什么版本呢,我用的是ubuntu 10.04.3。 至于我用这个版本的原因,就是看着顺眼。...
  • lx362377891
  • lx362377891
  • 2012年07月31日 01:04
  • 2150

嵌入式ARM裸板程序——存储管理器驱动

本博文是根据百问网韦东山老师的嵌入式视频教程,基于jz2440进行嵌入式开发学习所记录的学习体会,如有雷同纯属巧合。存储管理器ARM的存储管理器,其实是一个存储控制器的作用。通过前面的学习我们可以了解...
  • JewelCCL
  • JewelCCL
  • 2016年10月06日 12:30
  • 770

对S3C2440裸板程序设计(无操作系统)的抽象

对S3C2440裸板程序设计(无操作系统)的抽象           在嵌入式领域中,几乎所有的设备控制和各种协议控制都在同一个嵌入式CPU当中,非常有利于对CPU Core和设备进行抽象。如果能对C...
  • ce123
  • ce123
  • 2012年02月10日 21:22
  • 4357
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从零到第一个裸板程序的过程
举报原因:
原因补充:

(最多只允许输入30个字)