Jump to content

    

winniethepooh

Участник
  • Content Count

    78
  • Joined

  • Last visited

Everything posted by winniethepooh


  1. для hex файла возможно редактирование, когда "дыры" вручную удаляются, таким образом получается непрерывная область для записи образа. я правильно понимаю?
  2. спасибо Baser. действительно, нужно сразу было озвучить. непонятно как hex позволяет "адресовать" куски (.hex - текстовый формат), разве он не будет представлением неправильно сформированного образа в текстовом формате с теми же "дырами" как в bin файле? да внешняя nor флешка программируется j-link программатором и программой j-flash (если конечно файлы конфигурации представлены для данного контроллера и флешки)
  3. программа для прошивки которую я использую не "понимает" hex (альтернативы нет), моя проблема с размером была связана не с форматом файла а с тем что внутри секции оператор "." получает значение из области расположения данной секции а в случае выхода из секции уже не возвращается к прежним адресам (извините за сумбур не владею предметом достаточно хорошо.)
  4. простите я не понял, чем hex может мне помочь в этом случае? то что в данном случае секции с кодом не имеет значения ?
  5. Здравствуйте. Проблема размещения секций линкера в разнородные области памяти. Имеется флешь с адресом 0x70000000 там размещена загружаемая секция text (обработчики прерываний). Флешь медленная поэтому VMA секция должна находится в быстрой внутренней (оперативной) памяти контроллера в секции с адресом 0x20000000. В примерах я не видел что бы секции с кодом (только для чтения LMA) с большим значение адресов могли ссылаться в области с меньшими значениями адреса как VMA секция, обычно так поступают с секций data. Мои попытки указывать виртуальный адрес для секции text (код) в обрасти внутренней оперативной памяти приводят к увеличению образа до размера 1,5 гб (предполагаю из за того что значения адресов флеши и внутренней оперативы сильно отличаются). Я новичек в ld скриптах и кажется запутался.. Спасибо.
  6. спасибо за ссылку и да я использую GCC. но я возможности разделить bin файл на несколько частей я слышу впервые.. попробую погуглить, но если у вас есть хорошая ссылка приемного благодарен!
  7. imx6soloX два ядра, А9 (есть кеш) и м4 кеша нет. что вам до кеша? есть кеш нет кеша что вы там собираетесь делать? hex не выполняемый формат файла c чего вы взяли что использую hex. я вас совсем не понимаю..
  8. нет не забанили, но кажется у меня другие проблемы.. я не понимаю как работает компановщик. после старта контроллера секции могут быть перенесены с помощью AT> в другие области памяти но это операция увеличивает размер образа, я что то не так делаю? забыл добавить у меня двух ядерный контроллер. один стартует первым, копирует образ для другого (который м4 и у него нет кеша только тсм) затем стартует ядро м4.
  9. Здравствуйте. Проект для контроллера на arm m4, который имеет память на флешь ( внешняя и медленная). Там расположен загружаемый образ, который загружается в память tcm (Tightly-Coupled Memory - встроенная в контроллер), но не большого размера зато быстро доступная. Проект быстро "вырос" за пределы tcm и необходимо разместить часть кода в оперативной памяти (флешь не подойдет слишком медленная). Мои модификации файла компоновщика приводят к созданию огромного файла образа т.к. адресное пространство между tcm и ram несколько Megabyte (сам образ несколько десятков килобайт) и такое положение вещей не приемлемо. Хотелось бы иметь часть кода в tcm а часть в ram. Это возможно? Какие решения здесь можно использовать? с уважением.
  10. логика работы драйвера построена так что бы не отвлекать проц(используя dma разместить пакеты. ну вы должны это знать сами..) у меня тоже проблема с медленной обработкой пакетов, я думаю это в уровне между стеком и пользовательским приложением(обработка совтовых прерываний, переключение из режима ядра в режим пользователя). я потратил много времени просматривая движение пакетов вверх по стеку и видел что они передаются без задержки. На уровне где расположены сокеты перестал работат printk и посмотреть где точно происходит задержка и потеря пакетов не удалось. я предполагаю учитывая тяжеловесность слоя сокетов (я использую ARM Cortex-M3 144 Мгц, 16Мб ОЗУ uClinux) что задержка происходит в этом слое.
  11. ничего не знаю про тест openwrt, но сомневаюсь что он может показать в каком слое стека застревают пакеты.
  12. почему вы думаете драйвер нагружает а не сокет например?
  13. посмотрите https://people.cs.clemson.edu/~westall/853/notes/
  14. если я не ошибаюсь, сетевое устройство может убрать ip заголовок из пакета(зависит от настоек NIC).
  15. вставлять заголовки может как ядра так и сетевое устройство..
  16. да это интересно, что то в пакетах делает их невидимыми для ОС? может можно сравнить с пакетами от другой системы..
  17. сбрасывать пакеты сетевое устройство может по причине отсутствия свободных дескрипторов. попробуйте изменить кол-во дескрипторов, например #define DEF_RXDESC_NUM (100 вместо 4 если память позволяет..) если все пакеты теряются на нижнем уровне то это должно помочь.
  18. В DMA входящие пакеты складывает? drop для пакетов не происходит? должна быть функция опроса типа RXDESC receive (RECEIVE DESCRIPTOR) читающая статусы имеющихся дескрипторов пакетов на предмет передачи их наверх (netif_rx) есть выходные данные у этой функции?
  19. почему старый драйвер не хочет работать с другим ядром я не могу предположить, но есть вероятно другие драйвера для нового ядра и можно посмотреть в чем отличия..,(изменился номер прерывания, не так регистрируется обработчик, не конфликтует ли с другим устройством т.к. общее прерывание) кажется была у linux возможность посмотреть на каких устройствах какие номера обработчиков зарегистрированы..
  20. непроинициализировано (неправвильно или неисправно) сетевое устройство, как бы самое простое предположение..
  21. я вообще не специалист по сетевому стеку, но насколько я понимаю сетевое устройство дергает хардверным прерыванием далее начинает работать драйвер сетевого ус-ва и для начала я бы посмотрел обрабатываются ли прерывания и что на входе у драйвера. Полинг (если я не ошибаюсь запускают софтверные прерывания когда в кольцевом буфере появляются данные от сетевого устройства). Вставить в код printf там где вызываются обработчики. Простите если не въехал в "тему" я просто пытаюсь сказать как бы я действовал на вашем месте.
  22. около 40 американских денег, по сроку ничего не могу сказать
  23. в данный момент присматриваюсь к i.MX 6SoloX Processors. одно из преимуществ наличие двух процессоров в одном корпусе. на cortex a-9 можно запустить линукс, на cortex m-4 freertos. мне кажется это интересной особенностью данного устройства. а вы что думаете?