Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пошаговая отладка в Keil
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
Prowler
Есть проект, состоящий из main.c и flash.h с объявленными переменными и функциями работы с флэш. При пошаговой отладке при переходе в функцию которая находится в другом файле, keil не переключает отображение на другой файл, а идет по строкам main.c, но номера строк соответствуют тем строкам по которым он должен был бы идти во flash.h. Почему так происходит? Это глюк программы или необходимо что-то делать по другому?

Также и точка останова в во flash.h не ставиться..
Палыч
Цитата(Prowler @ Jul 7 2010, 08:51) *
... или необходимо что-то делать по другому?
Разбейте Ваш файл flash.h на два: flash.h и flash.c. Из первого во второй перенесите переменные и функции, оставив, при необходимости, в flash.h только их описание. Файл flash.c включите в проект.
Prowler
Цитата(Палыч @ Jul 7 2010, 10:03) *
Разбейте Ваш файл flash.h на два: flash.h и flash.c. Из первого во второй перенесите переменные и функции, оставив, при необходимости, в flash.h только их описание. Файл flash.c включите в проект.

А если при этом переменные должны быть доступны и из main.c и из flash.c ? если их объявлять во flash.h, то вылезает куча предупреждений типа:

*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL

если в main.c, то их невидит flash.c и наоборот, хотя переменные extern..
Палыч
Цитата(Prowler @ Jul 7 2010, 11:57) *
А если при этом переменные должны быть доступны и из main.c и из flash.c ? если их объявлять во flash.h, то вылезает куча предупреждений типа... если в main.c, то их невидит flash.c и наоборот, хотя переменные extern..

Например, так:
В файле flash.c
int x;
В файле flash.h
extern int x;
В файле main.c
#include "flash.h"

P.S. Возможно, у Вас не продуман интерфейс с процедурами работы с флэш, раз требуются передача данных через глобальные переменные.
Prowler
Спасибо! так не ругается.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.