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

摘要:
arm裸机程序开发基本上有三个IDE:MDK、IAR和ADS。因为在c51和stm32的开发中使用了MDK开发环境,而且MDK的界面看起来更加舒适,所以我选择MDK作为s3c2440裸机开发的IDE。以下主要介绍如何使用MDK和J-link来调试基于s3c2440的开发板。首先,我们需要下载以下两个东西:MDKJ link驱动我的开发环境:Windows 764位、J-linkv8和一个mini2440开发板。最后,选择了MDK4.6版本和J-inkv8的最新J-linkARMv4.56版本。

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

  1. 首先,我们需要下载的有以下2样:
  1. MDK
  1. J-link 驱动

我的开发环境:windows 7 64位,J-linkv8,mini2440开发板一块。最后选择了:MDK4.6版本,J-ink v8的当前最新版本J-linkARM v4.56。

MDK的大部分版本可以到以下链接下载(也可到官方网站下载):

http://www.mcuzone.com/down/List.asp?SA=1009

J-link驱动的最新版本可以到以下链接下载:

http://www.segger.com/jlink-software.html

          安装MDK,J-link驱动,安装过程就不多说了,跟着提示走就行了,安装MDK时后要记得注册,安装J-link驱动后插上J-link系统会自动设别安装。

接下来就是关于MDK工程的建立烧写,调试

  1. MDK工程的建立,代码的烧写(基于s3c2440):

1)打开Keil uVision4新建一个工程:

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

2)新建一个目录用于存放我们的工程文件,这样我用新建一个test目录:并且取工程名为test并保存:

 

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

3)接下来选择CUP database:我们选择samsungS3C2440A,点击OK;之后会出现第二个图问你是否拷贝'S3C2440.s'到工程文件夹并加入到工程里,S3C2440.s是启动代码我们选择YES

 

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

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

 

4)然后我们需要对S3C2440.s进行一些必须的配置,打开此文件选择编辑界面下面的Configuration wizard进行配置,这里我把全部都打上勾,这样比较保险:

 

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

5)之后新建一个c文件并编写代码,我习惯新建一个main目录用来保存这个存放入口函数的文件,然后把这个文件加到工程里:

 

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

6)把所有c源文件加进工程之后,再选择Target 1Optionsfor Target ' Target 1'进行相应的配置因为只是单单要生成HEX可执行文件

 

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

7)因为只是单单要生成可以在norflash运行的HEX可执行文件,需要配置的有以下几个:

Target选项,修改如下图:

 

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

Output选项,修改如下图:

 

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

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

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

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

 

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

  1. 大部分开发中,写好的程序都是使用仿真器之间把bin文件之间放到SDRAM里运行,单步调试等。所以以下主要介绍如何通过MDKJ-link仿真来调试S3C2440

①由于MDK4.6中缺少了待会需要用到的文件,但是在MDK4.0里有,所有我先安装了MDk4.0,然后在MDK4.0安装目录的C:KeilARMBoardsSamsungS3C2440目录拷贝到MDK4.6的安装目录的D:KeilARMBoardsSamsung目录下,然后可以把MDK4.0卸载掉。只好把S3C2440目录下的RTX_Blinky下的Ext_RAM.ini拷贝到工程目录下:

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

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

 

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

我的修改后如下:

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

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

 

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

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

 

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

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

 

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

⑥在debug选项的配置主要有以下几项:

1)勾上右边的Use,Use里选择J-Link/J-Trace arm(选择Jlink调试)

2)勾上LoadApplication at Startup,勾上Run to main()  (让调试的时候直接从main函数开始)

3)在InitializationFile选择之前修改的Ext_ARM.ini文件的路径

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

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

 

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

⑦在Utilities选项里可以按照之前烧写时的配置使用;

⑧之后就算配置好了,现在rebuild一下,就可以在工程目录里生成bin文件跟axf文件了,连好Jlink和开发板,点击debug按照开始调试,不出以外,就可以开始调试了,如下所示:

 

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

转自:http://blog.csdn.net/shengnan_wu/article/details/8116815

免责声明:文章转载自《【转载】s3c2440裸机开发调试环境(MDK4.6,Jlink v8,mini2440)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ArcGIS Server GP服务使用常见错误总结清除页面广告?身为前端,自己做一款简易的chrome扩展吧下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

qt程序异常结束crashed

今天调试以前写的opencv的程序发现每次一点运行就报错误 StartingD:QtQProjectsuild-HelloWorld-lian-DebugdebugHelloWorld.exe...程序异常结束。D:QtQProjectsuild-HelloWorld-lian-DebugdebugHelloWorld.execrashed 但是直接从桌面...

Linux下的crontab定时、执行任务命令详解 oracle 自动备份

在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。 一、cron服务  cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。  se...

win10与子系统WSL互访文件系统

1,在win10环境下访问Ubuntu文件系统的home目录: C:UsersxxxAppDataLocalPackagesCanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgscLocalState ootfshomexxx 注意:直接从win10下复制copy文件到上面的目录,linux会出错。 2. 在U...

数据库系统中文件附件保存的最佳办法

数据库系统中文件附件保存的最佳办法 作者:http://blog.csdn.net/jacklondon http://blog.csdn.net/jacklondon/archive/2010/10/26/5966558.aspx 开发数据库系统的人很多,我相信也有很多人碰到过要将文件保存在数据库中的问题。常见的数据库系统,都有 blob/image/b...

Android 中的一些特殊目录与文件

用作命令的二进制文件位于/system/bin/与/system/xbin/下 应用数据位于/data/data/, 原始安装文件位于/data/app/(Play商店中非免费应用位于/data/app-private/) 权限相关的文件位于/system/etc/permissions/, 其中权限与权限组的文件是platform.xml 系统启动时in...

Vs 2008 解决方案的目录结构设置和管理(转)

http://blog.csdn.net/lcj_cjfykx/article/details/8632459 MS的这个IDE,实在庞杂得恐怖。从大学开始,我就一直用VC的各个版本写程序至今,细细想来,也仅仅是窥豹一斑,羞愧不已。但若仔细翻阅文档,又觉得时间花得不值,于是便一直凑活地用着。 前段时间负责搭建新项目的开发环境,兼一直在看Gamebryo的...