Я программирую микроконтроллер STM8S, используя STVD IDE. Он использует COSMIC-компилятор.
Я обнаружил, что есть достоверный показатель, который неожиданно вырос. При отладке я обнаружил, что в коде сборки есть строка, в которой эта переменная увеличивает свое значение. Это функция с именем c_lgadc
. Иногда эта сборочная линия вызывается, когда в стеке вызовов не отображается связанная с ADC
функция.
Я не понимаю, откуда этот код и что это за c_lgadc
? У меня нет функции в моем коде C с именем c_lgadc
Вот скриншот разборки.
UPDATE:
- Я не знаю, какой код на C следует проверять, так как стек вызовов
каждый раз, когда вызывается эта линия разборки.
- Я заметил, что когда я перехожу в отладчик,
до последней строки конкретного таймера ISR.
- Я также заметил, что строка со второй точкой останова вызывает добавление к моей переменной.
Строка с первой точкой останова всегда вызывается 5 раз
со второй точкой останова вызывается один раз и т. д.
- Я бы хотел знать, как мне отлаживать это дальше, чтобы предотвратить неожиданное добавление к моей переменной.
UPDATE2:
Я нашел следующее в map file
:
c_lgadc 0000f39c defined in (C:\Users\xxxxxxxx\CXSTM8\Lib\libm0.sm8)lgadc.o section .text
used in Debug\stm8s_it.o
Я не уверен, поможет ли это выяснить проблему?