реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Изучение модуля USB
adnega
сообщение Apr 13 2013, 06:13
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Golikov A. @ Apr 13 2013, 09:06) *
Хих стандартное заблуждение)... скрывая наработки вы как раз ничего не приобретаете. Кроме вас есть еще много людей кто тоже поднял USB на этих процессорах. А вот раскрыв их вы можете получить, ревизию вашего кода, большее число тестировщиков, почет уважение, сообщество программистов, имя и так далее... Да прямых денег вам никто не даст, а косвенно может много сохранить.
К примеру превратить 1-3 дня на подъем + недельная отладка, в просто 1 день, но это не ваш случай...

Я не настаиваю на своей правоте. Наработки я не то чтобы скрываю, просто не афиширую. Было пару случаев, когда ими воспользовались сторонние люди, но ничего кроме реакции "круто, оно работает" ничего не получил. Чтобы довести код до совершенства нужна как минимум соответствующая квалификация: от "молодых" толку мало, а у "старичков" нет времени и желания ковыряться в чужом коде, когда уже есть или свои наработки, или стандартные библиотеки. Имя мне делает не то как я пишу код, а то что готовое изделие работает, обладает соответствующим функционалом, при определенной стоимости и времени разработки. Это с одной стороны. С другой стороны: все люди разные,у каждого свое мировоззрение. Не редко приходилось сталкиваться с разработчиками, более авторитетными чем я, и склонять к своему мнению - хм, не тут-то было. Тряся кодом ничего не докажешь, нужно время чтобы заметить разницу в подходах к программированию в целом. Начинать нужно со студентов. Года два назад помогал с одной разработкой родному ВУЗу - провел несколько семинаров для аспирантов. Приглашали вести курс на постоянной основе, но времени к сожалению нет.
По поводу раскрытия: мои реализации USB CDC и HID приведены несколькими постами выше. Ничего оригинального в них нет. Хотя замахнулся на USB HID "свисток" с управлением входами-выходами, показанием температуры, возможностью подключения монето- и купюроприемников, приема ИК-кодов, проигрывания музыки через бузер (по нотам и длительностям), пробрасыванием RS-232, функциями сторожевого таймера, расчета MD5 для выполнения функций взаимной авторизации как ПК, так и USB-устройства (типа аппаратный ключ). Это для платежных систем, музыкальных автоматов. Работает без драйверов, можно втыкать-вытыкать устройство на горячую - демо-ПО все отслеживает и не падает. Вот наработки - вопросов от сообщества пока нет))
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Apr 13 2013, 08:21
Сообщение #32


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (Golikov A. @ Apr 13 2013, 14:06) *
Хих стандартное заблуждение)... скрывая наработки вы как раз ничего не приобретаете. Кроме вас есть еще много людей кто тоже поднял USB на этих процессорах. А вот раскрыв их вы можете получить, ревизию вашего кода, большее число тестировщиков, почет уважение, сообщество программистов, имя и так далее... Да прямых денег вам никто не даст, а косвенно может много сохранить.
К примеру превратить 1-3 дня на подъем + недельная отладка, в просто 1 день, но это не ваш случай...

Это стандартное заблуждение rolleyes.gif

Наверно любой широкодоступный код годится для надежной работы, но требует оптимизации. И тот, кто потратил время на доводку такого кода (Free RTOS, scmRTOS, Fat FS и т.п.) вряд ли будет его раскрывать, если зарабатывает на этом. Оригинальность она ведь тоже денег стоит.

Кстати, а кто это будет бесплатно тестировать, трассироать и утсранять баги в коде, хотелось бы услышать? Скорее всего народ сделает так, как написать выше, т.е. соптимизирует для себя и всё. Конечно, я сужу исключительно по себе, но кто так не делает? rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 24 2013, 12:08
Сообщение #33


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(adnega @ Apr 13 2013, 09:13) *
По поводу раскрытия: мои реализации USB CDC и HID приведены несколькими постами выше...

