adnega 11 13 апреля, 2013 Опубликовано 13 апреля, 2013 · Жалоба Хих стандартное заблуждение)... скрывая наработки вы как раз ничего не приобретаете. Кроме вас есть еще много людей кто тоже поднял USB на этих процессорах. А вот раскрыв их вы можете получить, ревизию вашего кода, большее число тестировщиков, почет уважение, сообщество программистов, имя и так далее... Да прямых денег вам никто не даст, а косвенно может много сохранить. К примеру превратить 1-3 дня на подъем + недельная отладка, в просто 1 день, но это не ваш случай... Я не настаиваю на своей правоте. Наработки я не то чтобы скрываю, просто не афиширую. Было пару случаев, когда ими воспользовались сторонние люди, но ничего кроме реакции "круто, оно работает" ничего не получил. Чтобы довести код до совершенства нужна как минимум соответствующая квалификация: от "молодых" толку мало, а у "старичков" нет времени и желания ковыряться в чужом коде, когда уже есть или свои наработки, или стандартные библиотеки. Имя мне делает не то как я пишу код, а то что готовое изделие работает, обладает соответствующим функционалом, при определенной стоимости и времени разработки. Это с одной стороны. С другой стороны: все люди разные,у каждого свое мировоззрение. Не редко приходилось сталкиваться с разработчиками, более авторитетными чем я, и склонять к своему мнению - хм, не тут-то было. Тряся кодом ничего не докажешь, нужно время чтобы заметить разницу в подходах к программированию в целом. Начинать нужно со студентов. Года два назад помогал с одной разработкой родному ВУЗу - провел несколько семинаров для аспирантов. Приглашали вести курс на постоянной основе, но времени к сожалению нет. По поводу раскрытия: мои реализации USB CDC и HID приведены несколькими постами выше. Ничего оригинального в них нет. Хотя замахнулся на USB HID "свисток" с управлением входами-выходами, показанием температуры, возможностью подключения монето- и купюроприемников, приема ИК-кодов, проигрывания музыки через бузер (по нотам и длительностям), пробрасыванием RS-232, функциями сторожевого таймера, расчета MD5 для выполнения функций взаимной авторизации как ПК, так и USB-устройства (типа аппаратный ключ). Это для платежных систем, музыкальных автоматов. Работает без драйверов, можно втыкать-вытыкать устройство на горячую - демо-ПО все отслеживает и не падает. Вот наработки - вопросов от сообщества пока нет)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 13 апреля, 2013 Опубликовано 13 апреля, 2013 · Жалоба Хих стандартное заблуждение)... скрывая наработки вы как раз ничего не приобретаете. Кроме вас есть еще много людей кто тоже поднял USB на этих процессорах. А вот раскрыв их вы можете получить, ревизию вашего кода, большее число тестировщиков, почет уважение, сообщество программистов, имя и так далее... Да прямых денег вам никто не даст, а косвенно может много сохранить. К примеру превратить 1-3 дня на подъем + недельная отладка, в просто 1 день, но это не ваш случай... Это стандартное заблуждение :rolleyes: Наверно любой широкодоступный код годится для надежной работы, но требует оптимизации. И тот, кто потратил время на доводку такого кода (Free RTOS, scmRTOS, Fat FS и т.п.) вряд ли будет его раскрывать, если зарабатывает на этом. Оригинальность она ведь тоже денег стоит. Кстати, а кто это будет бесплатно тестировать, трассироать и утсранять баги в коде, хотелось бы услышать? Скорее всего народ сделает так, как написать выше, т.е. соптимизирует для себя и всё. Конечно, я сужу исключительно по себе, но кто так не делает? :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 24 июня, 2013 Опубликовано 24 июня, 2013 · Жалоба По поводу раскрытия: мои реализации USB CDC и HID приведены несколькими постами выше... В примере USB_HID не хватает файла stm32f10x_map.h Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 24 июня, 2013 Опубликовано 24 июня, 2013 · Жалоба В примере USB_HID не хватает файла stm32f10x_map.h Во вложенном архиве. include.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 24 июня, 2013 Опубликовано 24 июня, 2013 · Жалоба Во вложенном архиве. Спасибо! Сейчас 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 24 июня, 2013 Опубликовано 24 июня, 2013 · Жалоба Это поправил, добавил имен. Но еще не находится WORKLED_bit Думаю, что в define.h должно быть так: #define WORKLED_bit PER_BIT_ADDR(GPIOA_ODR, WORKLED) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 24 июня, 2013 Опубликовано 24 июня, 2013 · Жалоба Теперь осталось последнее. Кейл создает скаттер-файл следующего вида. 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()). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 24 июня, 2013 Опубликовано 24 июня, 2013 · Жалоба Что бы такого здесь подправить. Можно свой ассемблерный стартап создать, но интересно именно на C испытать... В кейле я не силен... От стартапа ничего особенного не надо: инициализировать данные и передать управление в main(). Можно и на asm. А какая цель запуска именно этих исходников? Если я правильно помню начало разговора, то идея была в том, что в некоторых случаях (например, USB для STM32) проще написать самому, чем использовать библиотеку. Обсуждаемые исходники всего лишь демонстрация этого утверждения. Думаю, под кейлом запустить еще надо постараться (хотя первая версия была именно под кейл). Стартап и размещения для линкера это только часть неприятностей (другие неприятности связаны с использованием особенностей gcc, например, те же анонимные структуры и объединения; а еще и обработчики прерываний надо по особому оформлять). Тут я видел два пути: либо запускать под gcc, либо скопировать частично исходник в свой (ваш) проект. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 24 июня, 2013 Опубликовано 24 июня, 2013 · Жалоба А какая цель запуска именно этих исходников? Если я правильно помню начало разговора, то идея была в том, что в некоторых случаях (например, USB для STM32) проще написать самому, чем использовать библиотеку. Цель та же - понять USB в STM32. От примеров из библиотеки голова кругом идет. Хочу пройтись по функциям, минимально необходимым. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 24 июня, 2013 Опубликовано 24 июня, 2013 · Жалоба Цель та же - понять USB в STM32. От примеров из библиотеки голова кругом идет. Хочу пройтись по функциям, минимально необходимым. В таком случае, правильнее было бы запустить проект по второму варианту (с вашим стартапом и размещением для линкера). Как написать стартап на С в кейл, по моему, заслуживает отдельной темы))... Хотя для Cortex-M3 все пишется достаточно просто на ЯВУ С. Правда, я не сторонник настраивать PLL и другую периферию до вызова main(). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 8 февраля, 2014 Опубликовано 8 февраля, 2014 · Жалоба Доброго дня. Недавно тоже начал разбираться с 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 там пара фраз. Подскажите, где искать, если кто знает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Axel 1 8 февраля, 2014 Опубликовано 8 февраля, 2014 · Жалоба ...ООЧЕНЬ давно, работал с контроллерами Контроллеры из "ООЧЕНЬ давно" похожи на современные как велосипед на трактор... Вам стоит начать "от печки" - почитать про Cortex-ы вообще. Там, например, Вы сразу найдете ответы на заданные Вами вопросы. Я, кстати, тоже "велосипедист", CMSIS не использую, но ST-шные примеры, ввиду многократно обсуждавшегося качества их доки - элемент необходимый. Мне, например, они помогли написать простенькое и устойчивое Bulk-устройство, читаемое (мною) гораздо легче, чем код от ST. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 8 февраля, 2014 Опубликовано 8 февраля, 2014 · Жалоба Знаете, ответы в виде "читайте доку", "курите мануал" - это или от незнания, или от жадности. Если бы я нашел ответы на свои опросы, то и не задавал бы их вообще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Axel 1 8 февраля, 2014 Опубликовано 8 февраля, 2014 · Жалоба ...ответы в виде "читайте доку", "курите мануал" - это или от незнания, или от жадности... Как знаете... Хотите код посмотреть - без проблем. Только если "ST-библиотеки - ужас+вынос_мозга", то вряд ли на этом этапе это поможет Вам построить свой велосипед... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 8 февраля, 2014 Опубликовано 8 февраля, 2014 · Жалоба Подскажите, где искать, если кто знает. На сайте ARM в документации на ядро Cortex-M3. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться