Easyelectronics.ru

Электроника для всех
Текущее время: 22 янв 2021, 11:35

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 159 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7
Автор Сообщение
 Заголовок сообщения: Re: Segger Embedded Studio (где найти Guide for Dummies?)
СообщениеДобавлено: 03 фев 2020, 22:03 
Старожил

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 3066
нафига - чтоб от ошибки избавиться. а как надо было сделать, чтоб ошибка ушла?

про где висит прерывание: ну вот у меня, когда было написано с USB_LP_ - брейкпоинты в этом коде выставить не получалось - не было кода. и в .map файле я не находил ничего подобного, зато упоминание CAN1_RX0_ там было...

когда переименовал в CAN1_RX0_ - код появился, но в него один фиг попадать не попадаю.

вообще пытался понять, откуда сеггер берет названия обработчиков прерываний - откуда они в .map файле появляются.

устройств в системе никаких не появляется - то есть там не то, чтобы инициализация была неправильной - она вообще не происходит?
пока что откладываю эксперименты до завтрашнего вечера наверное...
если с этим кодом озарения не произойдет - попробую ваш код на с++ импортировать в сеггер + еще одну тему тут же на форуме нашел - конкретно под блюпил cdc usb библиотеку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio (где найти Guide for Dummies?)
СообщениеДобавлено: 03 фев 2020, 22:18 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1657
goreprogrammist писал(а):
нафига - чтоб от ошибки избавиться. а как надо было сделать, чтоб ошибка ушла?
Убрать нафиг все нестандартные секции и директивы размещения в них. В коде USB они не нужны и только проблемы совместимости создают.

goreprogrammist писал(а):
про где висит прерывание: ну вот у меня, когда было написано с USB_LP_ - брейкпоинты в этом коде выставить не получалось - не было кода. и в .map файле я не находил ничего подобного, зато упоминание CAN1_RX0_ там было...

когда переименовал в CAN1_RX0_ - код появился, но в него один фиг попадать не попадаю.

вообще пытался понять, откуда сеггер берет названия обработчиков прерываний - откуда они в .map файле появляются.
Из стартапа появляются с атрибутом weak. Пока ты их не переопределишь в своём коде, там будет заглушка.

goreprogrammist писал(а):
устройств в системе никаких не появляется - то есть там не то, чтобы инициализация была неправильной - она вообще не происходит?
Для возникновения первого прерывания Reset практически ничего и не надо - включить USB-модуль и разрешить прерывания. Ну и кабель передёрнуть не забывать.

goreprogrammist писал(а):
если с этим кодом озарения не произойдет - попробую ваш код на с++ импортировать в сеггер
Там надо мой стартап заменить на сеггеровский и должно взлететь.

