历史上的今天
返回首页

历史上的今天

今天是:2025年04月26日(星期六)

2019年04月26日 | s3c2440裸机开发调试环境(MDK4.6,Jlink v8,mini2440)

2019-04-26 来源:eefocus

用于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,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工程的建立烧写,调试


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

 


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

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


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


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


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

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



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


①Target选项,修改如下图:


②Output选项,修改如下图:



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


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



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

 


①由于MDK4.6中缺少了待会需要用到的文件,但是在MDK4.0里有,所有我先安装了MDk4.0,然后在MDK4.0安装目录的C:KeilARMBoardsSamsung把S3C2440目录拷贝到MDK4.6的安装目录的D:KeilARMBoardsSamsung目录下,然后可以把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按照开始调试,不出以外,就可以开始调试了,如下所示:


推荐阅读

史海拾趣

GarrettCom公司的发展小趣事

转折:2006年,GarrettCom迎来了一个重要的转折点——收购变电站网络产品领导者DYMEC公司。这一收购不仅增强了GarrettCom在变电站自动化领域的实力,还为其带来了更多的技术资源和市场份额。

影响:通过整合DYMEC的技术和产品,GarrettCom进一步巩固了其在变电站网络通信技术方面的领先地位。公司的产品和解决方案被广泛应用于全球各地的变电站项目中,为电力系统的稳定运行提供了坚实的通信保障。

AND Displays公司的发展小趣事

为了降低成本、提高生产效率,AND Displays开始着手整合产业链。公司通过与上游原材料供应商建立长期合作关系,确保原材料的稳定供应和价格优势。同时,公司还加强了对下游客户的服务与支持,通过提供定制化解决方案和优质的售后服务,增强了客户黏性。此外,AND Displays还不断优化生产流程,提高生产效率,进一步降低了生产成本。

AEM [ American Electronic Materials]公司的发展小趣事

在电子行业的发展过程中,AEM始终保持着对技术创新的追求。公司不断投入巨资进行技术研发,引进先进的生产设备和制造工艺,致力于提升产品的性能和品质。通过多年的努力,AEM成功突破了多项技术难题,取得了一系列重要的技术成果。

此外,AEM还积极与产业上下游的企业进行合作,共同推动电子行业的发展。通过与供应商和客户的紧密合作,AEM不断优化供应链和销售渠道,提高了公司的运营效率和市场竞争力。

Easy Magnet Corp公司的发展小趣事

Easy Magnet Corp公司深知人才是企业发展的核心动力。因此,公司注重人才培养和引进,建立了一支高素质、专业化的研发团队。同时,公司还为员工提供了良好的工作环境和福利待遇,激发了员工的工作热情和创造力。这些举措为公司的发展提供了坚实的人才保障。

Design Gateway公司的发展小趣事

随着Gateway业务的不断发展,公司开始寻求更多的市场曝光。1987年,Gateway在《Computer Shopper》杂志上投放了一版独特的广告,吸引了众多消费者的目光。1991年,公司推出了彰显其牧场起家背景的别具一格的奶牛花斑盒状商标,这一创新举措获得了全国消费者的认可,进一步提升了Gateway的品牌知名度和市场地位。

(请注意,由于篇幅限制,以上两个故事为简化版。在实际写作中,可以进一步扩展每个故事,包括更详细的背景信息、人物对话、市场反应等。)

由于篇幅所限,这里只提供了两个故事概要。如果需要更多关于Gateway或其他电子公司的发展故事,可以进一步研究和撰写。

GE Oil & Gas Digital Solutions公司的发展小趣事
通过调整电路参数(如电阻比值、电容值等)来优化电路性能,使振荡频率与待测电阻的阻值关系更加线性化。

问答坊 | AI 解惑

高压二极管的型号

我最近用到高压整流二极管,2000V以上,3A以上,谁能提供这样二极管的型号,并且市场上容易买到…

查看全部问答>

芯片选型的求助

以前这两个功能都是用分立元件搭的,一个事是0---5V 的模拟信号,线性转化为0---3.3V的信号,一个事儿是12V,4k以内 的脉冲信号,转化为3.3v的脉冲信号,频率不变。(两种芯片4路或者8路都可以,实在没有,2路也行)        ...…

查看全部问答>

五一公司过节费大比拼?

目前公司的传统,节假日过节费都是100RMB,大家都是啥标准?…

查看全部问答>

如何判断电脑是32位机还是64位机?

如何判断个人电脑是32位机还是64位机?…

查看全部问答>

wince 产生随机数的问题

#include\"windows.h\" #include srand( (unsigned)time( NULL ) ); cout=rand()%cout; 但是报错 gobanggame.obj : error LNK2019: unresolved external symbol _time referenced in function \"public: struct tagPOINT __thiscall gobangga ...…

查看全部问答>

如何得到忙音?

打一通电话给对方, 如果对方繁忙, 或者说网络繁忙, 如何让本机响起\"嘟~~~\"的忙音呢?…

查看全部问答>

问题 100分: eVC4.0 新建一个工程,不能选择CPU

问题: eVC新建一个工程,CPU类型列表全部是灰的,不能选。 环境: windows 2000 SP4 English 安装顺序: 1.activeSync 4.5 2.eVC4 (顺带安装了 Standard SDK for Windows CE.net) 3.eVC4 SP4 4.Windows Mobile SDK 2003 还有,打开eVC4.0 的 ...…

查看全部问答>

学习WINCE需要准备那些软件工具?

我现在想在ARM9上使用WINCE,目前只接触过ARM7,电脑上安装了EVC(PB和SDK都没安装),今天初步运行EVC提示:ARM4 CPUcannot to run,要求安装SDK,我应该安装那个SDK包?另外是不是一定要与ARM9开发板连接?…

查看全部问答>

vhdl的教程与代码集合

这些都是vhdl开发者必备的东西,一个是教程,一个是代码集合!希望对大家有用…

查看全部问答>

我要买STM32仿真器2011.01.05前有效

我要买STM32仿真器,最好是图片里这种: 下载 (114.09 KB) 2011-1-4 12:50 请留下联系方式!…

查看全部问答>