#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