Кто может работал с STM32F042? Есть ли pack для них? Не вижу их в меню контроллеров, а очень бы нужно.
Есть для этих контроллеров pack. Смотрите прикрепленный файл.
С проблемой разобрался теперь библиотеки USB и ETH отсутствуют. С официального сайта они ставятся?
Теперь эти библиотеки называются Middleware, точно также в виде пакета устанавливаются.
Если верить инсталлеру то стоят, а если визарду то нет
Если верить инсталлеру то стоят, а если визарду то нет
Вот такая картина:
Нажмите для просмотра прикрепленного файла
Просит добавить операционную систему. Некоторые компоненты из Middlware сейчас обязательно требуют для своей работы RTOS. Можете здесь еще дополнительно почитать:
http://www.keil.com/pack/doc/mw/USB/html/_...#Creation_StepsЕще имейте в виду что CMSIS и Middlware последней версии несовместимы с последними паками для STM32. Тут написано как действовать:
http://www.keil.com/appnotes/files/apnt_266.pdf
Кнопку Click the Select Pack button не вижу. нет ее.
Цитата(smk @ Sep 24 2014, 12:19)

Кнопку Click the Select Pack button не вижу. нет ее.
Странно, у меня она именно в том месте как в апноуте показано и расположена.
Я так понимаю лишние поудалять нужно или как тут поступить
кейл 5,10 тоже?
Надо выбрать fixed, а затем необходимую версию.
У меня 5.11
Это где такое окошко?
Ладно. Ставлю 5,11. посмотрим что покажет
Вот-вот. Нету. Переставлю кейл, посмотрим.
Переставил на 5.11. Кнопка появилась.
Всеравно что-то не так:
Нажмите для просмотра прикрепленного файлаВот у кого все работает сможете создать проект для stm32f042K6 c USB HID устройством?
Как я понял не видит библиотеки. Что можно сделать? Пакет МДК подключен.
Я же вам писал уже, что необходимо подключить RTOS (галочку поставить напротив Keil RTX). В вашем скриншоте это четко видно.
Посмотрите в окошко Validation Output, там сказано, чего не хватает.
Вот поставил. Всеравно красное. Если убрать галку на красном то все что юсб станет желтым.
Нажмите для просмотра прикрепленного файла
Зайдите в CMSIS Driver и отметьте там USB device. Или можете нажать кнопку Resolve: должно автоматически нужное отметить.
USB device там нет. Resolve не помогает (соответственно я так понимаю) .
А вы выбрали нужные версии библиотек в соответствии с апноутом ссылку на который я приводил выше?
Кажись что-то получилось. Только пока вопрос висит, если я отметил операционку то в проекте ее использовать ведь не обязательно, это только чтоб задействовать нужные библиотеки?
У контроллера STM32F042K6 есть на борту юсб. При создании проекта юсб библиотеки я подключить не могу. Это что я не так делаю? Для 103 серии вс нормально подключается.
Да, использовать необязательно. Но надо ее настроить через configuration wizard (файл RTX_Conf_CM.с). И имейте в виду, что функция main уже по умолчанию является отдельным процессом операционной системы.
Цитата(smk @ Sep 24 2014, 21:01)

У контроллера STM32F042K6 есть на борту юсб. При создании проекта юсб библиотеки я подключить не могу. Это что я не так делаю? Для 103 серии вс нормально подключается.
Какие-то ошибки при подключении отображаются?
Драйвера нет и ошибки что и раньше.
Какого драйвера? скриншот прикрепите
Так у вас же снова таже проблема: неверные версии библиотек
Так это под каждый проект настраивать? не сообразил
Не помогло
Да, под каждый проект.
Какие теперь ошибки?
Если я Вас попрошу завести новый проект для STM32F042K6 и проверить есть ли там юсб драйвер и как там подключатся библиотеки для хид или сдс, не попробуете? Спасибо.
Ошибки те же. без изменений
для stm32f072 та же история
Попробовал. В пакете STM32F0 нету драйвера для модуля USB МК. Надо брать из другого пакета (для семейства F1 или F2, там точно будет) и модифицировать его под нужный вам контроллер.
Добро. Нужно искать примеры или проекты. Как взять другой драйвер не знаю. Еще бы как-то научиться подключать драйвер под RTL8201CP (ethernet).
Создаете проект для контроллера STM32F1, добавляете USB. Либо можете взять пример (из инсталлятора пакетов). И оттуда копируете нужный вам файл, я его прикрепил (взял из проекта для STM32F103). Модифицируете его.
Что касается драйвера для RTL8201CP. Берете любой из тех, что пакет предлагает, и модифицируете его в соответствии с даташитом на RTL8201CP. Можете готовый поискать, возможно найдется где-то. Я сам когда-то для этой микросхемы физического уровня писал драйвер под Keil, но он, к сожалению, не сохранился.
Не совсем понимаю какого характера модификация? Ну и хотельсь бы фирмовую библиотечку попользовать. Под 4.72 работало. Хочу stm32f042 попользовать. Хорошо под нужды подходит.
Цитата(Jekin @ Sep 24 2014, 21:05)

Да, использовать необязательно. Но надо ее настроить через configuration wizard (файл RTX_Conf_CM.с). И имейте в виду, что функция main уже по умолчанию является отдельным процессом операционной системы.
Вот про это не совсем понял. Т.е. писать главную функцию как это обычно делается уже нельзя?
Цитата(smk @ Sep 25 2014, 12:03)

