`
mmdev
  • 浏览: 13252291 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

RVDS和MDK嵌入式开发工具调试脚本编写

 
阅读更多

最早使用的ARM开发工具是MDK 3.1,当时是为TIDM335开发板上移植.Net Micro Framework,由于该开发板没有ISP工具,所以要调试内存版本的TinyCLR程序,必须要预先初始化SDRAM,否则无法把程序Download到内存中去。幸好MDK开发工具提供了一些脚本示例,所以相对比较容易的编写了一个初始化DM335 SDRAM的脚本,但是使用RVDS却没有这么幸运。

后期考虑到开发需要,我这边又配置了RVDS 4.0开发工具,由于一般用它调试ATMEL AT91的板子,该板子提供了ISP工具,所以调试时先打开该工具进行一遍SDRAM初始化,然后在用RVDS进行LoadImage调试,虽然有些麻烦,但也将就了。

最近在调试DM335上的wifi接口程序,奇怪的是用MDK编译运行后,出现异常,并且单步跟踪时,MDK工作老不正常。而同样的程序用RVDS编译后,下载到开发板运行,一切OK,所以我这边只好转移到RVDS平台上进行开发调试了。

但是,这就出现了开头提出的问题,没有ISP工具,如何进行SDRAM初始化?

我同事一直在用RVDS调试DM335,他的办法是编写了一个小的初始化SDRAM的程序,先用RVDS运行一遍,然后再加载实际要调试的程序。这不失为一种方法,但是我总觉得有些不方便,加上以前有写MDK脚本的经验,所以就希望在RVDS上编写一个类似的脚本。

如果你在搜索引擎搜索“MDK脚本”关键字时,你会搜出很多相关文章,但是你搜索“RVDS脚本”关键字时,却没有这么幸运,没有一篇文章相关介绍,所以最后没有办法,只好到官方网站,查看相关的技术文档了。

官网脚本相关文档的链接如下,想深入研究的朋友可以进入看一看。

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0175k/Cihcbhaa.html

好了,入正题。一般写调试脚本,无非就是声明变量和函数,再就是对寄存器进行读写,然后下载镜像文件,最后在设置一下PC指针,就可以进行调试了。所以下面就这几个方面,比较一下MDKRVDS脚本的异同(以DM335的调试脚本为例)。

一、变量声明

1、 MDK

DEFINE LONG PSC;

DEFINE LONG SYSTEM;

PSC = 0x01C41000;

SYSTEM = 0x01C40000;

2、 RVDS

add long PSC = 0x01C41000

add long SYSTEM = 0x01C40000

二、函数声明

1、 MDK

FUNC void psc_change_state(void)

{

//…

}

调用:

Clock_Setup();

2、 RVDS

define /R void psc_change_state()

{

}

.

注意:后面要有一个“.

调用:

macro Clock_Setup()

三、寄存器读写

1、 MDK

//0 Ignore request if the state is already set as is

if((_RDWORD(PSC+0x800+m_ID*4) & 0x1F) == m_State) return;

//1 Wait for PTSTAT.GOSTAT to clear

while(_RDWORD(PSC+0x128) & 0x1);

//2 Set MDCTLx.NEXT to new state

_WDWORD(PSC+0xA00+m_ID*4, _RDWORD(PSC+0xA00+m_ID*4) & 0xFFFFFFE0);

_WDWORD(PSC+0xA00+m_ID*4,_RDWORD(PSC+0xA00+m_ID*4) | m_State);

2、 RVDS

//0 Ignore request if the state is already set as is

if((*(long *)(PSC+0x800+m_ID*4) & 0x1F) == m_State) { return; }

//1 Wait for PTSTAT.GOSTAT to clear

while(*(long *)(PSC+0x128) & 0x1);

//2 Set MDCTLx.NEXT to new state

*(long *)(PSC+0xA00+m_ID*4) &= 0xFFFFFFE0;

*(long *)(PSC+0xA00+m_ID*4) |= m_State;

四、镜像调入

1、 MDK

exec("LOAD C://MicroFramework//BuildOutput//ARM//MDK3.1//le//RAM//debug//DM335//bin//TinyCLR.axf INCREMENTAL");

2、 RVDS

load/r 'C:/MF/client_v4_0_rtm/BuildOutput/ARM/RVDS4.0/le/RAM/debug/DM335/bin/tinyclr.axf'

五、设置PC指针

1、 MDK

PC = 0x80120000;

2RVDS

@PC = 0x80120000;

六、脚本调用

1、 MDK(相关资料网上比较多,略)

2、 RVDS

方法一:直接在cmd窗口输入:Run>inc c:/mf/bat/dm335.inc

方法二:通过【Tools->Include Commands from file】菜单调入脚本文件,一旦运行过一次,该文件就会在【Tools->Recent Commands Scripts】菜单中出现,以后调用便非常方便。

运行后的截图如下:

mf

mf

分享到:
评论

相关推荐

    RVDS和MDK嵌入式开发工具调试脚本编写.doc

    《RVDS与MDK嵌入式开发工具调试脚本编写》 在嵌入式系统开发中,调试工具的选择和使用至关重要。本文将重点探讨两种常用的ARM开发工具——RealView Development Suite (RVDS) 和Keil Microcontroller Development ...

    嵌入式系统的调试工具及其开发环境.doc

    总的来说,嵌入式系统的调试工具和开发环境是开发过程中的关键环节,而交叉编译工具链则是连接工作站和嵌入式目标平台的桥梁。理解并掌握如何构建和使用这样的工具链,对于进行高效的嵌入式系统开发至关重要。

    ARM DS-5 RVDS MDK-ARM 三款ARM官方工具软件比较区别选择

    本文将详细对比分析DS-5、RVDS和MDK-ARM这三款ARM官方工具软件的主要特点及适用场景。 #### ARM MDK-ARM **定位与特点** 1. **定位**:MDK-ARM主要面向微控制器开发,特别适用于基于单核ARM TDMI、Cortex-M或...

    rvds 4.0 嵌入式开发环境补丁

    将所有文件解压到RVDS的安装目录下(如:f:ARM),执行crack.bat license是rvds.dat,把别忘了替换网卡MAC 会有fail提示,正常。 只能执行一次,多了会出问题 By Hacx3rn 有时需要重启

    DS-5 MDK uVision4 RVDS Realview C51等22个ARM开发工具软件概念全解析

    本篇内容将详细介绍DS-5、MDK、uVision4、RVDS、Realview、C51等22个流行的ARM开发工具软件,及其相关的概念和关系。 1. ARM Development Suite(ADS) ADS是ARM早期开发的一个软件工具包,主要用于嵌入式软件开发...

    ARM嵌入式开发手册

    通过这些代理商,开发者可以获取RealView系列工具、KEIL工具(如PK51, PK166, MDK-ARM等)以及其他嵌入式开发资源的销售和技术支持服务。 ### 结论 ARM嵌入式开发是一个综合性强、技术门槛较高的领域,但借助于...

    MDK5.26开发软件

    MDK5.26开发软件,全称Keil uVision5.26,是一款由ARM公司授权、Keil Software开发的嵌入式系统开发工具,主要用于C/C++编程的微控制器开发。它集成了编译器、调试器、模拟器以及项目管理工具,是嵌入式开发领域的...

    RealView MDK调试资料

    RealView MDK中生成带调试信息和不带调试信息的AXF文件.pdf RealView MDK中结构体存储方式.pdf Realview MDK中编译器对中断处理的过程详解.pdf Realview MDK中调试脚本的详细解析.pdf Realview MDK中链接脚本详细...

    RealView MDK 调试资料

    RealView MDK中生成带调试信息和不带调试信息的AXF文件.pdf RealView MDK中结构体存储方式.pdf Realview MDK中编译器对中断处理的过程详解.pdf Realview MDK中调试脚本的详细解析.pdf Realview MDK中链接脚本详细...

    三星6410裸机RVDS2.2测试程序

    三星6410裸机RVDS2.2测试程序是一个针对三星6410处理器的开发和调试工具,主要用于在没有操作系统支持的环境下进行硬件功能的验证和性能测试。这个程序来自于飞凌OK6410开发板的配套光盘,确保了其适用性和可靠性。...

    ADS与RVDS和RVMDK

    标题中提到的ADS、RVDS以及RVMDK均为ARM系列开发环境的产品,他们分别代表了ARM在嵌入式开发工具领域的不同发展阶段和策略。ADS(ARM Developer Suite)是最早由ARM公司推出的集成开发环境,主要用于ARM处理器的软件...

    RVDS简单使用介绍

    总结以上内容,RVDS作为一款成熟的嵌入式开发工具,支持从创建工程到调试程序的完整流程。开发者通过RVDS可以方便地进行代码编写、编译、连接和调试,极大地提高了开发效率。用户只需掌握RVDS的基本操作和配置方法,...

    rvds安装软件及使用文档

    **嵌入式开发工具RVDS详解** RVDS(RealView Development Suite)是由ARM公司推出的针对ARM架构处理器的强大嵌入式开发工具集。本文档将详细阐述RVDS的安装过程以及如何进行有效使用,帮助开发者更好地理解和操作这...

    RealView_MDK_2440_快速开发快速入门

    知识点:RealView MDK开发入门、ARM微控制器开发工具、RealView MDK与ADS的对比和迁移、开发环境设置。 1. RealView MDK开发入门 RealView MDK(Microcontroller Development Kit)是由ARM公司推出的一款集成开发...

    嵌入式集成开发环境RVDS.pptx

    RVDS是arm最新的集成开发工具,已经取代了ADS成为最受欢迎的arm开发工具,本文是RVDS的使用方法和配置方法图文教程。

    RVDS环境搭建工具,之前项目搭建的资料及环境

    RVDS(RealView Development Suite)是ARM公司推出的一款针对嵌入式系统的开发工具套件。它主要用于ARM架构微控制器的软件开发,提供了包括编译器、链接器、调试器等在内的全套开发工具。RVDS能够帮助开发者高效地...

    OK6410 RVDS 调试手册

    - **RVDS2.2**:RealView Development Suite 2.2是一款由ARM公司开发的嵌入式软件开发工具集,用于编写和调试基于ARM架构的嵌入式系统软件。 - **安装步骤**:详细介绍如何在Windows XP操作系统下安装RVDS2.2,包括...

Global site tag (gtag.js) - Google Analytics