 |
Форум за електроника Български форум за електроника, ремонти, схеми, документация
|
| Предишната тема :: Следващата тема |
| Автор |
Съобщение |
p_stoyanoff Опитен потребител

Регистриран на: 14 Окт 2008 Мнения: 537
|
Пуснато на: Пон Яну 03, 2011 11:18 Заглавие: Microchip TCP/Ip stack Проблем! |
|
|
Заредих всички необходими файлове. Компилатора започва да работи, но когато дойде ред на линкера ми дава грешка:
Error - could not find definition of symbol 'MACSetReadPtrInRx' in file './IP.o'.
Използвам ENC28J60 и PIC18F4520. Предполагам, че във файла IP.c трябва да дефинирам този метод понеже забелязах, че се използва, но няма дефиниция.
Може ли някой да помогне? |
|
| Върнете се в началото |
|
 |
Cino Нов потребител

Регистриран на: 26 Мар 2006 Мнения: 12 Местожителство: София
|
Пуснато на: Пон Яну 03, 2011 18:38 Заглавие: |
|
|
ти този ENC_CS_TRIS дефинира ли го ?
както и всички останали пинове за връзка с ENC28J60. |
|
| Върнете се в началото |
|
 |
p_stoyanoff Опитен потребител

Регистриран на: 14 Окт 2008 Мнения: 537
|
Пуснато на: Пон Яну 03, 2011 20:00 Заглавие: |
|
|
| От къде го измисли тоя TRIS и каква връзка има с тоя метод дето ми дава, че не го намира. По принцип в ръководството пише че грешки от този тип could not find definition for се дължат на грешен линкер скрипт - .lkr. Аз съм заредил този на контролера p18F4520.lkr. Само него! Друг трябва ли ми??? |
|
| Върнете се в началото |
|
 |
Cino Нов потребител

Регистриран на: 26 Мар 2006 Мнения: 12 Местожителство: София
|
Пуснато на: Пон Яну 03, 2011 21:31 Заглавие: |
|
|
вижте p_stoyanoff,
по добре прочетете и потърсете какво точно имат предвид хората които искат да ви помогнат, преди да пишете безмислени постове,
В езика на който е написан tcp/ip стека на Microchip, не се използват "методи" .а се използват функции :).
Има файл наречен "HardwarProfile.h", в който е описана конкретната хардуерна постановка , и където е дефиниран ENC_CS_TRIS
примерно: #define ENC_CS_TRIS (TRISDbits.TRISD14)
след него са описани и другите пинове които се ползват за комуникация със чипа ENC28J60. Ако вашата постановка е различна от готовите китове пр. EXLORER16,PIC18_EXPLORER.., трябва да опишете специфичните особености при
#elif defined(YOUR_BOARD)
// Define your own board hardware profile here
#endif
Файла където е дефиницията на функцията MACSetReadPtrInRx е ENC28J60.c от стека. В който файл са и конкретните функции обслужващи и този чип. Забележете че целия файл се компилира условно ако:
// Make sure that this hardware profile has an ENC28J60 in it
#if defined(ENC_CS_TRIS)
.....................
т.е когато не е дефиниран ENC_CS_TRIS, не се компилира файла , и съответно нямате дефиниция на функцията , и още няколко функции.
Напишете коя версия на стека ползвате, коя версия на MPLAB и т.н
Потърсете и в Google
http://www.microchip.com/forums/tm.aspx?high=&m=517727&mpage=1#517727 |
|
| Върнете се в началото |
|
 |
p_stoyanoff Опитен потребител

Регистриран на: 14 Окт 2008 Мнения: 537
|
Пуснато на: Нед Яну 09, 2011 9:47 Заглавие: |
|
|
Не съм искал да обидя никого. Просто първоначално не открих връзка между двете неща. От скоро се занимавам с тоя стак. Прочетох документацията и заредих, каквото сметнах за необходимо. Компилаторът ми поиска още хедари. Изтеглих си някакъв mac.h файл на който пишеше, че се използва за ENC28J60 и помислих, че всичко, което ми трябва е заредено, но ....
Използвам MPlab v8.33 C18 v3.20 и TCP/IP stack v5.31
Тези декларации, които описваш по-горе съм ги направил. Добавил съм необходимите макроси. Имах малки проблеми с това, че не съвпадаха променливите, но сега всичко е наред. И съм в изходно положение. Компилаторът компилира проекта - създава файловете с разширение .о, след което започва да работи линкера. И отново започва да не намира някакви функции, които би трябвало да са налични. Първо даваше грешка в Announce, не намираше UDPClose(). Понеже няма да го използвам го направих на коментар, обаче сега реши, че не намира utoIPIsConfigured в ARP.o. Предполагам необходимите промени във хедърите, които описвате по-горе съм ги направил правилно. До колкото прочетох такъв тип грешки се дължат на грешен .lkr файл. Обаче аз съм си заредил линкер файла на чипа. Някаква идея??? |
|
| Върнете се в началото |
|
 |
|
|
Не Можете да пускате нови теми Не Можете да отговаряте на темите Не Можете да променяте съобщенията си Не Можете да изтривате съобщенията си Не Можете да гласувате в анкети
|
|