【发布时间】:2014-06-28 11:58:00
【问题描述】:
我对 ARM Cortex M4 系列微控制器比较陌生。 当我尝试使用 KEIL 5 模拟器调试一个简单的项目(blinky 很容易使 LED 闪烁和关闭)时,我收到如下错误:
* 错误 65:0x400FE608 处的访问冲突:没有“读取”权限 * 错误 65:0x400FE608 处的访问冲突:没有“写入”权限
我在网上搜索了一个解决方案,我得到了这个:
http://www.keil.com/support/docs/814.htm
但实际上,像上面提到的方法一样,在我的整个代码中提及我想要访问的所有地址并不容易,也不合逻辑。
请问有人可以给我推荐其他的吗?
(实际上,我打算模拟的所有项目都出现此错误,因此我无法模拟任何东西)。
这是我一直在使用的简单代码:
#define GCGPIOR (*((int*)0x400FE608))
int main(void)
{
GCGPIOR |= 0x20;
return 0;
}
我正在使用这个 mc:TM4C1294NCPDT
【问题讨论】:
-
嗯?为什么您不想使用正确的解决方案?您正在映射一个范围,而不是单个地址...
-
所以我必须提到我想使用的每个地址范围?但是为什么当我下载一些现成的例子时问题仍然存在!编写示例代码的人不应该已经这样做了吗? ..他们是官方的例子,所以我认为有问题!在 IAR 等所有其他 IDE 中是否存在此问题?
-
大多数人使用真正的硬件。
-
@MohammedNoureldin:不,您不必提及每个范围 - 您可以映射整个内存。但是,人们不得不质疑为什么您要在链接器知识之外直接寻址内存?访问冲突报告用于捕获错误。什么“官方示例”?添加这些链接或问题的实际代码将对您的事业有所帮助。您是否选择了合适的设备进行仿真?您是否在 target options 对话框或 linker options scatter file 中正确设置了内存区域(如果您正在使用)?
-
@MohammedNoureldin:我很确定您在 Cortex-M4 上没有 4Gb 的内存!你的回答w.r.t。示例没有帮助-您仍然没有将代码或链接添加到您的问题的源代码。我想查看直接访问链接器映射之外的内存的实际代码,因为坦率地说我对此表示怀疑,这可能是你真正的问题。您可能在询问是否修复症状,而实际上您需要找到真正的问题。
标签: embedded arm microcontroller keil cortex-m