andreichk 0 2 октября, 2013 Опубликовано 2 октября, 2013 · Жалоба Привет народ. Требуется помощь знающих програмистов на визуал студио 10.0 под вин7 небольшого проекта, кот. изначально был написан по юникс системы. на сайте автора вроде говорится, что и под вин должно всё работать. Вначале я попробовал поставит визуал 10. на свою ОСь вин7. но она не встала, наверное из за того, что винда палёная. тогда я по совету друзей установил виртуалку и сунул в неё винХР и на неё положил визуал. Встало без проблем. После сознания проекта компиляция не удалась, из за отсутствия толи каких-то хедеров , толи какие-то настройки неправильные , вобщем мне непонятно. Может кто-нить возьмётся поглядеть исходники, там все несколько килобайт и скомпилит под винду простое консольное приложение? Код должен выполнять подключение ФПГА через кипресс, прошивать его и затем выводить какую-то инфу с подключенного к ФПГА АЦП. вся инфа была взята отсюда: http://www.makestuff.eu/wordpress/software/fpgalink/ http://www.makestuff.eu/wordpress/software...infrastructure/ Опережая события , скажу, что железка, которая подключается ко всему этому ,работает, и может прошиваться готовым эксешником flcli.exe, но этого на данном этапе недостаточно, так как надо что-то читать с АЦП и выводить на консоль. Заранее благодарен. Обещаю в случае успеха выложить красивые фотки ночного неба, если эта железка окончательно заработает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 7 октября, 2013 Опубликовано 7 октября, 2013 · Жалоба Ура !!! Проект удачно скомилировался и заработал. Оказывается надо было просто внешнюю библиотеку подключить: #pragma comment(lib, "c:/tmp/libfpgalink.lib") :rolleyes: Всем спасибо за активную помощь. :santa2: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 10 ноября, 2013 Опубликовано 10 ноября, 2013 · Жалоба Итак, проект как-то заработал, матрица стала давать картинки. Но проблема в том, что картинки имеют дефекты в виде горизонтальный полос через каждую 25 строку , начиная с третьей. Програмисты - Сишники , допоможите убогому от полос избавиться, замучился уже..... вот код записи данных с буфера, в который собрались данные с потока, кот. считан с АЦП: st=0x00;stt=0x00;line=0;p=0; newline: //========== поиск заголовка новой строки ====================================== for(p=0; p<2689248; ++p) { if(buf[p]==0x55){ if(buf[p+1]==0xAA){ if(buf[p+4]==st && buf[p+5]==stt) { if(p==2689248) goto newline; //обходим запись по достижении конца счёта битов else { // обрезка справа. тут только нечётное число if(line!=line+27) memcpy(&buf2[line*2613], &buf[p], 2613); // запись во второй буфер goto countline; // считаем строки } } } } } //=============================================================================== for(ever){ countline: if(st++ == 254){stt++;st=0;} // считаем строки if(++line == 1027) break; // прыжок на запись в файл по окончании записи else goto newline; // подпрыгиваем вверх на поиск новой строки }//=============================================================================== tut: fwrite(buf2,sizeof(uint8),2689248,file); // запись в файл fclose(file); // закрываем файл Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 12 ноября, 2013 Опубликовано 12 ноября, 2013 · Жалоба зачистка произведена........ просто тупо выпилил дефектные строки //======================= проверка кол-ва байтов в строке ===================== line=0; for(p=0;p<2689248;++p) { cc++;// считаем кол-во байт данных после маркера. if(buf[p]==0x55) { if(buf[p+1]==0xAA) { if(buf[p+2]==0x00){ if(buf[p+3]==0x00){ if(cc==2612) memcpy(&buf4[++line*2611], &buf[p-cc], 2611); //выпиливаем бракованные строки cc = 0; }}}}} Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 24 ноября, 2013 Опубликовано 24 ноября, 2013 · Жалоба исправил на правильную схему Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OlegH 0 24 ноября, 2013 Опубликовано 24 ноября, 2013 · Жалоба Народ, подскажите, чтобы вывернуть сигнал ,достаточно такой простой схемы на ОУ или нужно что-то похитрее? Чтобы так вывернуть сигнал - недостаточно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 24 ноября, 2013 Опубликовано 24 ноября, 2013 · Жалоба спасибо, я уже нашёл правильную схему Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 1 декабря, 2013 Опубликовано 1 декабря, 2013 · Жалоба исправил на правильную схему Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 25 декабря, 2013 Опубликовано 25 декабря, 2013 · Жалоба поднадоела мне командная строка и всякие там батники. Решил под винду красивое приложение собрать на визуале. форму слепил и даже как-то пришил исходники, которые прошивают и запускают консоль. Но мне ходелось бы сделать так, чтобы инит железки происходил прямо из оконного приложения. В общем выглядит это так: int fpga(int argc, const char *argv[]) { ....................................тут код } а вызов процедуры я пытаюсь сделать так: char string[] = "-i 04b4:8613 -v 04b4:8613 -p -x c:/winVS2010/KAF1301E/kaf1301.xsvf"; fpga(67, string); только он ниразу не хочет компилиться и пишет мне что: 1>c:\winvs2010\kaf1301e\ASTROKAMERA.h(1024): error C2664: fpga: невозможно преобразовать параметр 2 из "char [67]" в "const char *[]" 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции а я в толк не возьму, чего ему от меня надо? Подскажите приз, как правильно аргументы загонять в int fpga(int argc, const char *argv[]) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewlekar 0 25 декабря, 2013 Опубликовано 25 декабря, 2013 · Жалоба fpga(67, &string); Только argc - это кол-во передаваемых параметров как правило. У вас получается передаются 67 параметров - смотрите, поаккуратнее там. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 25 декабря, 2013 Опубликовано 25 декабря, 2013 · Жалоба Спасибо, я попробовал как вы советуете, char *string = "-i 04b4:8613 -v 04b4:8613 -p -x c:/winVS2010/KAF1301E/kaf1301.xsvf"; fpga(6, &string); теперь компилит, но при попытке вызова выскакивает ошибка ************** Текст исключения ************** System.DllNotFoundException: Не удается загрузить DLL "libfpgalink.dll": Не найдена указанная процедура. (Исключение из HRESULT: 0x8007007F) в flFreeFile(Byte* ) в fpga(Int32 argc, SByte** argv) в KAF1301E.ASTROKAMERA.kAF1301EToolStripMenuItem1_Click(Object sender, EventArgs e) в System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) в System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e) в System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) в System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) в System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met) в System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met) в System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) в System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea) в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) в System.Windows.Forms.Control.WndProc(Message& m) в System.Windows.Forms.ScrollableControl.WndProc(Message& m) в System.Windows.Forms.ToolStrip.WndProc(Message& m) в System.Windows.Forms.ToolStripDropDown.WndProc(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ну и конечно ничего не работает. хотя либа #pragma comment (lib, "c:/winVS2010/KAF1301E/libfpgalink.lib") в коде присутствует. Мне непонятно, какую именно процедуру не находит в ней? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 25 декабря, 2013 Опубликовано 25 декабря, 2013 (изменено) · Жалоба ...System.DllNotFoundException: Не удается загрузить DLL "libfpgalink.dll": Не найдена указанная процедура. (Исключение из HRESULT: 0x8007007F) ...либа #pragma comment (lib, "c:/winVS2010/KAF1301E/libfpgalink.lib") в коде присутствует. Мне непонятно, какую именно процедуру не находит в ней? юзанье либ делится на статическое и динамическое. динамическая загрузка дэлеле под форточками делится на явную и не явную. явная - это когда Вы зовёте ручками лоадлайбрэри и гэт для нужной вам функции. не явная - это когда делаете в свой проект импорт либы, в которой находится вся необходимая инфа для динамической загрузки дэлеле. я так понимаешь у Вас юзается не явная загрузка дэлеле. Что нуна сделать: 1) проверить наличие указанной дэлеле по стандартным путям поиска загружаемых дэлеле. Просче всего подложить рядом с запускаемым экзешником. 2) убедиться в правильной версионности этой либы. т.е. файл описания именно от этой либы. 3) убедиться, что всё что может загружать данная дэлеле - так-же лежит рядом(лучше, пока в каталоге загрузки экзешника). Для этого необходимо загрузить утилитку Dependency и посмотреть что треба ышо для загрузки. более детальный анализ пока опустим. но постарайтесь найти толковый учебник по депенденси утилитке. Но думаю дальнейших телодвижений не потребуется. :) Изменено 25 декабря, 2013 пользователем kolobok0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewlekar 0 26 декабря, 2013 Опубликовано 26 декабря, 2013 (изменено) · Жалоба Я так понял, что дллка раньше загружалась, а в новом проекте не загружается. Для начала нужно проверить, как советовал kolobok0, есть ли дллка рядом с запускаемой программой. Если есть, но всё равно не работает, то причина может быть в преобразовании имён функций C/C++. Если дело в преобразовании имён, то как чинить не знаю. Гуглите "dll name mangling". Изменено 26 декабря, 2013 пользователем andrewlekar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 26 декабря, 2013 Опубликовано 26 декабря, 2013 · Жалоба дадада, спасибо вам за подсказки, я вначале совсем забыл положить дллку п папку к ехешнику, но это только полдела, понадобилось ещё внаглую завести параметры из батника прямо в переменные внутри процедуры fpga(). То есть именно вот так: //const char *vp = NULL, *ivp = NULL, *jtagPort = NULL, *xsvfFile = NULL, *dataFile = NULL; const char *vp = "04b4:8613", *ivp = "04b4:8613", *jtagPort = NULL, *xsvfFile = "c:/winVS2010/KAF1301E/kaf1301.xsvf", *dataFile = NULL; bool scan = false, usbPower = true;//false; и только после всего этого оно заработало...... щас у меня уже другие проблемы. надо научиться правильно перемещать всякие разные значения из процедур в форму и обратно, чтобы на форме какие-нить тексты писало, числа и чтобы с формы с кнопочек и ползунков задавать нужные настройки. Тут ещё вопросов миллион не меньше будет, так что борюсь с синтаксисом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andreichk 0 26 декабря, 2013 Опубликовано 26 декабря, 2013 · Жалоба Народ подскажите , где в сети нормальный полноценный букварь найти по визуалу? Реально не могу вкурить, как с этих разных кнопочек параметры в код заталкивать прилагаю проект, то , что работает на данный момент Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться