Keil uVision 5 — Отладчик запускается при запуске, а не фактический код. Не удается отладить код

#assembly #arm #armv7

#сборка #arm #armv7

Вопрос:

У меня есть базовый тестовый проект, который я пытаюсь отладить в Keil.

Я импортирую файл .s и настраиваю проект для отладки симулятора:

введите описание изображения здесь

Однако, когда я нажимаю «Debug», вместо debugging Division.s выполняется отладка Startup_ARMCM3.s

введите описание изображения здесь

и независимо от того, сколько я нажимаю iterate, он никогда не переходит к разделению.s для отладки.

Как я могу конкретно отладить созданный мной файл?

Комментарии:

1. Он начинает отладку с самого начала. Ваша функция main () должна вызвать некоторый код в ваших Divisions.s, только тогда пошаговое выполнение перейдет в ваш код. Если main () не вызывает ваш код, отладчик не будет вмешиваться в ваш код.

2. И как я могу вызвать это в сборке? Это программа в стиле hello world, позволяющая начать возиться со сборкой, я действительно просто хочу иметь возможность отлаживать программу basic .s, чтобы увидеть результаты, а не программировать всю плату, прежде чем я буду твердо знать, как работает STR.

3. Замените все экземпляры SystemInit в приведенном выше коде вашим обычным именем, и оно должно быть вызвано после сброса.

Ответ №1:

Это связано с тем, что в «system_TM4c123.c» для следующего макроса установлено значение 1:

 #define CLOCK_SETUP 1 
  

что приводит к выполнению SystemInit(void) функции первым делом, которое запускается отладчиком.

Решение: изменить

 #define CLOCK_SETUP 1     
  

Для:

 #define CLOCK_SETUP 0