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

 
 
 
Reply to this topicStart new topic
> STM32F107 и RTL8201 под Keil 5.11, Драйвер.
smk
сообщение Jan 29 2015, 20:40
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Вопрос такой. На Keil 4.72 работает все как надо. Железо рабочее. Пытаюсь сделать новый проект под 5-м кейлом. Там на выбор дают два драйвера. Я выбрал ST802RT1 и хочу его переработать для совместимости с RTL8201CP. Сменил ID и адрес. Переделал проверку ID чтоб проходила с нужной физикой. Всеравно не пингуется. Может кто уже проходил через подобное и подскажете где еще что искать? А физику читает правильно и линк есть. Дальше куда? Собственно вопрос в том, что через неделю подымать проект на работе но уже с F407. Нужен драйвер. Прошу помочь. Спасибо.
А какой кварц нужен? Кейл предлагает 12, а в файлах проекта упоминается 25. Какой нужен?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 1 2015, 19:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



С драйвером разобрался более-менее. Но появилась неожиданно другая проблема. Сразу после включения коннектится и пингуется. Все нормально. Если я пробую зайти на веб-страничку, то успевает отобразить только маленький текст, а на картинке стопорится. Коннект пропадает и не пингуется. Повторно не коннектится. Что я упуситил? Может что-то в конфигурационных опциях? RTX_Conf_CM.c содержит клеточку, в которой указано 12МГц и 1000 мкС. Уменя кварц 25 МГц. В RTE_Device.h с виду правильно указано 25 МГц и т.п. Однако в свойствах проекта кварц 12 МГц. Помогите разобраться с частотами, где правильно где нет. Может и проблема по симптомам кому знакома. Спасибо.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Feb 2 2015, 06:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Проверьте реальную частоту в итоге. После того как все клоки настроили. считайте значения регистров и посчитайте реально полученную частоту. Если правильно, то и пофиг что в какой клеточке стояло.

А про коннект - там нет конфликта с фул-халф дуплекс? параметры сети правильно физикой определились? Надо регистры почитать и поглядеть, все она правильно понимает?

И еще вот что, в кейловском стеке все ошибки с выделением памяти стеку и посылкам и прочее заведены в одну функцию в конце которой стоит while (1). То есть если у вас по какой то причине не выделиться буфер данных для отправки картинки (предполагаб что она больше текста, потому на ней и затык), то вы влетите в эту функцию и проц повиснет в ней намертво. При этом если из нее выйти он бы продолжил пинговаться и так далее... Поглядите куда вы летите в случае ошибок с выделением pbufов
Go to the top of the page
 
+Quote Post
Integro
сообщение Feb 2 2015, 07:11
Сообщение #4


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

Группа: Свой
Сообщений: 167
Регистрация: 25-12-09
Из: Минск
Пользователь №: 54 460



Согласен, 50/50 %, прошива вылитает либо в assert либо hard fault, что бы точнее сказать тут нужно отлачиком смотреть)
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 2 2015, 08:27
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Клоки посчитаю, где подвисает посмотрю и отпишусь. В отношении физики я смотрел ее регисты и сопоставлял с проектом на Keil 4.72. Все полностью совпало и тот проект работает как часы. Вот новый проект на 5-м кейле чудит пока.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Integro
сообщение Feb 3 2015, 07:31
Сообщение #6


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

Группа: Свой
Сообщений: 167
Регистрация: 25-12-09
Из: Минск
Пользователь №: 54 460



Цитата(smk @ Feb 2 2015, 11:27) *
Клоки посчитаю, где подвисает посмотрю и отпишусь. В отношении физики я смотрел ее регисты и сопоставлял с проектом на Keil 4.72. Все полностью совпало и тот проект работает как часы. Вот новый проект на 5-м кейле чудит пока.

Если код тот же, можно проверить размер кучи и стека в startup.s
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 6 2015, 19:38
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Посмотрел где стопорится.
/* Stack overflow detected for the currently running task. */
/* Thread can be identified by calling svcThreadGetId(). */
Получастся переполнен стек. Подскажите где поправить? Я так пноимаю это касается настроек ОС. И что на что менять?

Код
/*--------------------------- os_error --------------------------------------*/

/* OS Error Codes */
#define OS_ERROR_STACK_OVF      1
#define OS_ERROR_FIFO_OVF       2
#define OS_ERROR_MBX_OVF        3

extern osThreadId svcThreadGetId (void);

void os_error (uint32_t error_code) {
  /* This function is called when a runtime error is detected.  */
  /* Parameter 'error_code' holds the runtime error code.       */

  /* HERE: include optional code to be executed on runtime error. */
  switch (error_code) {
    case OS_ERROR_STACK_OVF: //подвисает тут!!!
      /* Stack overflow detected for the currently running task. */
      /* Thread can be identified by calling svcThreadGetId().   */
      break;
    case OS_ERROR_FIFO_OVF:
      /* ISR FIFO Queue buffer overflow detected. */
      break;
    case OS_ERROR_MBX_OVF:
      /* Mailbox overflow detected. */
      break;
  }
  for (;;);
}


Полагаю это там?
Прикрепленное изображение


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
vlad_new
сообщение Feb 6 2015, 23:50
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



стек увеличивай. с 200 байтами работать не будет. хотя бы 2 кило отведиди.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 7 2015, 07:24
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата(vlad_new @ Feb 7 2015, 01:50) *
стек увеличивай. с 200 байтами работать не будет. хотя бы 2 кило отведиди.

В выделенном поле установил 2048 байт. Заработало, Спасибо. Хочу спросить как по опыту обычно поступают и где какие значения в той табличке желательно использовать?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 7 2015, 10:41
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Добавил в проект файлы с расширением cgi. Проект отказался собираться. Как в 5-м кейле єто правильно делается?
дошло. префиксы в строчки прописал


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 7 2015, 13:18
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



При подключении к проекту файла .cgi перестает собираться веб-сайт. Пишет что FCARM не может найти Web.c хотя он есть. Если выкинуть cgi то все нормально. Как всне это правильно в 5-м кейле делается. Хелп читаю но не вполне понятно. Как бы правильно все делаю и не выходит. Подскажите идею как оно на самом деле. Спасибо.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 7 2015, 16:51
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Пока ждал помощи разобрался. Теперь такая проблема. Как вытянуть и поменять локальный айпи?
На вот такое ругается про имя типа не допускается.
Код
//    MyIP[0] = LOCALM.IpAdr[0];
//    MyIP[1] = LOCALM.IpAdr[1];
//    MyIP[2] = LOCALM.IpAdr[2];
//    MyIP[3] = LOCALM.IpAdr[3];


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 7 2015, 19:58
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Код
/// Local Machine info
typedef struct localm {
  uint8_t IpAdr[IP_ADDR_LEN];           ///< Local IP Address
  uint8_t DefGW[IP_ADDR_LEN];           ///< Default GateWay
  uint8_t NetMask[IP_ADDR_LEN];         ///< Net Mask
  uint8_t PriDNS[IP_ADDR_LEN];          ///< Primary DNS Server
  uint8_t SecDNS[IP_ADDR_LEN];          ///< Secondary DNS Server
} LOCALM;

Я правильно понимаю что все тут?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
vlad_new
сообщение Feb 7 2015, 21:10
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



Ну на счет "все" - это смотря что надо. Лично мне нужны были ещё nlocalm[], lhost_name[], own_hw_adr[]. А так же мне пришлось подправить файл конфигурации Net_Config.c, поскольку там некоторые переменные были объявлены как константы, а мне их надо было менять. К примеру мне нужна была индикация наличия соединения по DHCP. Долго пришлось ковыряться. В результате получилась такая ф-ция: void dhcp_check(void){ if((*(unsigned int)&localm)!=0) LED_DHCP_ON; } Поскольку библиотека постоянно меняется от версии к версии, то и варианты её использования то же могут отличатся. Я пользую 4.73 и как там в 5.xx не знаю.
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 8 2015, 06:05
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



С версией 4,73 проблем нет, все работает. С версией 5 нужно. Смотрел кейловский хелп. В одном месте написано, что можно менять на лету, но в другом месте упомянутая структура юзером использоваться не должна, что собственно и вижу. Потому и спрашиваю может кто уже дальше продвинулся в этом вопросе и может подсказать что?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:13
Рейтинг@Mail.ru


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