реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Пошаговая отладка в Keil, глюки если функции не в одном файле
Prowler
сообщение Jul 7 2010, 04:51
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 171
Регистрация: 22-03-05
Из: Новосибирск
Пользователь №: 3 578



Есть проект, состоящий из main.c и flash.h с объявленными переменными и функциями работы с флэш. При пошаговой отладке при переходе в функцию которая находится в другом файле, keil не переключает отображение на другой файл, а идет по строкам main.c, но номера строк соответствуют тем строкам по которым он должен был бы идти во flash.h. Почему так происходит? Это глюк программы или необходимо что-то делать по другому?

Также и точка останова в во flash.h не ставиться..
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 7 2010, 07:03
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Prowler @ Jul 7 2010, 08:51) *
... или необходимо что-то делать по другому?
Разбейте Ваш файл flash.h на два: flash.h и flash.c. Из первого во второй перенесите переменные и функции, оставив, при необходимости, в flash.h только их описание. Файл flash.c включите в проект.
Go to the top of the page
 
+Quote Post
Prowler
сообщение Jul 7 2010, 07:57
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 171
Регистрация: 22-03-05
Из: Новосибирск
Пользователь №: 3 578



Цитата(Палыч @ 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..
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 7 2010, 08:37
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(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. Возможно, у Вас не продуман интерфейс с процедурами работы с флэш, раз требуются передача данных через глобальные переменные.
Go to the top of the page
 
+Quote Post
Prowler
сообщение Jul 7 2010, 08:48
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 171
Регистрация: 22-03-05
Из: Новосибирск
Пользователь №: 3 578



Спасибо! так не ругается.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 20:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01518 секунд с 7
ELECTRONIX ©2004-2016