Jump to content

    

Kalyan

Свой
  • Content Count

    121
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Kalyan

  • Rank
    Частый гость

Recent Profile Visitors

1367 profile views
  1. да, вы правы. Первопричина найдена. Это как раз таки и DMA. Теряются байты с потока. Идет поток байт, заполняется буфер, дма останавливается, перекидает их со своего буфера в логику, потом опять начинает складывать байты с потока. Это узкое место в реализации, и с увеличением адреса буфера происходить задержка перед следующим включением дма, и оно теряет несколько байт (1 байт) с потока.
  2. Я думаю Вы в корне не правы. Есть правила этого форума. Вот ссылкочка. В правилах не написано что это закрытый клуб професиональных дядек к которому нету доступа лицам коие такими не являются. На главной странице тоже нету предупреждений о запрете задавать те или иные вопросы (типо "Ламер - иди отсюдова! Не пиши здесь постов" и тд.). Согласитесь, ведь тогда упадет трафик и будут изымать плату за доступ к ресурсу. Это свободный ресурс, Вы не есть владельцем ресурса (я надеюсь) и у меня здесь столько же прав сколько и у Вас. Следовательно, должен быть конструктив, а не хамское отношение и попытка навязывать свои нарцисссические представления (так написано в правилах). Если вопрос уже здесь неоднократно обсуждался - заблокируйте мой пост с самого начала. Или же в пример могу привести http://www.cyberforum.ru. Там в такой ситуации не оскорбляют своего пользователя, а приводят ссылки на подобные темы. Модераторов прошу обратить внимание на нарушения правил данного форума, а именно - оскорбления в мой адрес.
  3. Извините, а почему Ваш пост начинается с претензии? Хотите ЧСВ себе прокачать. Если Вы такой великий, зачем тратили свое драгоценное время чтоб отписать. Не царское это дело. У Вас наверняка есть дела поважнее. Это же форум, на то он и придуман чтоб здесь спрашивать и получать ответы. Давайте на главной странице большими буквами напишем "Читайте доки!!!" и все, и форум тогда и не надо. Еще бы рассказали как breakpoint юзать. На аватарках себе напишите "Читайте доки" чтоб не утруждать себя любимых ))
  4. да, курить маны это выход с любой ситуации. Тут не поспоришь. Хотелось бы понять как это делает сам линкер, когда я ему ничего не указываю. У меня просто есть границы RAM и модули с переменными, по каким правилам будут определяться адреса. Такой инфы с наскока не смог найти. Может Вы примерно можете подсказать название мануала или главы где бы об этом было написано. Спасибо
  5. да, я понимаю. По наследству досталась реализация сериал протокола. При сборке в моем проекте оно не работает. Заметил особенность - если приемный буфер этого протокола положить по младшим адресам - чудо, все работает )). Вот мне и в самом деле интересно стало как заставить линкер разложить переменные разных модулей в том или ином порядке. Какие правила использует линкер для этого и тд.
  6. Может есть несколько базовых правил? Например в зависимости где идет первое обращение к модулю, в зависимости от размера и дт.
  7. ну это да. а все таки?
  8. ок. спасибо. По какому закону линкер назначает переменной адрес в рам памяти? Например у меня есть два файла module1.c и module2.c. В этих файлах соответственно переменные uint8_t module1 = 0; module2 = 0; Листинг: // module1.c uint8_t module1 = 0; void module1_init(void) { module1 = 1; } // module2.c uint8_t module2 = 0; void module2_init(void) { module2 = 2; } // main.c void main(void) { module1_init(); module2_init(); while(1) { } } Какую переменную линкер положит по меньшему адресу и что на это влияет?
  9. Спасибо, работает вот так: define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; define symbol __ICFEDIT_region_RAM_end__ = 0x20017FFF; #pragma location= 0x20017BFF __no_init uint8_t my_arr[1024]; my_arr 0x2001'7bff 0x400 Data Gb main.o [1] Не возникнет ли проблем когда оперативная память заполнится до этого значения? Компилятор повторно по этому адресу уже не будет ложить остальных переменных?
  10. Добрый день. У меня есть некоторый массив. Например uint8_t my_arr[10*1024]. Можно ли заставить компилятор положить этот массив в начало или конец оперативной памяти?
  11. STM32f401 + uIPv 1.0 + Web Server

    #define UIP_CONNS 15 Этого количества хватает на все соединения которые идут от браузера. Посмотрел загрузку самого жирного файла через Wireshark. Идут ре-трасмиты со стороны железки. Но документ оно загружает. На сколько это нормально?
  12. STM32f401 + uIPv 1.0 + Web Server

    Физика, думаю, нормально работает, так как тот же веб сервер с примера - работает. Но там очень простой сайт. uIP взял чтоб сэкономить RAM память ))
  13. Добрый день. Собрал систему из Nucleo STM32f401 и Enc28j60 шилда. Использую FreeRtos и uIP v 1.0. Система завелась, работает DHCP и одно клиентское подключение по TCP. Адаптировал пример веб сервера с uIP стека. Добавил туда свои веб странички. На страничках подключено несколько изображений и скриптов. Соответственно когда браузер это все начинает тянуть вместе - не все ресурсы страницы подгружаются. Если кто то работал с uIP и этим примером веб сервера, у вас наблюдались такие проблемы? Может ли этот веб сервер асинхронно обрабатывать запросы? Буду благодарен если поделитесь своим опытом
  14. BLE

    Да, извиняюсь, не нашел более подходящего места. Да, тут такая логика необходима: Центральное устройство периодически читает эту характеристику, там содержится статус некой операции. Если операция еще не завершилась, то эта характеристика должна быть пустая (data len = 0), то есть центральное устройство не должно получать вообще данных, а уже если операция завершилась, то в этой характеристике должен быть 2-х байтный статус. Вот исходя с этой логики хотел менять длину данных в характеристике.
  15. BLE

    Добрый день. Работаю с BLE - создаю BLE peripheral device. В GATT профайле определен один сервис в котором определена одна характеристика со свойством read. Эта характеристика описана двумя атрибутами (Declaration - uuid -0x2803 и само value c 16 байтным uuid). Вопрос относительно длины данных для атрибута value этой характеристики. Возможно ли как то указать что длина данных у этой характеристики переменная? Например инит длинна = 0 и максимальная длина = 2 байта.