Co-Simulation/Описание TIAO USB Multi Protocol Adapter (TUMPA) Litle/run questasim
Материал из Wiki
- Техническое задание
- Описание FT2232H
- Описание FT232H
- (TUMPA) TIAO USB Multi Protocol Adapter
- (TUMPA) Litle
- Компиляция и запуск в QuestaSim
- Описание макета
- Примеры кода
Литература
- Источник:
Компилятор
QuestaSim 10.1 (10.0, 10.0b) под winxp win7 использует компилятор gcc-4.2.1-mingw32vc9 (32-разрядная версия компилятора из пакета mingw), он свободно распространяется в сети и доступен для скачивания на сайте mirror 1 mirror 2 Есть 64 -разрядная версия компилятора gcc-4.5.0-mingw64 она требуется по умолчанию для 64 разрядной версии QuestaSim, но
работа с SystemC доступна только в 32-разрядной версии (при попытки запуска и компиляции кода выдается соответствующее предупреждение)
- Для компиляции кода достаточно заголовочного файла ftd2xx.h (файл берется из примера на VC++ с сайта www.ftdichip.com )
- Ссылка на примеры на VC++
- Для сборки компилятором g++ из пакета mingw библиотека ftd2xx.dll и ftd2xx.lib — не подходят (так как сборка dll проводилась компилятором из VC++ )
- Скачиваем пакет mingw mingw и устанавливаем
- Скачиваем утилиты mingw-utils-0.3 (версия 0.4 пишут, что немного бажная... использовалась версия 0.3)
- Согласно инструкции с сайта http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs выполняем преобразования .dll .lib
- В пакете mingw-utils-0.3 находим в папке bin утилиту reimp.exe
- Копируем туда ftd2xx.lib и выполянем команду reimp -d ftd2xx.lib
- В результате работы утилиты в этой же папке появится файл FTD2XX.def этот файл содержит описания функций которые зарыты в dll
- Открываем файл и убираем знак подчеркивания перед названиями функций в начале строки (если есть под рукой cygwin, то cat FTD2XX.def |sed "s/^_//" > ftd2xx.def),
мировой заговор или сговор MS и ОpenSGNU
Файл ftd2xx.def до исправления После LIBRARY "FTD2XX.dll" EXPORTS _FT_Close@4 @2 _FT_ClrDtr@4 @11 _FT_ClrRts@4 @13 _FT_CreateDeviceInfoList@4 @70 _FT_CyclePort@4 @69 _FT_EE_Program@8 @37 _FT_EE_ProgramEx@24 @67 _FT_EE_Read@8 @38 _FT_EE_ReadEx@24 @68 _FT_EE_UARead@16 @39 _FT_EE_UASize@8 @40 _FT_EE_UAWrite@12 @41 ....
LIBRARY "FTD2XX.dll" EXPORTS FT_Close@4 @2 FT_ClrDtr@4 @11 FT_ClrRts@4 @13 FT_CreateDeviceInfoList@4 @70 FT_CyclePort@4 @69 FT_EE_Program@8 @37 FT_EE_ProgramEx@24 @67 FT_EE_Read@8 @38 FT_EE_ReadEx@24 @68 FT_EE_UARead@16 @39 FT_EE_UASize@8 @40 FT_EE_UAWrite@12 @41 ....
- Переходим в пакет mingw в папку bin
- Копируем туда ftd2xx.lib ftd2xx.dll ftd2xx.def и выполняем команду dlltool -U -d ftd2xx.def -l ftd2xx.a
- Ключ -U означает что создастся новый файл содержащий в себе и .dll и новые заголовки вызова в соответствии с .def файлом
- Можно копирование не производить, но тогда папка mingw/bin должна быть добавлена в path
- Полученный файл ftd2xx.a переименовываем в ftd2xx.lib и копируем в директорию проекта, туда где лежит заголовочный файл ftd2xx.h (файл ftd2xx.dll нужно удалить из этой директории)
- Для проведения процесса сборки (sccom -link) добавлем параметры линковщику -LПуть_к_папке_с_файлом_ftd2xx.lib (параметр -L пишется слитно с путем) и -lимя_либы (пишется также слитно)
sccom -link -vv -LD:/tmp/ftdichip/simhard_w/simhard/src/sysc/ -lftd2xx
Информация по преобразованию либ взята с сайта www.mingw.org