读或写存储器访问的PIC24断点

时间:2013-03-01 21:25:47

标签: embedded pic mplab pic24

我的环境......

  • PIC24
  • MpLab(V.8.80)
  • ICD 3

我有一个我想看的字节,看看哪些例程正在读取,哪些正在写,以及何时发生

我只能在

上设置断点
  • 写入字节时,或
  • 何时阅读

有没有人知道我可以在任一访问中设置断点的方法?也就是说,我想看看写什么,读什么,按什么顺序,通过哪个指令,在哪个例程中。

我所拥有的只是PICkit 3和ICD-3。这是一个双处理器系统,两个芯片通过连接的一些线路(最终通过外设引脚选择)与各自的UART进行通信

我从未使用,触摸过,甚至没有看过真正的冰。那可以让我这样做吗?即任何总线存储器访问。

这就是MpLab让我现在用ICD-3做的事情 enter image description here

1 个答案:

答案 0 :(得分:0)

您可以将变量包含在下面的函数中,放入新的.c文件中。在头文件上设置define。

它可能有点重,但有替换它可能会有所帮助。 FILE LINE 是编译器标志,可以让您了解源代码中的哪个文件以及调用它的哪一行。 Nop();是因为中断很少发生在指令中。

在文件和行上添加一个监视,以查看它的调用位置。

#define setvar(x) zsetvar(x, __FILE__, __LINE__)
#define getvar() zgetvar( __FILE__, __LINE__)


byte my_var;

void zsetvar(byte val, volatile char * file, volatile char * line)
{
 my_var = val;// set breakpoint
 Nop(); 
}
byte zreadvar(volatile char * file, volatile char * line)
{
 Nop(); //set breakpoint
 Nop();
 return my_var;
}