说说嵌入式调试方式_第1页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、说说嵌入式调试方式对软件的开发,讲解的教程、教材都比较多,但这些都还只是在理论上举行解释,并且,对开发环境、器的作用对于一个嵌入式开发的门外汉来讲都是十分复杂的学问,这里就将我所总结出来的嵌入式开发过程的相关概念举行一下说明,主要是对嵌入式中关于片内flash,片外flash,片内ram,片外ram的相关调试工作举行一下具体的解释。我所猎取的学问的实践环境还是老样子:iar+jlink v7.0,这套环境解释一下:iar是一套十分成熟的嵌入式开发环境,之所以挑选它,是由于入门时的项目就是拿他做的,当初用的是lm1138 是m3的arm核。作为一个嵌入式的门外汉辛辛劳苦的具体了解了iar环境的一

2、个调试过程,然后就产生了惰性,哈哈,懒得用别的开发环境了。其实就是这样的,做软件开发的,尤其是嵌入式软件开发,你用什么开发工具其实都是一样的,几种开发工具ads,iar,mdk其实都是各有优缺点的,我感觉iar的环境下官方例程较多,假如采纳比较频繁的的话,基本在里面都能找到相应的例程的;并且iar是在不断更新的,目前的最新版本已经到了5.4.1了,相对十分成熟,对各种新的核心支持十分准时;ads是早期对arm开发支持的最好的环境之一,兼容全部arm命令集、伪命令集,应当可以说是标准的开发环境了,但ads环境永久停歇在了1.2版本上,对新arm核的支持已经无从谈起,它在设计上比较优越的就是将软件

3、调试axd与编辑ads是分开两个程序的,我们可以用法asd对非ads开发的bin程序举行调试,算是比较便利的,网上的资源相对来讲也是比较多的,假如是嵌入式兴趣者用法ads作为开发环境还是相当不错的。mdk没实用过,不太清晰,不过mdk是arm在放弃ads环境支持后挑选的其次个官方编译环境,对新内核的支持也是十分快速的。总的说来,做嵌入式软件开发,选用哪一中开发环境其实都是没有什么关系的,从开发上来讲,他们的主要区分主要还是集中在汇编命令不同、程序入口函数名不同等等,这些十分详情上的东西,对程序主体所用法的是彻低相同的。这些开发环境在网上都有相应的破解版,假如是个人作为学习之用挑选哪一个都是无所

4、谓的。作为仿真器来讲,jlink我认为是十分值得推举的,主要缘由还是jlink破解的十分完美,任凭在淘宝上一搜就有一堆,现在的价钱又十分的廉价,普通在80块左右用法起来就没有问题了,与正版的jlink在功能上现在已经没有什么区分了。jlink支持几乎全部片内flash烧录,以及大部分的norflash的烧录。但jlink不支持挺直的nank flash的烧录。而目前对产品开发来说所用法的仿真器如zlg的ak100来说是支持nand flash的挺直烧录的。并且在iar下不论用法jlink方式还是rdi的调试方式,都是不能用法jlink的norflash烧录程序的,只能用法片内flash的烧录算

5、法。好啦,上面的工具解释就说到这里;下面主要说一下关于iar环境调试的主要方式。在嵌入式开发中,因为对flash芯片的烧录速度较慢,读取flash芯片的速度也十分慢,而调试的时候需要频繁修改程序,对程序的读取、写入速度对开发速度影响很大。因此对调试来说,普通讲程序挺直烧入片内ram或者是片外的ram中运行的,这样调试速度极快。这在iar中是通过在linker中所设置的icf文件所实现的,在调试时,我们普通讲icf中ram rom都设置为片内ram的地址范围,这样程序在链接时所用法的地址范围都在片内ram中,iar调试时将程序镜像放于片内ram中,跳转到入口程序_iar_start就可以对程序举

6、行调试了。但有时片内ram空间并不够用法,我们需要用法片外的ram,但是我们需要知道,用法片外ram的话我们需要首先设置cpu内相应的存储器管理寄存器,告知cpu如何拜访片外ram(主要有片外ram 地址、大小、位宽、时序等)这部分工作是需要在程序写入片外ram之前就完成的,所以将这部分命令实现为iar下的linker设置中的mac文件,在该文件中完成对cpu相关寄存器的设置后,iar通过仿真器向片外ram写入数据。这里需要解释一个问题就是异样向量的拜访,我们在片内或者片外ram中调试程序的时候,是不能够运行正常的异样向量的,我们知道异样向量表是在地址空间0x000000的位置的,普通是fla

7、sh空间,(不经过remap,mmu的修改,关于remap,mmu在这里就不举行绽开解释了,改日再研究)而我们的程序都是写入ram地址空间的,这就导致我们的程序假如进入异样状态那就绝对会跑飞,就是说程序跳转到异样处理函数,而异样处理函数又指向一个不存在的函数地址,这样就十分不便利调试异样状态了。再说一下关于片内flash,片外flash的调试办法,首先,我们要明确,只要是flash不管是nand,还是norflash,对flash芯片的拜访都是需要驱动程序的,这是嵌入式初学者常常糊涂的地方,对norflash来说,它的地址线、数据线衔接与片外sram,sdram其实是差不多的,为什么对sram

8、,sdram我们只需要在mac文件中设置寄存器,而flash确一定要用法驱动程序那,这里,主要是对ram的拜访,我们只需要设置地址、大小、位宽、时序就可以拜访了,而对flash来说,我们在向其中写入或者读出数据,我们首先要向flash芯片内相应的寄存器写入指令才干都完成后续的读取、写入、设置的操作,这就是flash芯片驱动程序的作用。可能有人发觉,iar下对片内flash并没有设置flash驱动程序啊,其实这部分在我们设置工程中用法的device名称时就自动设置好啦,如我们用法lm1138的芯片,iar在将程序写入片内flash时,自动调用lm1138的flash驱动函数向flash中写入程序

9、。这样片外flash又该如何操作那,这里就要说一下啦,只要是flash就必需要有驱动,对flash芯片的烧录过程就是首先,iar在芯片的片内ram中运行flash驱动程序,将程序烧录入片内或者片外的flash芯片中。片内非flash驱动iar已经自动设置好啦,片外的flash就需要我们来写驱动了,这里就有两种方式来调用驱动了,一个是在iar下编译按照flash芯片的数据手册编写驱动,然后通过iar的flashloader调用编译好的驱动程序,片外flash芯片写入数据。还有就是功能比较全面的仿真器,可以挺直在设置时指定片外flash芯片驱动程序,iar通过相应的调试接口支持相关的仿真器的在线调试。用法jlink的话只能通过在iar下编写片外flash芯片驱动的方式开实现对片外flash芯片读写的需要。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论