<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
作者:华清远见讲师,赵明
目前在市场上最常用的ARM编程工具无非是Real View MDK和IAR Embedded Workbench。
我个人觉得,目前IAR是比较成熟、稳定、使用方便等优点,深受广大嵌入式开发者的喜爱。Real view MDK得到ARM公司的大力支持,功能很强,也逐步完善起来。
使用Real view(以下省略为RV)学习ARM指令的时候,初学者在调试过程中,经常会遇到类似于如下的错误消息。
Error 65:access violation at 0xFFFFFFFC: no “write” permission
这个错误一般在使用RV模拟器(使用’debug’的’Use simulator’模式)进行调试时出现。
在发生这个错误时,观察寄存器的话,会错误消息中的地址正是SP(R13)的值。从此可以推测,错误就在进行堆栈操作时发生。
那为什么进行堆栈操作时,发生错误呢?因为,现在使用的是模拟器,而不是真正的目标板,所以对这些内存区域没有任何定义。
所以我们必须在模拟器中要将这个内存地址段的属性设置为可读/可写。
下面,以S3C2410模拟器为例,说明解决上述问题的几种方法:
第一种方法:打开(project -> options..)工程的选项对话框,其中将’Debug’标签的’Dialog DLL’中的DLL文件名(默认为DARMSS9.DLL)改成DARMST9.DLL
第二种方法:在ini file(.ini文件)中写入以下部分,表示这个内存区域是可读/可写/可执行。
map 0xFFFFF000,0xFFFFFFFF read write exec
第三种方法:这是在调试过程中的修改方法,所以在每次运行的时候,都要设置。
先进入调试模式(crtl+F5),接下来在debug菜单下打开memory_map对话框,在这个对话框中添加新的映射区域(map range)和它的属性。
分享到:
相关推荐
在你使用RealViewMDK下载程序的时候有遇到过类似于如下的错误信息吗? Load "D:\\david\\project\\farsight\\LED_UART\\obj\\led_test.AXF" No Algorithm found for: 30000000H - 300041EFH Erase ...
本文主要探讨了在使用RealView MDK进行嵌入式ARM开发时,初学者可能会遇到的一个常见问题——"access violation"错误,以及如何解决这个问题。 RealView MDK和IAR Embedded Workbench都是市场上广泛使用的ARM编程...
在使用RealView MDK(RealView Microcontroller Development Kit)进行软件开发时,特别是针对ARM处理器如S3C2410进行调试时,开发者可能会遇到一个典型的问题——“access violation at 0xFFFFFFFC: no ‘write’ ...
RealViewMDK工程模板说明 为方便应用,特此建立模板. LuminaryEvalBoard仿真工程模板:使用Luminary评估板自带仿真器仿真时的模板; Ulink2仿真器工程模板:使用Ulink2仿真器仿真时的模板; 应用时将文件*.C,*.h等...
RealViewMDK工程模板说明 为方便应用,特此建立模板. LuminaryEvalBoard仿真工程模板:使用Luminary评估板自带仿真器仿真时的模板; Ulink2仿真器工程模板:使用Ulink2仿真器仿真时的模板; 应用时将文件*.C,*.h等...
1. **检查编译链接选项**:确保所有选项都符合RealView MDK的要求,特别是那些在ADS中有效的选项可能在RealView MDK中已经过时。 2. **更新Makefile**:如果项目使用Makefile进行构建,请确保其符合RealView MDK的...
RealViewMDK4.71下LPC1768FBD100的编译环境设置 一、工程属性配置 在新建工程和程序编写过程中,需要对工程属性进行配置和修改。打开属性配置对话框有两种方法:第一种是从菜单栏点击“Project”->“Options for ...
1. **ROM启动代码**:这部分代码主要负责以下任务: - **初始化CPU寄存器**:设置处理器的状态,比如关闭中断、设置堆栈指针等。 - **初始化内存系统**:包括设置内存映射、初始化DDR或者SRAM等。 - **加载引导...
有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其Keil C51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。 Keil公司在2007年被ARM公司收购。其两家公司分别更名为ARM...
在嵌入式系统开发中,S3C2440是一款广泛使用的ARM9处理器,其性能强大,适用于各种嵌入式应用。Realview MDK(Microcontroller Development Kit)是由ARM公司提供的集成开发环境,特别适合于基于ARM架构的微控制器...
1. Realview MDK安装程序:可能包含不同版本的MDK,如Realview MDK-ARM或uVision4的安装包。 2. 用户手册和参考指南:详细解释MDK的使用方法、API参考、配置选项等。 3. 示例代码和项目:帮助初学者理解如何在MDK中...
realview MDk 注册机 支持realview4.01 打开KEIL,选择File菜单下的License Management,拷贝CID; 打开Arm keygen.exe,填入CID,选择Arm选项,生成License,并注册
软件安装完毕后,通过“帮助”菜单下的“uVision帮助”,开发者可以获得详尽的使用指南,包括软件注册、基本操作等。这不仅加速了学习进程,也便于解决实际操作中遇到的问题。 **启动代码**的自动生成是RealViewMDK...
本文将详细介绍如何使用RealViewMDK-ARM (简称MDK) 来构建STM32项目,并解释各个步骤的意义。 #### 二、准备工作 1. **开发环境准备** - **编译软件**:RealViewMDK-ARM4.12(简称MDK或KEIL)。如果你是从51单片机...
RealViewMDK2440的初始化文件Ext_RAM.ini
- 输入CID号,选择`ARM`作为目标,选择`Prof.Developers Kit/RealViewMDK`。 - 点击`Generate`生成序列号。 - **添加许可证**:回到MDK的License Management界面,粘贴生成的序列号,点击`ADDLIC`完成添加。 ####...
RealViewMDK2440的初始化文件Ext_RAM.ini
**1. 工具与环境** - **工作环境**: 支持多种IDE环境,如IAR EWARM5.20、Keil RealViewMDK3.22a、GreenHills5.03等。 - **源代码库**: 提供了详细的文件结构和版本更新指南,方便用户管理和使用。 - **自定义工作区...