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

abit

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о abit

  • Звание
    Участник
    Участник
  1. getting started with SAM7-P64

    aaarrr Приветствую! немного оффтопа: Помню однажды Вы мне сильно помогли, когда мне впервые только вручили плату на ARM7, до сих пор помню ту историю ( http://electronix.ru/forum/index.php?showtopic=94496 ), сильно благодарен но я, знаете многое позабыл с тех времён, но C++ то я знаю получше Си и когда в example от IAR пишут iprintf/iscanf или #include "Board.h" под видом кода на С++ мандраж хватает, поэтому я сделал вывод, что писали либо безграмотные люди эти примеры, либо в IAR нет C++, примеры на Си не стал открывать по той же причине, решив, что лучше возьму готовый код с оффициального сайта своей платы, знаете я беру хидеры например к плате ICP-DAS STEP 200, которая вообще для ISA слота, когда вы вообще думаете ISA-слоты были и сколько лет этой плате? и они успешно компилируются и в gcc и в fpc современном под современной ОС, причины 2 - 1)обратная совместимость компиляторов и ОС, 2) все функции, что описаны в хидерах описательны, никаких асм-кодов, вся реализация функций для конкретной ОС лежит в компиляторе, в котором она компилируется если же проблема в стартапе, то ладно, я уже туповат, буду ковыряться, насчёт пинов я вроде бы сейчас разобрался, там действительно есть перемчыки, одна из них TEST, которую надо замкнуть на 10 секунд, потом выключить плату и перемычку разомкнуть, как-то странно выглядит инструкция, но я просто боюсь угробить бутлоадер, чтобы потом SAM-BA плату внезапно не признавала (раньше не боялся, так как через JTAG программировал)
  2. getting started with SAM7-P64

    Здравствуйте, есть плата от Olimex sam7-p64, есть лицензионный IAR 6.30 (покупался для других плат тоже на базе AT91SAM7 года 2.5-3 назад), к этой плате я так понимаю он тоже подойдёт, тыкаюсь на оф.сайт этой платы - там есть примеры кода ( https://www.olimex.com/Products/ARM/Atmel/SAM7-P64/ ) справа, раздел SOFTWARE, весь код хоть и под IAR - ничего не собирается, ошибки типа >>RSEG INTRAMSTART_REMAP Error[40]: Bad instruction D:\IAR\SAM7-P64-blinking-LED\AT91SAM7S-Basic\compil\SrcIAR\Cstartup.s79 34 >> org 0 Error[0]: Invalid syntax D:\IAR\SAM7-P64-blinking-LED\AT91SAM7S-Basic\compil\SrcIAR\Cstartup.s79 152 поэтому три вопроса: 1) что не так в коде с официальных страниц? 2) какова цель ассемблера в этих исходниках, я так понимаю - файлы типа board.h, а уж тем более асм-код., которые в проекте по хорошему должны быть внутри IAR и сами инклудится при выборе чипа, почему в IAR нет подобного набора хидеров и асм? 3) вопрос на будущее, если плату прошить по usb, скажем в hid-устройство, я так понимаю она впердь не будет определяться как at91-устройство и перепрограммировать не удастся? (со старыми платами я работал через JTAG-ICE и меня этот вопрос не интересовал) Благодарю за ответы
  3. Давайте не будем изобретать велосипеды) Я думал вам нужно понимание вопроса Вот здесь есть статья - http://www.shokhirev.com/nikolai/abc/alg/hmm/hmm.html можно полюбоваться на красивые формулы и картиночки, отмотайте вниз и уведите ссылки на исходники на Delphi и C++ из стороннего там нужно лишь Matlib, который тоже есть на этом сайте
  4. я Вас понял ) не обязательно пахать в консоле, если есть Ubuntu Centr/Yast/Mandrake... я сам иногда теряюсь что писать после apt-get install ))) в общем, ежели новый Ubuntu - на Unity - откройте главное меню (первая иконка слева на выпадающем меню, где эмблемка убунты), там в поиске, самый верх напишите ubu и увидите центр приложений Ubuntu, если на Gnome/KDE/LXDE и т.д. - система-> администрирование-> центр приложений в общем задача - найти Центр приложений Ubuntu откройте его... и уже там в поиске, справа наверху, где лупа - вбейте opencv, если будет непоняток у Центра - тыкните показать все приложения... обычно в первой пятёрке того что он предложит - будет Development files for opencv (libopencv-dev) это надо поставить... если есть кнопка установить... конечно при наличии всего остального - посмотрите - важно libopencv-core иметь и много чего ещё ) и после dev-пакетов уже можно будет прикручивать к Qt по алгоритму что я дал... Qt поставить ещё проще... там не надо думать о пакетах... тупо ставьте QtCreator (так же через поиск) он потянет всё остальное... просто из ваших изложений проблемы я думал, что вы уже поставили Qt-sdk, а это куда более внушительная вещь... содержащее весь QtCtreator и кучу всего... раз в 10 превышающую QtCtreator по поводу ссылок - по 1) предлагается собрать opencv из исходников, это мало поможет новичку - ибо это более сложное занятие, когда есть репозиторий по 2) собстна хорошо, если вы понимаете что делать... это хорошая ссылка, если разберётесь - если нет, то спрашивайте... по 3) вообще сложная тема) вам это не нужно, как новичку
  5. Виджеты надо класть в Layout-ы, тогда они не смогут перекрывать друг друга. Выделяешь элементы на форме мышкой и в палитре выбираешь требуемый layout. Кажется так. Или после выделения элементов, в контекстном меню будет что-то на эту тему. Скроллинг в форме это дело отдельное. Как вариант - импользование специального компонента, кажется QScrollBox
  6. исходя из моих сведений, они всё таки представляют себе достаточно хорошо это облако) основа - это хотя бы "теория всего" от Хокинга, который вроде как самый ведущий физик современности ) кроме того, есть и развитие этой теории - супер-струнной теории и даже её развитие - M-теория, где масса это амплитуда колебаний струн... и никто это не опровергнул, на сколько мне известно... об остальных, описанных вами вещах мы знаем очень многое - да же то, что не было изучено... скажем уравнения Максвелла ) этого достаточно чтобы знать и H и E практически всё... просто бери и изучай на конкретных граничных условиях... так же как и в квантовой физике - уравнение Шрёдингера даст ответ на любой поставленный вопрос если задать граничные условия и правильно решить... или в теории относительности - уравнения ОТО при различных условиях дают всё - от чёрных дыр до замедления времени в гравитационном поле, даже тёмная энергия была предсказана именно в этих уравнениях! - но тема не об этом ) я надеюсь, что сайт Вам поможет... там очень толковые люди... примерчик не обещаю ) потому что не понятно что понимается под примерчиком) вырожденный случай? или написать всё с нуля? в лучшем случае я могу перевести эту библиотеку с Haskell на fpc или gcc... (Delphi/VC нет, ибо я в линуксе живу)... но имхо этот перевод будет для вас ещё более запутанным, нежели HTK tool, уверяю... p.s. но я советую Вам попробовать сперва разобраться самому, по библиотеке Хаскеля, используя команду :i нужная функция или тип... и он вам ответит что это и зачем... и даже вот я заметил, что в английской версии википедии про HMM достаточно хорошо написано, к тому же любой вопрос в Вашей голове по конкретике - и всегда найдёте ответ на том сайте что я дал... тут ничего не скрывают ) это же не квантовая физика, чтобы было сложно понять и не алгоритм Mp-3, чтобы скрывать под патентами
  7. Я вник в Ваши планы ) в общем Хаскель это не панацея для Вас... почему? хорошая новость - то, что несёт Хаскель - это понимание проблемы, полное описание проблемы на строгом языке, я думал Вам нужно вникнуть в проблему СММ... вы получили компактный код библиотеки на Хаскеле без сторонних библиотек... но есть и плохая новость... о ней чуть позже... сперва поймите что такое функциональный язык... эти языки строятся примерно так: компилятору даётся понимание некоторого понятия (абстрактного понятия) термина функция... в том плане, что она имеет некоторые аргументы и некую зависимость от других функций... иными словами практически из ничего, на абстрактном понятии функция строится всё... логика, арифметика, дифуры, матанализ и т.д. на пальцах выглядит так: в перовом модуле Хаскеля (не на уровне языка, а именно в модуле) - принимается функция под именем Boolean, область значений которой два абстрактных понятия True и False и не имеет входных параметров затем вводится функция NOT, которая имеет параметр X, функция работает так, что если X - True, то NOT X = False... и наоброт... подобным образом вводятся все остальные логические функции и даже вся арифметика, геометрия и т.д.... теперь плохая новость... в Хаскеле нет алгоритмов вообще... нет циклов или последовательности действий... всё, что написанно в этой библиотеке - это не алгоритмы, а описание проблемы на этом языке... математическое описание... как же тогда он решает задачи? это, как правило, редукции, основанные на лямбда-исчислении... они создают самые оптимальные алгоритмы решения данной задачи на данных условиях... при этом это решение по алгоритмической сложности совпадает с лучшими алгоритмами на императиных языках придуманных человечеством с точностью до константы... всю мощь лямбда-исчисления не то что программисты - математики не понимают ) поэтому Хаскель для вас не панацея, потому что он не скажет как это делать, он говорит что нужно делать... и расскажет точную формулировку задачи, ведь не будь она точной - он бы не смог найти алгоритм её решения... поэтому я ошибся, думая, что вы не понимаете проблемы и подсунул вам эту библиотеку... если вам нужны конкретные алгоритмы решения той или иной задачи - это отдельный разговор... но при этом вы должны строго понимать всю задачу как можно более детально... потому что задача СММ на пальцах - это всё равно, что рассказать про глюонное облако в двух словах... лучше в этом разобраться и эта библиотека - в этом сильно поможет, к тому же вы можете и не вникать, а просто пользоваться как есть ) ещё советую вам сайт естественных наук - http://e-science.ru/ там на форуме такие личности водятся - мне на пальцах расписали тензор энегрии-импульса в проблеме почему безмассовые фотоны взаимодействуют с гравитацией ) я думаю там и вам помогут :)
  8. установи OpenCV-devel пакеты (если нет), заголовочные файлы (*.h) поставятся в /usr/include/* и QtCreator сможет проиндексировать их, но тут я не уверен... если не сможет - придётся в .pro добавить INCLUDEPATH <opencv/cv.h> как проиндексируешь - в настройках проекта надо добавить команды link'a (-l<library>)
  9. если это то, что описано в википедии по вопросу СММ - то это легко изобразить в любом функциональном языке достаточно быстро и кода будет очень не много, т.к. это математика ) здесь https://github.com/mikeizbicki/hmm есть сама библиотека (в папке Data файл HMM.hs) на Хаскеле и пример HMMTest.hs как ей пользоваться, там же в низу этого файла можете забить по аналогии любые свои данные и запустить... а так же проследить всю цепочку вычислений (хотя бы даже командой помощи :i [ имя функции или типа] в интерпретаторе ghci), помойму очень доступно, т.к. кода от силы 3-4 листа A4, за два вечера можно понять все взаимосязи между функциями... к тому же есть готовые способы из этого кода собрать все взаимосвязи графически... сделано через алгоритм Витерби, одако там совсем немного стоит поменять под любой желаемый вами, но боюсь время исполнения увеличится... а вот что вообще тут может быть интересным, когда есть сети Такаги-Сугено-Канга ) вот там действительно интересно с ними работать а насчёт того где и что СММ накапливает - да толком она не накапливает где-то, а размазывает по всем своим коэффициентам, судя по формулам такая же есть для лиспа - https://github.com/jmcejuela/CL-HMM и для матлаба - http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html но последние две в силу своего императивного происхождения куда более длинные по коду и более сложные для понимания
  10. Perl - язык не сложный... хотя конечно как посмотреть))) но если вы знаете Си или PHP и Лисп - то вам будет просто в нём разобраться... намного проще чем скажем в haskell, хотя в haskell с нуля разобраться проще чем в Си... говорю так, потому что проверял на куче подопытных студентов... просто дело в образе мысли... в конце концов - перл - это интерпретатация... т.е. если вы нашли готовое решение на нём и оно вас устраивает - любой другой интерпритируемый/компилируемый язык способный общаться с системными вызовами способен вызывать это решение как dll-ку в винде хотелось бы действительно знать протокол или хотя бы имя вашего готового решения, чтобы можно было говорить конкретно... под Линухами Перл - это обычное явление :)
  11. ELITAN.RU

    заказывали в элтане партию Altera EP4CE, остались недовольны... сайт примитивный... заказ спустя три недели был в висячем положении - непонятно пришлют-нет... по т/ф разговорам выяснили что не скоро... заказали то же самое в платане - пришло через 12 дней...
  12. shrek получается интелу по барабану... кстати в спецификации usb в режиме cdc она обозначена именно как int а не изохронная, как и где она задействуется - это к теоретикам, но интелу по барабану... и не одному а всем - от первого пенька до core2quad/itanium/xeon проверял... MrAlex да, старая 2005-2007 года.... собстна там три версии BasicUSB 1.0, 1.1 и 1.2 были проверенны - во всех внутренности резко меняются, но эта ошибка во всех трех версиях кроется... далее (после 2007г) эта демка вошла в USBCore и там вместо всего этого появились абсолютно другие файлы и куда более запутанная структура... Я все это описывал в этой теме... USBcore же не компилируется в IAR 4.11, из-за разных inc/h внутри самой IAR... а с IAR старше 4-х версий отказывается работать мой j-link cegger, который идет в комплекте всех AT91SAM7Sxxx-EK по сей день поэтому и вышла такая неприятная ситуация... так же эта ошибка содержится и в крайне свежей SAMBA, в чем я тоже убедился во время своего недельного эксперемента... с большой вероятностью она осталась и в USBCore, но в другом файле...
  13. Всем спасибо) Проблема таки решена после недели мучений... Дескрипторы и прерывания не причем... Не работало только на АМД-шках, если кто столкнется с этой проблемой, скрывать решение не буду ))) решается так: в файле cdc_enumerate.c находим кусок (это не вся строчка) UDP->UDP_CSR[3] = (wValue) ? (AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_ISO_IN) и заменяем на UDP->UDP_CSR[3] = (wValue) ? (AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_INT_IN) и вуаля... работает и на Intel и на AMD
  14. Все попытки провалились что внутри процедуры.... вплоть до такого: __disable_interrupt; while 1 do {CDC.Write(&pCDC,'1',1)} на наших компах вываливает в порт '11111.....' на этом - '1'... и тишина :( prottoss если дело в том, о чём Вы говорили... чем-то другим пользоваться вместо usbser.sys? и есть ли какие-то официальные признания этой ошибки? мне чтобы снять вину со своей программы... к тому же под удивление на Linux таки это заработало через CDC-ACM...
  15. в моем случае я так понимаю нет никакого SAM-BA, я же прошиваю через IAR... aaarrr Огромное спасибо!!! Хотя всё опять же по моей вине не так как надо... реально там другой код ))) я опять таки взял не от той версии BasicUSB... я уже запутался в них... при том тот же файл cdc_enumerate.с в каждой новой версии такие радикальный изменения переживает... не сиделось им прям... фактически как обернуть я понял, могу применить и к этому... только в той версии что у меня сейчас - нет разбиения на эти inline... все процедуры уже такие массивные, вот пример одной из записей: static uint AT91F_UDP_Write(AT91PS_CDC pCdc, const char *pData, uint length) { AT91PS_UDP pUdp = pCdc->pUdp; uint cpt = 0; // Send the first packet cpt = MIN(length, AT91C_EP_IN_SIZE); length -= cpt; while (cpt--) pUdp->UDP_FDR[AT91C_EP_IN] = *pData++; pUdp->UDP_CSR[AT91C_EP_IN] |= AT91C_UDP_TXPKTRDY; while (length) { // Fill the second bank cpt = MIN(length, AT91C_EP_IN_SIZE); length -= cpt; while (cpt--) pUdp->UDP_FDR[AT91C_EP_IN] = *pData++; // Wait for the the first bank to be sent while ( !(pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP) ) if ( !AT91F_UDP_IsConfigured(pCdc) ) return length; pUdp->UDP_CSR[AT91C_EP_IN] &= ~(AT91C_UDP_TXCOMP); while (pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP); pUdp->UDP_CSR[AT91C_EP_IN] |= AT91C_UDP_TXPKTRDY; } // Wait for the end of transfer while ( !(pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP) ) if ( !AT91F_UDP_IsConfigured(pCdc) ) return length; pUdp->UDP_CSR[AT91C_EP_IN] &= ~(AT91C_UDP_TXCOMP); while (pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP); return length; } возникает вопрос можно ли просто в тупую добавить store_int и disable_int в начале всей этой функции и set_interrupt_statу в конец, опоясов всю эту функцию, решив тем самым обе проблемы сразу? аналогично повесить на остальные функции - записи управляющей endpoint, конфигурирования.... или городить таки у каждого изменения CSR? извиняюсь заранее, потому что понимаю что вопрос глупый и даже подозреваю на него ответ и даже проверить просто... но... вот проверить мне тут неначем - результаты только завтра узнаем (
×
×
  • Создать...