您的位置:首页 > 运维架构 > Linux

001_<ARM9从裸机到Linux操作系统>____裸机篇____ARM9裸机程序开发环境搭建

2014-03-30 00:11 375 查看
第一章:搭建mini2440裸机开发环境

 
ARM9的裸机开发的编译器和下载程序的方式有好几种。通常用于arm裸机程序开发的编译器基本有三种:(1)MDK(2)IAR(3)ADS。它们的具体情况在这里我就不多说明,百度一下就明白了。笔者由于之前开发c51,stm32时候都使用了MDK开发环境,而且MDK的界面确实看起来舒服多了,所以本书选择了ARM9裸机开发采用大家都比较熟悉的开发环境Keil4作为我的s3c2440裸机开发编译器。
和学习51单片机一样、我们用Keil4编译、(调试)、ARM裸机程序并生成Hex或者Bin文件,然后通过JLINK下载器将Bin/Hex下载到开发板中运行。
 
一、Keil4的安装与使用
二、JLink的安装与使用
三、ARM9裸机开发的过程
 

(1)打开Keil4,然后点击Project建立工程,在下拉菜单中选择New uvision project(新建一个工程)。
 
(2)给工程取名为Test1(用户根据自己的情况低级随便定义)。然后点击保存。
 
(3)在弹出的对话框中选择CPU类型,找到SumSung,选择S3C2440,然后点击确定。

 
(4)接下来选择CUP database:我们选择samsung的S3C2440A,点击OK;之后会出现第二个图问你是否拷贝'S3C2440.s'到工程文件夹并加入到工程里,S3C2440.s是启动代码我们选择YES:(采用Keil编译器系统提供的CPU的启动程序)
 
(5)此时Keil4在资源管理器如图所示
 
(6)点击文件,选择新建一个文件,并保存,命名为main.c
 
(7)右击资源管理器中的File Souce1,选择Add file to group
将文件添加到工程中。
 
(8)在main.c中添加如下代码:(程序的功能是让开发板上的蜂鸣器间隔一段时间响一次)。呵呵,第一次学习我们是为了熟悉操作过程,大家直接可以照着将代码写进去。高手绕道哦!
 
(9)然后点击Target 1的Optionsfor Target ' Target 1'进行相应的配置然后进行配置:
①Target选项,修改如下图:
 

②Output选项,修改如下图:
 

 
③Utilities选项,修改如下第一图:这里需要特别注意的是,Utilities里面的UpdateTarget before Debugging前面的勾去掉,然后进入Settings,选择你要烧到的flash型号的编程算法,这个如果没有对应的,可以找相似的,如下第二图:

 
 
 

(10)配置好了之后,都选择OK这样就可以开始rebuild了,正常就可以生成HEX文件,然后连接好J-Link跟开发板上电,把开关拨到要烧进去的flash,点击keil里的download按钮,没有异常的话程序就烧进去了,然后复位一下开发板就可以听到滴滴的声音。
 

 
 
 
 
四、将ARM裸机程序下载到SRAM中运行。
提醒一下各位就是在keil for ARM进行环境搭建的时候,要注意调试时环境搭建与下载环境的搭建是不同的,因为在下载环境搭建的时候是把程序下载到nor flash里面直接进行运行,而调试环境是把程序下载到RAM里面进行执行。nor flash里面也可以进行调试环境的搭建,但是在nor flash里面只能建立两个端点,而且flash擦写次数有限对寿命有影响。所以不推荐。所以调试的时候推荐在RAM里面进行调试。
 
大部分开发中,写好的程序都是使用仿真器之间把bin文件之间放到SDRAM里运行,单步调试等。所以以下主要介绍如何通过MDK,J-link仿真来调试S3C2440:
①由于MDK4.6中缺少了待会需要用到的文件,但是在MDK4.0里有,所有我先安装了MDk4.0,然后在MDK4.0安装目录的C:\Keil\ARM\Boards\Samsung把S3C2440目录拷贝到MDK4.6的安装目录的D:\Keil\ARM\Boards\Samsung目录下,然后可以把MDK4.0卸载掉。只好把S3C2440目录下的RTX_Blinky下的Ext_RAM.ini拷贝到工程目录下:

 
②修改Ext_RAM.ini,把如下图的蓝色内容修改成你对应生成的axf文件的路径(生成axf文件待会会提及到)
 
我的修改后如下:

③选择Target 1的Options for Target ' Target 1'进行相应的配置,配置如下图(SDRAM是从地址0x30000000开始的)
 

④在User选项里相应位置添加命令如下:(用于生成.bin文件和.axf调试文件,添加的命令为:fromelf --bin -o @p.bin @p.axf,记得前面打勾)
 

⑤在Linker选项里勾上Use Memory Layout from target Dialog,如下图:
 

 
⑥在debug选项的配置主要有以下几项:
1)勾上右边的Use,Use里选择J-Link/J-Trace arm(选择Jlink调试)
2)勾上LoadApplication at Startup,勾上Run to main() (让调试的时候直接从main函数开始)
3)在InitializationFile选择之前修改的Ext_ARM.ini文件的路径
 

4)点击Settings按钮,设置JTAG Speed为Auto Selection,如下图:
 

⑦在Utilities选项里可以按照之前烧写时的配置使用;
⑧之后就算配置好了,现在rebuild一下,就可以在工程目录里生成bin文件跟axf文件了,连好Jlink和开发板,点击debug按照开始调试,选择全速运行,便可以听到滴滴的声音。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: