设为首页收藏本站

无忧开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索

说说嵌入式调试方式

[复制链接]
kuaiyigou123 发表于 2016-6-15 10:50:11 | 显示全部楼层 |阅读模式
对嵌入式软件的开发,讲解的教程、教材都比较多,但这些都还只是在理论上进行说明,并且,对开发环境、仿真器的作用对于一个嵌入式开发的门外汉来讲都是非常复杂的知识,这里就将我所总结出来的嵌入式开发过程的相关概念进行一下解释,主要是对ARM嵌入式中关于片内flash,片外flash,片内RAM,片外RAM的相关调试工作进行一下详细的说明。
我所获取的知识的实践环境还是老样子:IAR+JLINK V7.0,这套环境说明一下:IAR是一套非常成熟的嵌入式开发环境,之所以选择它,是因为入门时的项目就是拿他做的,当时用的是LM1138 是M3的ARM核。
作为一个嵌入式的门外汉辛辛苦苦的详细了解了IAR环境的一个调试过程,然后就产生了惰性,哈哈,懒得用别的开发环境了。其实就是这样的,做软件开发的,尤其是嵌入式软件开发,你用什么开发工具其实都是一样的,几种开发工具ADS,IAR,MDK其实都是各有优缺点的,我感觉IAR的环境下官方例程较多,如果采用比较常见的MCU的话,基本在里面都能找到相应的例程的;并且IAR是在不断更新的,目前的最新版本已经到了5.4.1了,相对非常成熟,对各种新的核心支持非常及时;ADS是早期对ARM开发支持的最好的环境之一,兼容所有ARM指令集、伪指令集,应该可以说是标准的开发环境了,但ADS环境永远停留在了1.2版本上,对新ARM核的支持已经无从谈起,它在设计上比较优越的就是将软件调试AXD与编辑ADS是分开两个程序的,我们可以使用ASD对非ADS开发的bin程序进行调试,算是比较方便的,网上的资源相对来讲也是比较多的,如果是嵌入式爱好者使用ADS作为开发环境还是相当不错的。MDK没有用过,不太清楚,不过MDK是ARM在放弃ADS环境支持后选择的第二个官方编译环境,对新内核的支持也是非常迅速的。总的说来,做嵌入式软件开发,选用哪一中开发环境其实都是没有什么关系的,从开发上来讲,他们的主要区别主要还是集中在汇编指令不同、程序入口函数名不同等等,这些非常细节上的东西,对程序主体所使用的C语言是完全相同的。这些开发环境在网上都有相应的破解版,如果是个人作为学习之用选择哪一个都是无所谓的。
作为仿真器来讲,JLINK我认为是非常值得推荐的,主要原因还是JLINK破解的非常完善,随便在淘宝上一搜就有一堆,现在的价钱又非常的便宜,一般在80块左右使用起来就没有问题了,与正版的JLINK在功能上现在已经没有什么区别了。JLINK支持几乎所有片内flash烧录,以及大部分的Norflash的烧录。但JLINK不支持直接的NANK flash的烧录。而目前对产品开发来说所使用的仿真器如ZLG的AK100来说是支持NAND flash的直接烧录的。并且在IAR下不论使用JLINK方式还是RDI的调试方式,都是不能使用JLINK的Norflash烧录程序的,只能使用片内flash的烧录算法。

是首先,IAR在芯片的片内RAM中运行flash驱动程序,将程序烧录入片内或者片外的flash芯片中。片内非flash驱动IAR已经自动设置好啦,片外的flash就需要我们来写驱动了,这里就有两种方式来调用驱动了,一个是在IAR下编译根据flash芯片的数据手册编写驱动,然后通过IAR的flashloader调用编译好的驱动程序,片外flash芯片写入数据。还有就是功能比较全面的仿真器,可以直接在设置时指定片外flash芯片驱动程序,IAR通过相应的调试接口支持相关的仿真器的在线调试。使用JLINK的话只能通过在IAR下编写片外flash芯片驱动的方式开实现对片外flash芯片读写的需要。
最后说一下程序链接与程序烧录的关系,在程序链接时指定ROM,RAM地址的范围,ROM,RAM其实就相当于程序烧录地址,也就是说,设置链接器地址时需要对应芯片数据手册、开发板的地址空间范围等,设计好程序运行地址空间,设置链接地址。
快易购qegoo是电子元器件智能导航工具齐全:5218多万种产品型号快捷:一键对比精准:官网比对您可以:查价格、查库存量、查货期、查资料参数、下载?元器件数据手册…
http://www.qegoo.cn/search?part=L6562D
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

所属分类: 学员专区