В примере USB_HID не хватает файла stm32f10x_map.h
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 24 2013, 13:11
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(ViKo @ Jun 24 2013, 16:08) *
В примере USB_HID не хватает файла stm32f10x_map.h

Во вложенном архиве.
Прикрепленные файлы
Прикрепленный файл  include.zip ( 8.85 килобайт ) Кол-во скачиваний: 75
 
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 24 2013, 13:22
Сообщение #35


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(adnega @ Jun 24 2013, 16:11) *
Во вложенном архиве.

Спасибо!
Сейчас Keil считает ошибкой следующую конструкцию:
Код
typedef struct sPORT
{
    BYTE    report;                // Report = 3 (in/out), size = 33 + 1
    union
    {
        struct
        {
            BYTE    length;                // 0..32
            BYTE    data[32];
        };
        struct
        {
            BYTE    command;
            WORD    baud;
            BYTE    parity;
            BYTE    stop;
        };
    };
} sPORT;

Сначала пишет предупреждения на внутренние структуры:
type.h(45): warning: #40-D: expected an identifier
А потом уже ошибку на объединение:
type.h(53): error: #618: struct or union declares no named members

Это поправил, добавил имен. Но еще не находится WORKLED_bit
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 24 2013, 15:18
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(ViKo @ Jun 24 2013, 17:22) *
Это поправил, добавил имен. Но еще не находится WORKLED_bit

Думаю, что в define.h должно быть так:
Код
#define     WORKLED_bit                        PER_BIT_ADDR(GPIOA_ODR, WORKLED)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 24 2013, 15:52
Сообщение #37


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Теперь осталось последнее. Кейл создает скаттер-файл следующего вида.
Код
LR_IROM1 0x08000000 0x00080000  {  ; load region size_region
  ER_IROM1 0x08000000 0x00080000  {; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x20000000 0x00010000  {; RW data
   .ANY (+RW +ZI)
  }
}

И выдает ошибку
USB_CDC.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.
Это связано с тем, что в проекте стартап написан на C, и секции RESET нет. Что бы такого здесь подправить? Можно свой ассемблерный стартап создать, но интересно именно на C испытать...
Еще не нахожу, где же настраиваются частоты, PLL. То, что в Кейле вызывается в первую очередь после сброса (функция SystemInit()).
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 24 2013, 16:19
Сообщение #38


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(ViKo @ Jun 24 2013, 19:52) *
Что бы такого здесь подправить. Можно свой ассемблерный стартап создать, но интересно именно на C испытать...

В кейле я не силен...
От стартапа ничего особенного не надо: инициализировать данные и передать управление в main().
Можно и на asm.
А какая цель запуска именно этих исходников? Если я правильно помню начало разговора, то идея была в том,
что в некоторых случаях (например, USB для STM32) проще написать самому, чем использовать библиотеку.
Обсуждаемые исходники всего лишь демонстрация этого утверждения.
Думаю, под кейлом запустить еще надо постараться (хотя первая версия была именно под кейл).
Стартап и размещения для линкера это только часть неприятностей (другие неприятности связаны с использованием
особенностей gcc, например, те же анонимные структуры и объединения; а еще и обработчики прерываний надо по
особому оформлять). Тут я видел два пути: либо запускать под gcc, либо скопировать частично исходник в свой (ваш) проект.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 24 2013, 16:36
Сообщение #39


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(adnega @ Jun 24 2013, 19:19) *
А какая цель запуска именно этих исходников? Если я правильно помню начало разговора, то идея была в том,
что в некоторых случаях (например, USB для STM32) проще написать самому, чем использовать библиотеку.

Цель та же - понять USB в STM32. От примеров из библиотеки голова кругом идет. Хочу пройтись по функциям, минимально необходимым.
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 24 2013, 17:48
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(ViKo @ Jun 24 2013, 20:36) *
Цель та же - понять USB в STM32. От примеров из библиотеки голова кругом идет. Хочу пройтись по функциям, минимально необходимым.

В таком случае, правильнее было бы запустить проект по второму варианту (с вашим стартапом и размещением для линкера).
Как написать стартап на С в кейл, по моему, заслуживает отдельной темы))... Хотя для Cortex-M3 все пишется достаточно
просто на ЯВУ С. Правда, я не сторонник настраивать PLL и другую периферию до вызова main().
Go to the top of the page
 
