|
Есть вопрос, нужен ответ |
|
|
|
Apr 25 2011, 12:36
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 7-12-10
Пользователь №: 61 453

|
В одном файле есть вот это
?XD?f91x SEGMENT XDATA INPAGE ; define a SEGMENT of class XDATA RSEG ?XD?f91x PUBLIC U1_RAM,START_U1,TEST_U1 U1_RAM: DS 1 START_U1: DS 1 ; T1U: DS 2 ; T_U1: DS ; IRTHU1: DS 2 ; TEST_U1: DS 1
В другом файле вот это
$NOLIST $INCLUDE(C8051F120.INC) ; $INCLUDE(Conf_Prot.INC) ; $LIST
PUBLIC FUNC EXTRN DATA(AMPL1H,AMPL2H,AMPL3H,AMPL0H,I2) EXTRN DATA(VOLTABH,VOLTACH,VOLTBCH,VOLT0H,U2) EXTRN BIT(CONS_TIME,TST_SRAB)
EXTRN XDATA(INP_RAM_SPA,IN_SGC,LSH_RAM,LOGIC_RAM,U2_M_RAM,SGF6,U1_RAM) ;EXTRN XDATA (SGF6,U1_RAM) EXTRN IDATA(Imax,Imin,INP_VAL) ;if F_FREQ ;-MPA EXTRN DATA(FREQ)
Почему такая ошибка ????
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: U1_RAM MODULE: A_FUNC.OBJ (A_FUNC)
Ведь Переменная U1_RAM в одном файле обьявлена как PUBLIC а в другом как EXTRN - все должно быть нормально
Пишу КОД для силикиносвского процессора С8051F120 в среде Silabs IDE
Сообщение отредактировал mpavela2011 - Apr 26 2011, 05:35
|
|
|
|
|
 |
Ответов
(1 - 11)
|
Apr 26 2011, 06:10
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 7-12-10
Пользователь №: 61 453

|
Товарищи программисты, неужели мне ничем нельзя помочь ????
компилятор ругается на второй файл, где написано EXTRN XDATA(INP_RAM_SPA,IN_SGC,LSH_RAM,LOGIC_RAM,U2_M_RAM,SGF6,U1_RAM)
|
|
|
|
|
Apr 26 2011, 07:40
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 7-12-10
Пользователь №: 61 453

|
if OVER_U2 EXTRN CODE(TRIP_U2_M) EXTRN XDATA(U2_M_RAM) CLR F1 LCALL TRIP_U2_M ; ;endif1
EXTRN XDATA (U2_M_RAM) ; EXTRN XDATA (SGF6,U1_RAM) ;
MOV DPTR,#U1_RAM MOVX A,@DPTR ;CLR ACC.1 ; MOV C,ACC.1 ; MOV DPTR,#SGF6 MOVX A,@DPTR ;CLR ACC.4 ; ANL C,ACC.4 ; MOV DPTR,#U2_M_RAM MOVX A,@DPTR ORL C,ACC.1 ; MOV DPTR,#IN_SGC+1 ; MOVX A,@DPTR ORL C,ACC.5 ; CPL C MOV F1,C ;else ; CPL F1 ; endif2
так все нормально, но мне нужно не так, мне нужно чтобы endif2 был закоментирован, а endif1 раскоменитрован - так появляются предупреждения !
XVR, первый файл на линковку подается - все нором проверил.
акцентирую внимание что компилятор ругается на переменную U1_RAM
Сообщение отредактировал mpavela2011 - Apr 26 2011, 07:59
|
|
|
|
|
Apr 26 2011, 08:01
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 7-12-10
Пользователь №: 61 453

|
если в первом файле
XD?f91x SEGMENT XDATA INPAGE ; define a SEGMENT of class XDATA RSEG ?XD?f91x PUBLIC U1_RAM,START_U1,TEST_U1
может быть во втором файле после EXTRN надо писать другой тип - какой ?
Сообщение отредактировал mpavela2011 - Apr 26 2011, 09:08
|
|
|
|
|
Jun 26 2011, 11:25
|

Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135

|
Цитата(XVR @ Jun 26 2011, 00:37)  Это вы о чем? Какая функция? Какие параметры? Прошу прощения если я не внятно задал вопрос но в учебнике описано такое правило описания функций: тип_возвращаемого_значения имя_функции(список_параметров,...,...) есть ли ограничение в количестве аргументов в списке параметров?
--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
|
|
|
|
|
Jun 26 2011, 16:35
|

Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135

|
Цитата(XVR @ Jun 26 2011, 21:51)  Стандарт языка С количество параметров не ограничивает. Спасибо, что развеяли мои сомнения.
--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
|
|
|
|
|
Jun 26 2011, 17:31
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Может не совсем в тему... Если возникает такой вопрос, смею предположить, что у Вас недоработочка архитектуры программы. Вы о структурах слыхали?  Объявляете структуру с любым кол-вом полей и передаёте в функцию указатель на неё. На мой взгляд так симпатичнее и эффективнее. Удачи!
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|