Не совсем понимаю какого характера модификация? Ну и хотельсь бы фирмовую библиотечку попользовать. Под 4.72 работало. Хочу stm32f042 попользовать. Хорошо под нужды подходит.
Этот драйвер - слой между периферийным модулем USB МК и компонентом File System из Middleware. Там чтение/запись в регистры, работа с прерываниями USB. Надо все это для вашего МК переписать.
Цитата(Jekin @ Sep 24 2014, 21:05)

Да, использовать необязательно. Но надо ее настроить через configuration wizard (файл RTX_Conf_CM.с). И имейте в виду, что функция main уже по умолчанию является отдельным процессом операционной системы.
Вот про это не совсем понял. Т.е. писать главную функцию как это обычно делается уже нельзя?
Цитата(Jekin @ Sep 25 2014, 12:12)

Этот драйвер - слой между периферийным модулем USB МК и компонентом File System из Middleware. Там чтение/запись в регистры, работа с прерываниями USB. Надо все это для вашего МК переписать.
Т.е. просто адаптировать к конкретному аппаратному модулю USB? Правильно понял?
Конечно, можно. Просто надо иметь в виду, что main - это уже не просто главная функция, а процесс операционной системы. В этой функции можно использовать API CMSIS-RTOS. Ну и не забудьте достаточный размер стека установить (там для main в конфигурационном файле операционной системы отдельная строка размера стека предусмотрена)
Цитата(smk @ Sep 25 2014, 12:35)

Т.е. просто адаптировать к конкретному аппаратному модулю USB? Правильно понял?
Да, все верно.
Код
#define OS_MAINSTKSIZE 50
Это размер стека, что имелся ввиду? Каким его обычно делают?
Цитата
.\stm32f103.axf: Error: L6218E: Undefined symbol main (referred from rtx_conf_cm.o).
Вот такая еще ошибка при компиляции. Это с галочкой ОС связано?
Цитата(smk @ Sep 25 2014, 16:22)

Код
#define OS_MAINSTKSIZE 50
Это размер стека, что имелся ввиду? Каким его обычно делают?
Размер стека специфичен для каждой программы. Нету универсального размера.
В конфигураторе RTOS есть галочка "проверять переполнение стека". Можете ее установить, чтобы увидеть, если размер стека недостаточен.
Цитата(smk @ Sep 25 2014, 16:22)

Вот такая еще ошибка при компиляции. Это с галочкой ОС связано?
Похоже, что в вашей программе нет функции main
Цитата
Размер стека специфичен для каждой программы. Нету универсального размера.
В конфигураторе RTOS есть галочка "проверять переполнение стека". Можете ее установить, чтобы увидеть, если размер стека недостаточен.
Я понимаю. думал есть какие-то общепринятые цифирки. А где галка? Она без ОС работает?
Цитата
Похоже, что в вашей программе нет функции main
Переработался
Цитата(smk @ Sep 25 2014, 16:40)

А где галка? Она без ОС работает?
Галка в файле RTX_Conf_CM.c. Это проверка стека процессов. Без ОС нету процессов.
Цитата(Jekin @ Sep 25 2014, 16:45)

Галка в файле RTX_Conf_CM.c. Это проверка стека процессов. Без ОС нету процессов.
Есть такая. Стоит по умолчанию
Попытался создать проект через CubeMX. Не собирается. Відает 10 ошибок типа:
Код
usb_042 Configuration\usb_042 Configuration.axf: Error: L6406E: No space in execution regions with .ANY selector matching usbd_desc.o(.bss).
Єто что означает? Лечится как-то ? Спасибо.
toweroff
Sep 30 2014, 09:02
Места не хватает для размещения данных (.bss секции модуля)
Странно. Это же не я нахимичил а CubeMX от ST проект создавал. Да и ничего кроме USB туда не подключалось. Как бы разобраться откуда перегруз.
toweroff
Sep 30 2014, 09:39
Цитата(smk @ Sep 30 2014, 13:29)

Странно. Это же не я нахимичил а CubeMX от ST проект создавал. Да и ничего кроме USB туда не подключалось. Как бы разобраться откуда перегруз.
смотреть *.map файл, что там не помещается
Цитата(toweroff @ Sep 30 2014, 12:39)

смотреть *.map файл, что там не помещается
Нашел единственный мап и ничего он мне не дал.
Код
178 unused section(s) (total 6206 bytes) removed from the image.
Других циферок там нет
toweroff
Sep 30 2014, 10:32
Хмм.. действительно. Сейчас у себя объявил огромный массив, тоже нигде не увидел информации о том, что не помещается именно он.
Значит просмотреть все объявления, особое внимание обратить на глобальные массивы, кучу и т.д.
Пока не ясно, но судя по буржуйским форума причина в динамическом выделении памяти. Что и как пока не знаю.
toweroff
Sep 30 2014, 11:58
Цитата(smk @ Sep 30 2014, 14:47)

Пока не ясно, но судя по буржуйским форума причина в динамическом выделении памяти. Что и как пока не знаю.
нет, это не динамическое выделение, да и невозможно оно на этапе линковки

это линкер не может уложить объявленные ZI и RW данные в указанной (указанных) для них области (областях)
а динамически память выделяется из кучи, которая, кстати, также объявлена в той же области
Ставил Keil5 чтобы USB на STM32F042K6 поднять, а выходит ерунда какая-то. Что делать....
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.