PS: Если тактирование USB включено, то вот такой код даст первое прерывание
Код:
USB->CNTR = USB_CNTR_FRES;
USB->CNTR = 0;
USB->ISTR = 0;
USB->CNTR = USB_CNTR_CTRM | USB_CNTR_RESETM | USB_CNTR_SUSPM | USB_CNTR_WKUPM;
NVIC_EnableIRQ(USB_LP_CAN1_RX0_IRQn);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio (где найти Guide for Dummies?)
СообщениеДобавлено: 03 фев 2020, 22:55 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 2140
Можно прочитать брошюру про нужный процессор и понять как он работает.
При сбросе и любом прерывании.
Тогда не понадобилось бы ждать очевидных ответов и лопатить килотонны непонятных (до прочтения) букв.
Компилятор особой роли не играет.
К тому эе их всего четыре (если под Cortex-Mx) распостраненных.
Хотя в CMSIS настройки под три.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio (где найти Guide for Dummies?)
СообщениеДобавлено: 03 фев 2020, 23:42 
Старожил

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 3066
ух. добавил строчки - попал в прерывание, причем несколько раз.
на строчке USB->CNTR = USB_CNTR_FRES; попал
в ветку if (USB->ISTR & USB_ISTR_SUSP
потом в if (USB->ISTR & USB_ISTR_ERR)
и потом в if (USB->ISTR & USB_ISTR_ESOF)
потом на строчке USB->CNTR = USB_CNTR_CTRM | USB_CNTR_RESETM | USB_CNTR_SUSPM | USB_CNTR_WKUPM;
в
в ветку if (USB->ISTR & USB_ISTR_SUSP
и в в ветку if (USB->ISTR & USB_ISTR_WKP

устройств при этом никаких не появляется.
но это я запускал уже после проинициализированного усб.
а если убрать USBLIB_Init - на всякий случай ниже показываю как оно выглядит
Код:
void USBLIB_Init(void)
{
    NVIC_DisableIRQ(USB_LP_CAN1_RX0_IRQn);
    RCC->APB1ENR |= RCC_APB1ENR_USBEN;

    USB->CNTR   = USB_CNTR_FRES; /* Force USB Reset */
    USB->BTABLE = 0;
    USB->DADDR  = 0;
    USB->ISTR   = 0;
    USB->CNTR   = USB_CNTR_RESETM;
    NVIC_SetPriority(TIM1_UP_IRQn, 4);
    NVIC_EnableIRQ(USB_LP_CAN1_RX0_IRQn);
}

- то в прерывание не попадаю. сейчас попробую разобраться, почему так. строчку SetPriority добавлял в порядке экспериментов.

"Убрать нафиг все нестандартные секции и директивы размещения в них." - это надо знать, какие они там стандартные. я сейчас использую сеггеровскую технологию линковки. типа "быстрее", как они назвают преимущества.

"Из стартапа появляются с атрибутом weak" - прошерстил вроде бы все файлы в проекте, не нашел ничего похожего.

"Для возникновения первого прерывания Reset" - что за прерывание Reset?

про прочитать - я думал как "черный ящик" использовать эту библиотеку, но вот не вышло.

документацию - там за полтыщи страниц чтения. хотя конкретно часть про запуск, наверное, может занимать всего страниц двадцать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio (где найти Guide for Dummies?)
СообщениеДобавлено: 04 фев 2020, 10:46 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1657
В начале инициализации обязательно
Код:
USB->CNTR = USB_CNTR_FRES;
USB->CNTR = 0;
Потом всё остальное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio (где найти Guide for Dummies?)
СообщениеДобавлено: 04 фев 2020, 13:51 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5896
goreprogrammist писал(а):
про где висит прерывание: ну вот у меня, когда было написано с USB_LP_ - брейкпоинты в этом коде выставить не получалось - не было кода. и в .map файле я не находил ничего подобного, зато упоминание CAN1_RX0_ там было...

когда переименовал в CAN1_RX0_ - код появился, но в него один фиг попадать не попадаю.


http://mcu.goodboard.ru/viewtopic.php?id=250


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio (где найти Guide for Dummies?)
СообщениеДобавлено: 04 фев 2020, 14:07 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 1016
Откуда: Earth
dosikus_2 писал(а):
http://mcu.goodboard.ru/viewtopic.php?id=250

"Ссылка, по которой Вы пришли неверная или устаревшая."


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio (где найти Guide for Dummies?)
СообщениеДобавлено: 08 фев 2020, 18:11 
Старожил

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 3066
устаревшая. он, вероятно, хотел сказать
http://mcu.goodboard.ru/viewtopic.php?id=40

итак. в моей штуке сейчас меня смущает следующее. при компиляции сеггер рисует зеленые полоски про занятую память. во время игрищ с nrf я помню, что софтдевайс располагался в отдельной области, и это отражалось в сеггере.
сейчас я такого не вижу:
Вложение:
Снимок экрана 2020-02-08 в 16.07.59.png
Снимок экрана 2020-02-08 в 16.07.59.png [ 36.71 Кб | Просмотров: 266 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Segger Embedded Studio (где найти Guide for Dummies?)
СообщениеДобавлено: 17 янв 2021, 03:12 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 7238
Столкнулся с подарком, решил поделиться - в support обращаться бесполезно.
Итак, SES 5.34, вынь 10 20h2, памяти 16. При попытке переместить окно (типа - как на предыдущем посте) в другую позицию, то - SES выводит предполагаемые места внутри своего окна и дальше всё висьнет колом. Отваливается мыша, по переходу в таск манагер (кнопками) видна 25% загрузка SES и 25% системы. Ничего переключить и снять нельзя, кол полнейший. Выход - по трем кнопкам переключается общее окно выни и сбрасывает это идиотское состояние, у SES "перемещаемое" окно остаётся плавающим (независимым окном), прицепить его куда-нибудь нельзя. Но, есть выход - в SES выбрать "Reset Window Layuot" и больше никогда не пытаться что-то передвинуть. К слову, если вы сдерните другое окно, то "reset" не поможет, получите шизу и как будете исправлять - неизвестно, "reset" на него может не действовать. Описанный дефект Абсолютно Стабилен, crash 100%. Сам Win свежепоставлен и совершенно не загажен (еще и муха не сидела).

Теперь, как перенести окно. Это возможно(!). Для этого, после 5.34 я поставил =еще= и старый 4.12. В нем окна перенести можно. После этого и в 5.34 эта операция стала возможной.
Очень милые ребята, эти немцы, заботливые. Постоянно надо пополнять список "чего делать нельзя".

Ну что, мнение о программе у меня не изменилось.
Всего 4 часа и я смог скомпилировать проект F303 (с CCM) в SES, взятый из KEIL. За последние 2 года - как были м[]и, так ими и остались. Ничего и не думали исправлять.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 159 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB