你好。 首先、我认为我遇到的问题与 此主题类似、但他们的解决方案似乎对我没有帮助。
那么、有关我的项目的信息。 我会尽量做到彻底。
下面是我的链接器 CMD 文件的设置方式。
根据 F28377S 数据表第6.3.1节的下表6-1、我应该处于 CLA 的访问范围内。
以下是主循环的相关部分:
和 CLA_configClaMemory 和 CLA_initCpu1Cla1这两个函数
我最初不是初始化 RAM 块、但我想尝试一下它是否起作用。
我还跟着 CLA 实践技术讲座、尝试消除访问违规问题。
下面看一下我的代码、标题的相关部分:
我的.c 文件的相关部分
我的.cla 文件的相关部分
我注意到的一件事是、现在我正在初始化 RAM、但我似乎没有在_mdebugstop 处停止、而是在以前发生过这种情况。 我也尝试过使用和不使用 asm (" MSTOP ")的函数、它看起来没有什么不同。
从我的地图上看,似乎事物都是他们应该去的地方。 我知道我的 Prog RAM 很大、尽管我现在几乎没有使用任何一个。 我已经评论了我的绝大多数程序代码、以处理这个(应该是)简单的问题。
现在、通过全面了解我的代码的结构、我们可以了解我面临的问题。 在不进行 RAM 初始化的情况下运行时、我几乎立即进入非法地址空间、完全绕过_mdebugstop。 在运行 RAM 初始化时也会发生同样的情况。
在创建这些屏幕截图时、我还注意到 CLA 上有一个寄存器 MMEMCFG、C28和编译器似乎无法访问该寄存器。 在 TRM 和数据表的修订版 R 中、它似乎也没有记录。 我不确定如何编辑这些内容。 我尝试了与 此类似的解决方案 (我知道它用于不同的处理器、但我想我会尝试它)、没有骰子。