Easyelectronics.ru

Электроника для всех
Текущее время: 31 мар 2020, 07:28

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



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

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

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

про где висит прерывание: ну вот у меня, когда было написано с 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
Сообщения: 1281
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
Сообщения: 1912
Можно прочитать брошюру про нужный процессор и понять как он работает.
При сбросе и любом прерывании.
Тогда не понадобилось бы ждать очевидных ответов и лопатить килотонны непонятных (до прочтения) букв.
Компилятор особой роли не играет.
К тому эе их всего четыре (если под Cortex-Mx) распостраненных.
Хотя в CMSIS настройки под три.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2871
ух. добавил строчки - попал в прерывание, причем несколько раз.
на строчке 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
Сообщения: 1281
В начале инициализации обязательно
Код:
USB->CNTR = USB_CNTR_FRES;
USB->CNTR = 0;
Потом всё остальное.


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

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5819
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
Сообщения: 897
Откуда: 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
Сообщения: 2871
устаревшая. он, вероятно, хотел сказать
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 Кб | Просмотров: 132 ]


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


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


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

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


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

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

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