Microchip
直播中

卜文月

7年用户 182经验值
私信 关注
[问答]

监视的变量不反映已初始化的值怎么办

我是微芯片组装的新手,现在我正熟悉MPLABX IDE v3.15中的XC16编译器和模拟器。我创建了一个“.data”部分并添加了下列初始化变量:.data d1:.byte 0x01d2:.byte 0x23d3:.byte 0x45d4:.byte 0x67d5:.byte 0x89I编译程序并且没有得到错误,但是当我单击模拟器上的变量选项卡时,所观察的变量不反映上面的值。我使用的是MaMasM33模板。我错过什么了吗?谢谢你,Reddog

回帖(7)

周娟

2020-5-15 13:21:27
Reddog,你能上传你的项目以便我们调试吗?谢谢。还有,我想知道你是否真的开始了调试会话?只是做一个构建不会把数据值放在RAM内存中。相反,代码将在程序中生成,以便在启动期间加载值。因此,实际上必须启动调试会话并在值出现之前执行初始化代码。(例如,在主干上设置断点并运行直到你击中它。)
举报

李秋年

2020-5-15 13:31:02
谢谢你的回复。很好的是,我没有正确地进入调试模式。我正在调试通过调试和调试主要项目,然后击中F5运行到断点。我已经附加了.s文件,虽然里面没有很多。只需要变量声明,并通过不同的格式将值10移动到工作寄存器中,因为此时我只想熟悉XC16汇编程序和语法。除了初始化变量没有初始化外,一切似乎都在工作。
举报

周娟

2020-5-15 13:46:45
所以,就像我前面说过的,必须执行代码来初始化这些变量的RAM位置。通常XC16会为你生成这个代码。但是,当您定义自己的_reset部分时,您使XC16短路了。我相信,如果您刚刚摆脱_reset部分,这一切都将为您工作。XC16会为你生成一个如果你不创建一个。此外,XC16还将插入您需要的变量初始化代码。最后的警告是你的输入函数应该标记为Maund。
举报

周娟

2020-5-15 14:04:20
有关进一步的信息,您可以在XC16AASMLIKKYUSSRSX指南中查看102.2和10.8节。它讨论数据是如何初始化的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分