+Quote Post
billidean
сообщение Feb 8 2014, 05:56
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Доброго дня.
Недавно тоже начал разбираться с USB-HID (STM32F4-DISCOVERY).
До этого, ООЧЕНЬ давно, работал с контроллерами, так что небольшое представление о них имею. С этой платой начал только разбираться, поэтому в его регистрах пока не очень.
По поводу ST-библиотеки - ужас+вынос_мозга, потыкал-повключал примеры и все, даже в голову мысли не пускаю об её использовании в своих проектах.
То, что я изобретаю велосипед (да еще и не оптимальной конструкции) - это все понятно. Но то, что это будет МОЙ велосипед - это и есть радость разработчика.
adnega, спасибо за исходники, скачал, начал разбирать их.
ViKo, у Вас получилось запустить на stm32f4?

Есть вопрос по файлу stm32f10x_map.h
Код
/* System Control Space memory map */
#define SCS_BASE              ((u32)0xE000E000)

Откуда взялся адрес 0xE000E000? (в референс мануале на stm32f10xx не нашел такого адреса)

И ещё:
Код
/*------------------------ SystemTick ----------------------------------------*/
typedef struct
{
  vu32 CTRL;
  vu32 LOAD;
  vu32 VAL;
  vuc32 CALIB;
} SysTick_TypeDef;

- этих регистров не нашел в доке, вообще про SysTick там пара фраз.

Подскажите, где искать, если кто знает.
Go to the top of the page
 
+Quote Post
Axel
сообщение Feb 8 2014, 06:54
Сообщение #42


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Цитата(billidean @ Feb 8 2014, 08:56) *
...ООЧЕНЬ давно, работал с контроллерами

Контроллеры из "ООЧЕНЬ давно" похожи на современные как велосипед на трактор... Вам стоит начать "от печки" - почитать про Cortex-ы вообще. Там, например, Вы сразу найдете ответы на заданные Вами вопросы.
Я, кстати, тоже "велосипедист", CMSIS не использую, но ST-шные примеры, ввиду многократно обсуждавшегося качества их доки - элемент необходимый. Мне, например, они помогли написать простенькое и устойчивое Bulk-устройство, читаемое (мною) гораздо легче, чем код от ST.
Go to the top of the page
 
+Quote Post
billidean
сообщение Feb 8 2014, 10:45
Сообщение #43


Местный
***

Группа: Свой
Сообщений: 247
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Знаете, ответы в виде "читайте доку", "курите мануал" - это или от незнания, или от жадности.
Если бы я нашел ответы на свои опросы, то и не задавал бы их вообще.
Go to the top of the page
 
+Quote Post
Axel
сообщение Feb 8 2014, 11:15
Сообщение #44


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Цитата(billidean @ Feb 8 2014, 13:45) *
...ответы в виде "читайте доку", "курите мануал" - это или от незнания, или от жадности...

Как знаете... Хотите код посмотреть - без проблем. Только если "ST-библиотеки - ужас+вынос_мозга", то вряд ли на этом этапе это поможет Вам построить свой велосипед...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 8 2014, 12:36
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(billidean @ Feb 8 2014, 09:56) *
Подскажите, где искать, если кто знает.

На сайте ARM в документации на ядро Cortex-M3.
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 04:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01506 секунд с 7
ELECTRONIX ©2004-2016