Поиск по сайту

Результаты поиска по тегам 'Linux'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
    • МК для начинающих
    • AVR
    • PIC
    • STM32
    • Arduino и Raspberry Pi
    • ПЛИС
    • Другие микроконтроллеры и семейства
    • Алгоритмы
    • Программаторы и отладочные модули
    • Периферия и внешние устройства
    • Разное
  • Товары и услуги
    • Коммерческие предложения
    • Продам-Отдам, Услуги
    • Куплю
    • Уголок потребителя
    • Вакансии и разовая работа
    • Наши обзоры и тесты
  • Разное
    • Конкурсы сайта с призами
    • Сайт Паяльник и форум
    • Курилка
    • Технический английский (English)
    • Наши проекты для Android и Web
    • FAQ (Архив)
    • Личные блоги
    • Корзина
    • Вопросы с VK
  • ATX->ЛБП Переделки
  • Юмор в youtube Киловольты юмора
  • Надежность и группы продавцов Радиолюбительская доска объявлений exDIY
  • разные темы Переделки

Блоги

Нет результатов для отображения.

Нет результатов для отображения.

Местоположения

  • Пользователи форума

Группа


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Найдено 13 результатов

  1. В данной теме все вопросы, касающиеся Linux и ее производных. Народ поделись кто работает в этой операционке,как там все вводится,к винде привык,а на этой писать надо пока не понял как это все изображать. В комп.отдел не полез может здесь все быстро закончится и без последствий.
  2. Честный обзор миникомпьютера OMEGA 2. Характеристики, подключение и работа с командной строкой. Отправляем твит и компилируем свое приложение прямо на миникомпьютере. Ссылка на миникомпьютер: https://www.indiegogo.com/projects/omega2-5-linux-computer-with-wi-fi-made-for-iot Ссылка на документацию: https://docs.onion.io/omega2-docs/ Ссылка на opkg пакеты: http://repo.onion.io/omega2/
  3. На днях получил плату/компьютер Raspberry Pi. Открываю топик по работе с данной платой, обмене опытом, вопросах и ответах. Для тех кто не в курсе что это такое, здесь я приводил небольшое описание и основные характеристики платы Raspberry Pi. Я приобрел Model B, с доставкой в Россию вышло 46$, оплачивал кредитной карточкой. Постоянно обновляемый список поддерживаемого и проблемного оборудования (клавиатуры, мышки, вебкамеры, хабы, Wi-Fi, Bluetooth, 3G, ТВ-тюнеры, SD-карты): http://elinux.org/RP...fiedPeripherals Быстрый старт с Raspberry Pi В принципе информация по Quick Start есть на официальном сайте, но раз уж мы затронули эту тему, то будем описывать все до конца. Итак, вам пришла заветная посылочка, что дальше? А все очень просто. Плата Raspberry Pi поставляется "голой" (можно конечно и купить с SD-картой с ОС). Чтобы она работала, нужна операционная система. ОС необходимо скачать и записать на SD-карточку, которая затем вставляется в SD-слот на плате. Грубо говоря здесь SD карта служит вместо жесткого диска. Вы можете иметь несколько SD карт с разными ОС, под разные задачи и оперативно менять их в случае необходимости, что очень удобно. Скачать официальные имиджи ОС можно отсюда: http://www.raspberrypi.org/downloads Неофициальный список здесь запущенных ОС: http://elinux.org/RPi_Distributions Для начала, я бы посоветовал вам скачать официальный имидж Raspbian "wheezy", а потом уже экспериментировать с другими ОС. Итак, идем на страничку Downloads и качаем первый имидж. После скачивания разархивируем файл, чтобы получился файл с расширением ".img". Далее, нам понадобится утилита для записи имиджа на SD карту. Для пользователей Windows это Win32DiskImager, для юниксодиов это dd. У меня стоит Windows, поэтому я пользовался Win32DiskImager. Скачиваем, запускаем ее (установка не требуется), указываем путь к файлу имиджа, справа выбираем букву SD-флэшки в вашей системе (будьте внимательней) и нажимаем Write для записи. Начнется процесс записи имиджа. Также, при помощи Win32DiskImager можно скопировать образ ОС с SD-карточки на диск компьютера (т.е. произвести обратную процедуру). Это очень удобно, когда вы экспериментируете с системой. Т.е. настроили ОС под себя, сохранили на диск образ ОС и можно дальше делать все, что угодно. А в случае проблем записать на SD ранее сохраненный образ. После окончания записи, вынимаем SD-карту из картридера компьютера и вставляем ее в Raspberry Pi. Подключаем монитор (по HDMI или VGA), клавиатуру, а также опционально мышку и Ethernet кабель. Затем подаем питание через Micro USB порт. Примечание: на офсайте написано, что ток может достигать отметки 700 мА, поэтому не рекомендуется питать от компьютера или USB-хаба. Однако я на свой страх и риск подключил к компьютеру и все работало. Если не нагружать процессор просмотром видео, графическим интерфейсом и прочими тяжелыми задачами, то думаю ничего страшного не будет. После включения питания начинается процесс загрузки ОС с карты. При первом включении вы попадаете в конфигуратор raspi_config. Если у вас карточка больше чем 2 ГБайта, то рекомендую сразу расширить свободное дисковое пространство для ОС, т.к. по умолчанию она берет 2 Гига, что может быть недостаточно. Для этого выберите пункт expand_roofs. Правда задать кол-во секторов не получится, команда выделит максимально доступное ей дисковое пространство. Вернуться в конфигуратор можно командой sudo raspi-config После загрузки системы мы попадаем в консоль, для того, чтобы запустить графический интерфейс LXDE необходимо ввести команду startx. Данные для входа в Raspbian "wheezy" такие: Имя: pi Пароль: raspberry Если необходимы права суперпользователя, то как и в большинстве Lixnux-систем необходимо перед какой-либо командой писать sudo. Например ls –l (просмотр списка файлов) Основные команды Unix я здесь описывать не буду, для этого есть очень много специализированных ресурсов. Рестарт может осуществляется одной из команд: reboot sudo shutdown -r now Последняя версия Raspbian, после обновления утилиты raspi-config, позволяет разогнать процессор до 1ГГц (в меню пункт overclocking). Что дает примерно 50% прирост скорости. Однако учтите, что в этом случае возрастает и энергопотребление платы. Ethernet/Интернет Без выхода в глобальную сеть сейчас никуда…. По умолчанию, Raspbian настроен на DHCP. Т.е. если ваш маршрутизатор работает в данном режиме, то Raspberry Pi автоматически получит свой IP адрес и все заработает. Проверить наличие подключение к интернету можно этой командой: ping cxem.net Однако, если у вас сеть с статическим IP, то тут придется немного постучать по клавиатуре. В имидже Raspbian файл сетевых интерфейсов находится здесь: /etc/network/interfaces Чтобы его отредактировать, введите следующую команду: sudo nano /etc/network/interfaces nano – это текстовый редатор, можете конечно юзать и vi если вы хардкорный юниксоид Строчку iface eth0 inet dhcp необходимо закомментировать: #iface eth0 inet dhcp Добавьте туда следующие строки: iface eth0 inet static address 192.168.1.30 netmask 255.255.255.0 gateway 192.168.1.1 Где: address – статический адрес Raspberry Pi netmask – маска подсети gateway – шлюз (как правило IP вашего сетевого маршрутизатора) После внесения изменений, необходимо сделать рестарт, чтобы изменения вступили в силу: sudo /etc/init.d/networking restart Обновление пакетов Сразу после того, как заработает интернет, обновите список репозитариев командой: sudo apt-get update А следующей командой, обновите сами пакеты: sudo apt-get upgrade Чтобы установить какой-либо новый пакет используйте команду: sudo apt-get install [имя пакета] #Например: sudo apt-get install mc Кстати пакет mc (Midnight Commander) – очень удобный консольный файловый менеджер, заметно облегчает работу новичков в Linux-системах. Рекомендую его сразу же установить. Запускается командой sudo mc или просто mc если root-права не нужны.
  4. Всем привет ! Да, вот так вот. Опять светодиод и опять не запускается. В чём косяк ? Питание - от автозарядки для мобилки ( 12В -> 5В ). Среда разработки ( IDE ): MPLAB X v3.35 Linux, компилятор C18. Программатор: PICKit3 Прошивка, по-моему - нормальная. Сконфигурирован - нормально. ( Или нет ? ) Элементы все рабочие. В наличие есть кварц: 4, 8, 10 МГц. Фотка со схемкой - в атаче. Осциллографа под рукой - нет . Исходник прошивки: #include "config_bits.h" #include <stdio.h> #include <stdlib.h> void main (void) { int i = 0; TRISA = 0x00; PORTA = 0x00; TRISB = 0x00; PORTB = 0xFF; TRISC = 0x00; PORTC = 0x00; TRISD = 0x00; PORTD = 0x00; TRISE = 0x00; PORTE = 0x00; while (1) { for ( i = 0; i < 1000000; i++) { PORTB = !PORTB; } } } Файл "config_bits.h": // PIC18F452 Configuration Bit Settings // 'C' source line config statements #include <p18f452.h> // CONFIG1H #pragma config OSC = HS // Oscillator Selection bits (HS oscillator) #pragma config OSCS = OFF // Oscillator System Clock Switch Enable bit (Oscillator system clock switch option is disabled (main oscillator is source)) // CONFIG2L #pragma config PWRT = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config BOR = ON // Brown-out Reset Enable bit (Brown-out Reset enabled) #pragma config BORV = 20 // Brown-out Reset Voltage bits (VBOR set to 2.0V) // CONFIG2H #pragma config WDT = OFF // Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit)) #pragma config WDTPS = 128 // Watchdog Timer Postscale Select bits (1:128) // CONFIG3H #pragma config CCP2MUX = ON // CCP2 Mux bit (CCP2 input/output is multiplexed with RC1) // CONFIG4L #pragma config STVR = ON // Stack Full/Underflow Reset Enable bit (Stack Full/Underflow will cause RESET) #pragma config LVP = OFF // Low Voltage ICSP Enable bit (Low Voltage ICSP disabled) // CONFIG5L #pragma config CP0 = OFF // Code Protection bit (Block 0 (000200-001FFFh) not code protected) #pragma config CP1 = OFF // Code Protection bit (Block 1 (002000-003FFFh) not code protected) #pragma config CP2 = OFF // Code Protection bit (Block 2 (004000-005FFFh) not code protected) #pragma config CP3 = OFF // Code Protection bit (Block 3 (006000-007FFFh) not code protected) // CONFIG5H #pragma config CPB = OFF // Boot Block Code Protection bit (Boot Block (000000-0001FFh) not code protected) #pragma config CPD = OFF // Data EEPROM Code Protection bit (Data EEPROM not code protected) // CONFIG6L #pragma config WRT0 = OFF // Write Protection bit (Block 0 (000200-001FFFh) not write protected) #pragma config WRT1 = OFF // Write Protection bit (Block 1 (002000-003FFFh) not write protected) #pragma config WRT2 = OFF // Write Protection bit (Block 2 (004000-005FFFh) not write protected) #pragma config WRT3 = OFF // Write Protection bit (Block 3 (006000-007FFFh) not write protected) // CONFIG6H #pragma config WRTC = OFF // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write protected) #pragma config WRTB = OFF // Boot Block Write Protection bit (Boot Block (000000-0001FFh) not write protected) #pragma config WRTD = OFF // Data EEPROM Write Protection bit (Data EEPROM not write protected) // CONFIG7L #pragma config EBTR0 = OFF // Table Read Protection bit (Block 0 (000200-001FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR1 = OFF // Table Read Protection bit (Block 1 (002000-003FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR2 = OFF // Table Read Protection bit (Block 2 (004000-005FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR3 = OFF // Table Read Protection bit (Block 3 (006000-007FFFh) not protected from Table Reads executed in other blocks) // CONFIG7H #pragma config EBTRB = OFF // Boot Block Table Read Protection bit (Boot Block (000000-0001FFh) not protected from Table Reads executed in other blocks) Проблема: Он то ли не запускается, то ли ещё что-то. Светодиод на 30 ножке ( PORTBbits.RB0 ( B0 ) ) просто горит. А ведь в программе я прописал, чтоб весь блок B периодически переключался на противоположенное значение, но этого не происходит. Менял значения цикла от 1000000 до 10 - 0 по цельсию. Вопрос, что может быть. Может минус плохой и на монтажных схемках такого рода ( как на фотке ) собирать схемы на МК - плохая идея ? Аля нужно паять ?! Спасибо !!!
  5. Кто-нибудь использует stlink https://github.com/texane/stlink для работы с МК под Linux?
  6. Привет, Каким образом можно прошить МК в Linux ( Например: Pic18F4550 ) ? Результаты поиска в инете закончились провалом ... Я смог подключить и соединить PICKit3 в MPLAB через Linux, но ... я смог прошить мк только через Low Voltage ... и, как-то не удобно пользоваться MPLAB в этом деле. Под Windows я использую простую прогу Standalone PICKit3 Programmator v3.10 ( Всё Работает на УРА !!!), но нужен аналог под Linux ( Ubuntu 15.04 ) Есть ли какой-то скрипт или прога под Линь, который просто прошивает чип HEX файлом ? Типа, аля: ./pickit3 -w /home/user/Desktop/Test/file.hex -c pic18f4550 Спасибо заранее !!!
  7. Как Подключить Файлы В Makefile?

    Добрый день, подскажите, есть директория с проектом и библиотеками структура директории /--------------------- main.c lib | |-------cmsis |-------mylib | |--------led | |-------- led.h |-------- led.c |-------STM32F4xx_StdPeriph_Driver build Makefile Как подключить папку led к линковщику // led.h #include <stdio.h> #include "stm32f4xx.h" void turnOn(); void turnOff(); // led.c #include "led.h" void turnOn() { GPIO_SetBits(GPIOD, GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15); } void turnOff() { GPIO_ResetBits(GPIOD, GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15); } // main.c #include <stdio.h> #include "stm32f4xx.h" #include "led.h" ... // init gpio ... extern void turnOn(); extern void turnOff(); ... // init sys clock ... int main(void) { setSysTick(); while(1) { //check the push button turnOn(); Delay(500); turnOff(); } return 0; } описание файла Makefile для линковщика и компилятора # Makefile # STM32F4-Discovery Makefile for Mac OSX SRCS=$(wildcard *.c) # Add assembly source files here or use $(wildcard *.s) for all .s files S_SRCS = CortexM4asmOps.s # Project name PROJ_NAME = test OUTPATH = build OUTPATH := $(abspath $(OUTPATH)) BASEDIR := $(abspath ./) MKDIR_P = mkdir -p ################################################### # Check for valid float argument # NOTE that you have to run make clan after # changing these as hardfloat and softfloat are not # binary compatible ifneq ($(FLOAT_TYPE), hard) ifneq ($(FLOAT_TYPE), soft) #override FLOAT_TYPE = hard override FLOAT_TYPE = soft endif endif ################################################### AS=$(BINPATH)arm-none-eabi-as CC=$(BINPATH)arm-none-eabi-gcc LD=$(BINPATH)arm-none-eabi-gcc OBJCOPY=$(BINPATH)arm-none-eabi-objcopy OBJDUMP=$(BINPATH)arm-none-eabi-objdump SIZE=$(BINPATH)arm-none-eabi-size LINKER_SCRIPT = stm32_flash.ld CPU = -mcpu=cortex-m4 -mthumb CFLAGS = $(CPU) -c -std=gnu99 -g -O2 -Wall LDFLAGS = $(CPU) -mlittle-endian -mthumb-interwork -nostartfiles -Wl,--gc-sections,-Map=$(OUTPATH)/$(PROJ_NAME).map,--cref --specs=nano.specs ifeq ($(FLOAT_TYPE), hard) CFLAGS += -fsingle-precision-constant -Wdouble-promotion CFLAGS += -mfpu=fpv4-sp-d16 -mfloat-abi=hard else CFLAGS += -msoft-float endif # Default to STM32F40_41xxx if no device is passed ifeq ($(DEVICE_DEF), ) DEVICE_DEF = STM32F40_41xxx endif CFLAGS += -D$(DEVICE_DEF) vpath %.a lib vpath %.c lib/mylib # Includes INCLUDE_PATHS = -I$(BASEDIR)/inc -I$(BASEDIR)/lib/cmsis/stm32f4xx -I$(BASEDIR)/lib/cmsis/include -I$(BASEDIR) INCLUDE_PATHS += -I$(BASEDIR)/lib/Conf INCLUDE_PATHS += -I$(BASEDIR)/lib/STM32F4xx_StdPeriph_Driver/inc INCLUDE_PATHS += -I$(BASEDIR)/mylib/im INCLUDE_PATHS += -I$(BASEDIR)/mylib/im/led # Library paths LIBPATHS = -L$(BASEDIR)/lib/STM32F4xx_StdPeriph_Driver # Libraries to link LIBS = -lstdperiph -lc -lgcc -lnosys OBJS = $(SRCS:.c=.o) OBJS += $(S_SRCS:.s=.o) ################################################### .PHONY: lib proj all: dir lib proj $(SIZE) $(OUTPATH)/$(PROJ_NAME).elf lib: $(MAKE) -C lib FLOAT_TYPE=$(FLOAT_TYPE) BINPATH=$(BINPATH) DEVICE_DEF=$(DEVICE_DEF) BASEDIR=$(BASEDIR) proj: $(OUTPATH)/$(PROJ_NAME).elf .s.o: $(AS) $(CPU) -o $(addprefix $(OUTPATH)/, $@) $< .c.o: $(CC) $(CFLAGS) -std=gnu99 $(INCLUDE_PATHS) -o $(addprefix $(OUTPATH)/, $@) $< $(OUTPATH)/$(PROJ_NAME).elf: $(OBJS) $(LD) $(LDFLAGS) -T$(LINKER_SCRIPT) $(LIBPATHS) -o $@ $(addprefix $(OUTPATH)/, $^) $(LIBS) $(LD_SYS_LIBS) $(OBJCOPY) -O ihex $(OUTPATH)/$(PROJ_NAME).elf $(OUTPATH)/$(PROJ_NAME).hex $(OBJCOPY) -O binary $(OUTPATH)/$(PROJ_NAME).elf $(OUTPATH)/$(PROJ_NAME).bin $(OBJDUMP) -S --disassemble $(OUTPATH)/$(PROJ_NAME).elf > $(OUTPATH)/$(PROJ_NAME).dis dir: $(MKDIR_P) $(OUTPATH) clean: rm -f $(OUTPATH)/*.o rm -f $(OUTPATH)/$(PROJ_NAME).elf rm -f $(OUTPATH)/$(PROJ_NAME).hex rm -f $(OUTPATH)/$(PROJ_NAME).bin rm -f $(OUTPATH)/$(PROJ_NAME).dis rm -f $(OUTPATH)/$(PROJ_NAME).map # Remove the following line if you don't want to clean the Libraries as well $(MAKE) clean -C lib flash: st-flash write build/$(PROJ_NAME).bin 0x08000000 компилирую библиотеки make lib make[1]: `mylib' is up to date. собираю бинарник make выдает ошибку build/main.o: In function `main': main.c:37: undefined reference to `turnOn' main.c:39: undefined reference to `turnOff' collect2: error: ld returned 1 exit status make: *** [build/test.elf] Error 1 Если файлы из lib/mylib/led перенести в корень (на уровень, что и main.c), тогда все собирается хорошо Пробовал также добавить SRCS=$(wildcard lib/mylib/led/*.c) ассемблер ругается что нет .o файла Assembler messages: Fatal error: can't create /lib/mylib/led/led.o: No such file or directory make: *** [lib/mylib/led/led.o] Error 1 пытаюсь скомпилировать .o файл gcc -g -o -c led.c не может подтянуть другие хедеры In file included from led.c:1: ./led.h:2:10: fatal error: 'stm32f4xx.h' file not found #include "stm32f4xx.h"
  8. Добрый день всем! Возникла необходимость запрограммировать МК для собственного устройства. МК выбрал atmega16, в качестве программатора использую плату um232h, построенную на чипе ft232h, прошить пытаюсь avrdude в среде linux через usb порт. Информация из чипа читается, но при попытке записать программу в flash, avrdude зависает на этапе writing с нулевым прогрессом. Пробовал сперва очистить чип потом записать, пробовал одной командой очистить записать, пробовал указывать разные форматы записываемого файла, оставлял на полчаса. Пробовал поменять чип на другой такой же - результат не поменялся. Кто сталкивался с подобным - помогите пожалуйста!
  9. Требования к соискателю: в/о (техническое), опыт работы с МК с архитектурой ARM (ARM9, ARM 11, Cortex-A8, Cortex-M4) и DSP (MIPS). Опытом разработки ПО на микроконтроллерах с установленным Linux. Опыт разработки ПО работающего в среде с ограниченными вычислительными ресурсами; знание ассемблера, C/C++; знание сетевых протоколов и различных физических интерфейсов (RS 232/485, I2C, SPI, USB); опыт и реализация протоколов обмена; знание схемотехники цифровых устройств; опыт разработки протоколов взаимодействия внешних устройств; технический английский на уровне чтения и понимание документации обязателен. Должностные обязанности: - Разработка программного обеспечения (ПО) для встраиваемых систем под ОС Linux; - Разработка программных модулей и протоколов взаимодействия периферийных устройств, встраиваемых систем; - Анализ логики различных периферийных устройств; - Написание базовой документации; - Отладка и тестирование системы. Условия работы и компенсации: Москва, полная занятость полное соблюдение ТК, офис в центре, з/п 100-120 тыс. Тел.: 8-926-827-89-71 mail - resume@rabotaka.com Контактное лицо: Татьяна
  10. Здравствуйте, обдумываю устройство сопряжения компьютера и платы с GPIO. Как я себе это представляю: usb порт ПК -> cy7c68013 -> ПЛИС xilinx spartan3e -> 64GPIO (32 светодиода/32 переключателя). На компьютере: есть драйвер и файл устройства (пишу сам) /dev/usb2gpio. С него можно прочитать 4 байта, где биты указывают состояния переключателей на плате, а можно записать 4 байта и значениями битов включить светодиоды. Драйвер постоянно опрашивает устройство и пишет состояние переключателей в файл устройства. На плате: есть cy7c68013 в EEPROM которого при наладке устройства прописывается VID, DID, для драйвера на ПК. ПЛИС на максимальной скорости проверяет буфер в cy7c68013 и если там что то есть (4 байта) то выставляет на светодиоды нужные сигналы, после опроса записывает туда значения для отправки в ПК(только если буфер пуст). сразу отвечу на некоторые вопросы: 1) почему linux? - Программа которой дополнительные GPIO нужны под него сделана. 2) почему usb? - Есть на любой материнской плате, скорость выше чем у доступных com/lpt. 3) почему cy7c68013 и spartan3e? - потому что есть отладочная плата с этой связкой (digilent nexys2), с платой и IDE знаком не по наслышке. Сделать usb для плис не хватит времени, купить готовый ip core не по карману, cy7c68013 по даташиту имеет FIFO на 60мбайт/с что достаточно. 4) Зачем там ПЛИС? - Здесь я пытаюсь выяснить стоит ли использовать USB для моих целей, а вообще у ПЛИС будет и другая работа(не только светодиодами моргать), но там всё ясно, уже делал подобные вещи, а вот с ПК связывал свою аппаратуру только через последовательный порт... вопросы: 1) Затея выполнимая для одного человека, без опыта разработки сложных промышленных устройств? (опыт из универа (курсов для разработки драйверов устройств нет, по шинам(usb) тоже давали только общие представления), различные задачи, синхронные, асинхронные последовательные схемы, конечные автоматы итд. программирование си, асм, pic/avr, posix threads, реализации FFT, CYK(многопоточный). Пытаюсь прояснить о каком человеке идёт речь ) В целом концепция ясна, но вдруг есть какие то подводные камни о которых пока ни сном, ни духом... 2) Если скажу что частота опроса будет не меньше 250кГц и запись тоже 250кГц, не ошибусь? - Пусть имеем соединение highspeed 480mbit/s = 60mByte/s, usb шина полудуплексная, значит 30мБайт/с в одну строну, дальше, скажем, качество кабеля плохое, получим 20мБайт/с в одну сторону, надо передавать 4 байта, значит имеем 500000 посылок в секунду на такой скорости, ну и по закону подлости пусть реально будет в два раза меньше - 250К посылок в секунду. 3) Я разделом не ошибся?
  11. Возникла проблема с написанием программы (host) USB HID Термометр на языке С для Linux, с использованием библиотеки libusb. Прошивку взял пока готовую с сайта, по аналогии идущей в комплекте программы host'a начал делать сам на С. Оборудование находится по VID:PID. Cчитываю 8 байт, конвертирую и получаю непонятный результат который не меняеться (+32,0 С). При просмотре содержимого буфера - оно меняется при каждом опросе. Не могу понять что делаю не так. Может кто в курсе. Код программы: #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <math.h> #include <libusb-1.0/libusb.h> #include <iostream> using namespace std; #define DEV_VID 0xaaaa #define DEV_PID 0xef04 #define DATA_SIZE 8 //#define DEV_CONFIG 1 #define DEV_INTF 0 #define EP_IN 0x81 #define EP_OUT 0x01 int main(int argc, char * argv[]) { libusb_device_handle * handle; int ret; unsigned char buf[DATA_SIZE]; libusb_init(NULL); libusb_set_debug(NULL, 3); //получим handle устройства handle = libusb_open_device_with_vid_pid(NULL, DEV_VID, DEV_PID); if (handle == NULL) { printf("Не удалось найти устройство\n"); libusb_exit(NULL); return 0; } if (libusb_kernel_driver_active(handle,DEV_INTF)) libusb_detach_kernel_driver(handle, DEV_INTF); //захватываем интерфейс if (libusb_claim_interface(handle, DEV_INTF) < 0) { printf("Ошибка интерфейса\n"); libusb_close(handle); libusb_exit(NULL); return 0; } //считываем данные в буфер int returned = libusb_interrupt_transfer(handle, EP_IN, buf, DATA_SIZE, &ret, 5000); if (returned >= 0) { std::cout << "buf[0] = " << (int)buf[0] << std::endl; std::cout << "buf[1] = " << (int)buf[1] << std::endl; std::cout << "buf[2] = " << (int)buf[2] << std::endl; std::cout << "buf[3] = " << (int)buf[3] << std::endl; std::cout << "buf[4] = " << (int)buf[4] << std::endl; std::cout << "buf[5] = " << (int)buf[5] << std::endl; std::cout << "buf[6] = " << (int)buf[6] << std::endl; std::cout << "buf[7] = " << (int)buf[7] << std::endl; } //вывод содержимого буфера на экран for (int i = 0; i < DATA_SIZE; i++) std::cout << buf << std::endl; //переводим данные в hex { printf("Buf: "); for(unsigned i = 0; i<sizeof(buf); i++){ printf("0x%02x ", buf[i] & 0xff); } printf("\n"); } //конвертируем данные uint8_t temp_lo = buf[1] & 0xff; uint8_t temp_hi = buf[0] & 0xff; int16_t temp = (temp_hi << 8) | (temp_lo); float temp_f = temp / 16.0; // low 4 bits of temp are fractional part { temp_f *= 10; temp_f = round(temp_f); temp_f /= 10; printf("%+.1f\n", temp_f); } // отдаем интерфейс и закрыаем библиотеку libusb_attach_kernel_driver(handle, DEV_INTF); libusb_close(handle); libusb_exit(NULL); return 0; } компилирую: g++ -o usb main.c -lusb-1.0
  12. Здравствуйте! Попалась мне пару недель назад эта железка. Состояние - не загружается и не отвечает, только моргает одним светодиодом "Power" . Покопавшись в инете нашёл описание внутренностей http://habrahabr.ru/...gy/blog/114448/ попробовал подключиться к miniUSB разъёму на плате и увидел на ней диск с тремя пустыми разделами (очевидно кто-то здорово поигрался - то есть абсолютно пустые). Подключился к ней через компорт как написано здесь https://forum.openwr...ic.php?id=19168 , В терминалке хотя бы увидел, что работает загрузчик и с ним можно даже общаться, во всяком случае он пишет про себя - кто таков и что может делать. Нашёл на сайте прошивку для железяки и попробовал в разных вариантах переписать её на внутренний диск, кое что получилось, начал грузиться linux. Но вот на этом вся радость и закончилась - в терминалке видно как он грузится, а потом впадает в ступор с последними словами - [ 30.160000] Kernel panic - not syncing: No init found. Try passing init= option to kernel. log boot.txt теперь не знаю куда рыть, с linux знаком постольку-поскольку, то есть строго на ВЫ и три раза "КУ" .... Очевидно, что не хватает каких-то папок и файлов, сейчас у него внутри лежат три файла - vender, zImage и rd.bin ... На этом мысль пока останавливается... собственно вопрос в основном к линуксоведам и synology-водам - может была у кого сходная ситуация, как из неё выйти или у кого есть сохранённый рабочий образ системы с этой железяки... жалко если так и повиснет мёртвым грузом
  13. Здравствуйте! До недавнего времени использовал ОС Windows, но решил попробовать Linux и не пожалел. Все программы которые были в Windows я с успехом перенес на Ubuntu. Но вот пришла очередь WinAVR. Нашел я в репозитрии компилятор avr-gcc дополнительно к нему скачал avr-libc, написал простую программу мигания светодиодом #define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> int main() { DDRA = 0xff; for(; { PORTA = 0xff; _delay_ms(1000); PORTA = 0x00; _delay_ms(1000); } } Ввожу команду $avr-gcc -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=1000000UL -Os -o main.o main.c но при компиляций компилятор выдает ошибку что не знает такой переменой как PORTA и DDRA! Кстати для примера использовал это статью