Перейти к содержанию
    

jcxz

Свой
  • Постов

    13 478
  • Зарегистрирован

  • Посещение

  • Победитель дней

    34

Весь контент jcxz


  1. Спор начался из-за другого. Со сроков реализации. Я вообще не понимаю зачем все тащат линух к тому-же на реалтайм-задачи? Считаю, что всё можно реализовать без него и не так уж это и сложно, достаточно прочитать даташит. По-моему: реализация USB-стека (с DMA) - 2-3 месяца, реализация Ethernet-стека (с DMA) - те же 2-3 месяца максимум в зависимости от квалификации и опыта. Всё это - stand-alone. Да - месяц на стек - это у меня заняло параллельно основной работе.
  2. Около 1МБ/сек. Больше нам не нужно. Полная загрузка ядра ARM9 OMAP-L137 на 300МГц всей задачей == 28%, из них около 3% съедает операционка, сколько из этого съедает обслуживание изохронного эндпоинта USB без DMA - отдельно не мерил, но думаю - не более 5%. Да, это Full-speed USB, с частотой обслуживания эндпоинта == 1кГц и включённым FIFO. Про "быстрый" я не говорил. Я говорил лишь про то, что если реализация всего стека занимает около месяца (без DMA), то изучение и добавление USB DMA займёт ещё не более месяца.
  3. Во-1-ых: У меня не было задачи 50МБ/сек передавать и скорости без DMA мне вполне хватает. Во-2-х: Если я USB-стек реализовал, то переделать обслуживание эндпоинта через DMA вместо программного ВВ думаю будет проще, чем написание всего стека. Или вас пугает само слово DMA? :smile3046: Вы хотя-бы такую обработку сделайте на указанной скорости. Если сможете, то думаю реализация DMA USB после этого у вас займёт не более недели :)
  4. Дык пробовал я. И написал. За месяц примерно. Правда без DMA. Ну на это ещё максимум месяц.
  5. Интересно - на что там можно потратить столько времени из того, что умеет линух?
  6. Если в main ничего не делается, значит делается в обработчиках прерывания или в задачах операционки, запускаемой из main
  7. Если у вас в каком-то режиме работает только одна задача, то это уже не многозадачность и соответственно - либо стек этой задачи можно наложить на другие стеки (union), либо - ещё лучше - организовать работу так, чтобы другая задача, которая в это время стоит, выполняла функции данной задачи и уменьшить кол-во задач на 1. Вот вам и экономия памяти. А насчёт стеков - правильно вам посоветовали - увеличивайте стек до тех пор пока глюки не пропадут, потом ищите дырки в шаблоне заполнения - стандартный способ. И естестно - шаблон не 0 и не 0xFF должен быть. printf часто много памяти жрёт (зависит от используемой библиотеки). Я, для уменьшения расхода памяти, использую переключение стека - перед вызовом printf переключаю SP на стек, выделенный специально для printf и защищаю это дело семафором естесно. Например: ARM9+CCS3.3 - закладываю под отдельный стек == 136*4 байт + размер под контекст, сохраняемый ОС при переключении задач (на моей ОС uCOS - ещё 18*4 байт). Хватает.
  8. TiWi-R2 (WL1271)

    Блин :(( А какой тогда можете порекомендовать модуль чтобы было WiFi+BT если этот не удастся запустить?
  9. TiWi-R2 (WL1271)

    Устройства уже спаяли с этим TiWi-R2. К тому же у TiWi-SL как я понимаю нет Bluetooth-a, а нам он нужен. А что не так с этим TiWi-R2? И неужели нет док по его командам-протоколу???
  10. TiWi-R2 (WL1271)

    Необходимо использовать модуль TiWi-R2 (построен на WL1271) для организации сбора данных с датчиков (по BT)/передачи к хосту (по WiFi) в своём устройстве (на OMAP-L137). Кто-нить имел опыт общения с данным модулем? Поделитесь пожалста инфой. Что-то пока даже не нашёл описания команд на него - как запустить, проинитить, создать сеть, передать данные и т.п.? Или примеры в исходниках. Линух не планируется, stand-alone.
  11. А вы какой версией CCS компилите? И на какой проц? Мы в конце 2011 - начале 2012 с ним намучались на F28M35H52. Скомпилить-запустить удалось, но связь так и не пошла, хоть и представитель TI к нам приезжал и помогал. В результате - отказались. На сайте TI лежит CCS 4.2.4.00033 как последний, но для компиляции этого G3 нужен 4.2.4.00034 ;) Чтобы обновить до 4.2.4.00034 в то время надо было скачать патч, ссылку на который выдавал представитель TI эксклюзивно. Но после установки этого патча в работе CCS появлялись серьёзные проблемы. Хотя - может они уже всё пофиксили? Времени всё-таки уже порядком прошло.
  12. TI-ный C6745 есть в LQFP и с плавучкой 1double/такт вроде как. А UART-ы думаю везде есть
  13. InterlockedExchangeAdd под ARM

    вот только с ARM9 это не поможет...
  14. InterlockedExchangeAdd под ARM

    Да, интересные команды, не знал. Вот только не очень ясен механизм их работы... Нужно-ли во всех обработчиках прерываний ставить CLREX или она выполняется аппаратно при любом прерывании? Или там какой-то другой механизм работы?
  15. InterlockedExchangeAdd под ARM

    Какой из ARM? Под ARM7/Cortex-M3 такое по-моему невозможно, только запретом прерываний. Просто InterlockedExchange можно: LONG InterlockedExchange(LONG val, LONG volatile *dest); _InterlockedExchange: SWP R0, R0, [R1] BX LR
  16. Поставьте брэкпоинт на точку входа, посмотрите в даташите на проц с какого адреса он стартует по включению питания, выставите PC на этот адрес и запустите.
  17. операции IAP и АРМ2388

    По-моему - это очевидно, что перед записью флешку надо предварительно стереть.
  18. операции IAP и АРМ2388

    Предварительно стереть не забываете? Разрешить запись не забываете? Запретить прерывания не забываете? Стирание секторов: typedef void (__thumb *iap_entry_typ)(u32 *, u32 *); #define iap_entry ((iap_entry_typ)0x7FFFFFF1) __thumb __interwork u32 ClearFlash(uint beginSector, uint endSector) { u32 ibuf[5], obuf[3]; ibuf[0] = 50; ibuf[1] = beginSector; ibuf[2] = endSector; iap_entry(ibuf, obuf); if (!obuf[0]) { ibuf[0] = 52; ibuf[3] = CCLK / 1000; iap_entry(ibuf, obuf); } return obuf[0]; }
  19. После замены генератора на SG-8002CA всё сразу заработало. Хотя в нём тоже PLL...
  20. Сорри - построена на генераторе ASEM (www.abracon.com). А хочу заменить на SG-8002CA. А где Вы в даташите нашли значение джиттера в ppm? Вижу тока в пикосекундах (у обоих генераторов). Как это перевести? Но если судить по пикосекундам, то ASEM - лучше. Но USB почему-то - не работает... :( Не работает даже при нормальной температуре.
  21. Кто-нибудь применял на OMAP L137 или L138 USB с тактированием от внешнего генератора (REFCLKIN)? Есть какие-то особенности? На отладочной плате ПО (USB-device) работает с тактированием USB0 от внутреннего PLL OMAP. На рабочем устройстве для USB должен использоваться отдельный генератор. И с ним - не работает. Т.е. - принимает только первую посылку (get device descriptor) от хоста, потом - тишина и затем - reset от хоста. Затем опять запрос get device descriptor и всё по кругу. Такое ощущение, что хост не получает ответов устройства на свои запросы. Да - есть гальваническая развязка по D+/D- (ADUM4160) но похоже - дело не в ней. Есть подозрения на схему тактирования (построена на SG-8002CA 24МГц).
  22. Проверьте что Ваш код записался во флеш (под отладчиком посмотрите область флеш). Потом можно поставить бряк на точку входа в программу и стартануть проц со стартового адреса включения питания.
  23. Всё изделие стоит дешевле? И при этом такое количество разнородной памяти (SDRAM+NAND+SD)? Если стоит вопрос о цене, то обычно стараются уложиться во внутренюю память кристалла, либо обойтись минимумом памяти одного типа (меньшее кол-во микросхем). Может стоит двигаться в направлении оптимизации ПО и не использования всяческих линухов? Это даст больший экономический эффект чем вешание на GPIO.
×
×
  • Создать...