jicheng0622

【原创】程序支持断点数由谁决定,硬件or软件?

0
阅读(3486)

    “断点”这个词对我们这群搞嵌入式的来说再熟悉不过了,在我们平时debug代码的时候,断点方式是使用最频繁的手段之一。它简单高效,常常可以事半功倍的帮助我们验证相应功能或者定位bug,实在是“居家旅行,调试代码,必备工具啊”,哈哈。

    不过最近有博友问我,同时在看帖子的时候也发现这个问题,有些新手对断点的使用上存在一定的误解,其中之一,认为断点是可以无限设置的,即断点数是没有限制的,另外,还有人虽然觉着断点是有限的,但认为断点数是由开发环境(IDE)决定的。所造成的直接影响是,有些人理所当然的设置了N个断点,但却不知道其中的某些断点由于超出了限制而失去了作用,从而造成误判。

    所以这里我觉着有必要给大家做下纠正,其实断点数是由硬件平台的内核决定的,对ARM来说,其内部调试组件决定了其所支持的断点数量,下图我对ARM Cortex-M0/M0+、Cortex-M3/M4所支持的断点数罗列了一下(其中M0与M0+断点特性相同,M3与M4断点特性相同),这些数据可以从ARM官网得到:

image

image

    哎,今天肚子有点不好受,不多说了,先撤了,呵呵,未完待续~