Easyelectronics.ru

Электроника для всех
Текущее время: 05 апр 2020, 03:38

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



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

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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
заблудился.
в сеггере делаю для нордика. пытаюсь отловить момент, где оно в начале зажигает светодиод и светит. ставлю брейкпоинты - а мне в ответ пишут, мол, нету кода для этой строчки. подозреваю, что нужно где-то добавить дебаг-конфигурацию (хз каким образом и куда она у меня делась) - но не совсем понятно, как (да и вообще, правильно ли я это понял)


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
например, сейчас у меня такая картинка:
Вложение:
Снимок экрана 2018-04-07 в 19.40.17.png
Снимок экрана 2018-04-07 в 19.40.17.png [ 51.32 Кб | Просмотров: 1054 ]

я туда могу добавить новую конфигурацию, можно будет поставить чекбоксы напроти internal или common (хз что это значит и зачем), но толку-то? где и что добавлять еще - не совсем понятно. подозреваю, что в файле emProject?


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
разобрался. поставил
gcc_debugging_level="Level 3"
было None.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
быстрый вопрос: почему при установке брейкпоинта и запуске отладки я вижу "no code for breakpoint" и, соответственно, в прерывание не вхожу?


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
просто оно нигде не вызывается - потому и не компилируется. а когда должен быть вызов прерывания - идет hard fault.
теперь вопрос: где прописываются сопоставления векторов для USART1_IRQHandler и ADC1_2_IRQHandler? можно ли как-то прописать обработчик как в avr: типа isr(ADC1_2_IRQn) ?


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
нашел .map файл, ожидаемо не увидел там ничего про свой обработчик.
кто бы объяснил, из чего формируется map файл и где и как добавить обработчик, чтобы все увиделось. подозреваю, косяк в Cortex_M_Startup.s, но как оно устроено - вообще не понятно.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
значит так.
нашел я файл Cortex_M_Startup.s, который, судя по всему, идет с сеггеровским проектом.
в нем есть такие строчки:
Код:
_vectors:
  .word __stack_end__
  .word reset_handler
ISR_HANDLER NMI_Handler
ISR_HANDLER HardFault_Handler
//ISR_HANDLER ADC1_2_IRQHandler
//ISR_HANDLER USART1_IRQHandler
ISR_HANDLER MemManage_Handler
ISR_HANDLER BusFault_Handler

(закомментаренное - это я добавил)
Так вот, в закомментаренном виде он обработчик пропускает на стадии компиляции (No code for breakpoint)
А если убираю комментарий, то вроде как какой-то код создается (но в обработчики один фиг не попадаю)

имеет ли значение, в каком именно месте я добавляю эти строчки?




+ еще не ясно с этим spl:
вот как было исходно (без макроса):
NVIC->ISER[0] |= NVIC_ISER_SETENA_18;
вот как предлагают для якобы удобочитаемости, макросом:
NVIC_EnableIRQ(ADC1_2_IRQn);
макрос этот расшифровывается в core_cm3.h как так:
__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
{
NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */
}

получается то же самое, но вместо "|=" используется "=" - это как раз из таких вещей глюки потом и растут?


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

Зарегистрирован: 18 апр 2017, 03:01
Сообщения: 1381
goreprogrammist писал(а):
получается то же самое, но вместо "|=" используется "=" - это как раз из таких вещей глюки потом и растут?
Какие глюки в данном случае (когда "=") могут быть?


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
а зачем было "|="?
вообще наверное зависит от того, что там было в NVIC->ISER[0]
если другие значимые биты - то после "=" их там не станет?

короче, отвечая на свои вопросы: в .s файле в нужных местах заменил:
ISR_HANDLER ExternalISR17
ISR_HANDLER ADC1_2_IRQn_Handler
и добавил
ISR_HANDLER ExternalISR35
ISR_HANDLER ExternalISR36
ISR_HANDLER USART1_IRQn_Handler
#endif

после этого прерывание usart заработало! а вот ацп по-прежнему работать не хочет - тупо не попадаю в прерывание. хз как производить отладку.
камень stm32f103c8t6
настройка adc:
Код:
void adc_setup(){
//разрешаем тактирование порта А
   RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
        //настраиваем вывод для работы АЦП в режим аналогового входа
   GPIOA->CRL &= ~GPIO_CRL_CNF1;
   //так как тактовая частота АЦП не должна превышать 14MHz
   RCC->CFGR |= RCC_CFGR_ADCPRE_DIV8;
   //разрешаем тактирование АЦП
   RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
        //в комментах подсказали, что в 17 ревизии указано, что перед калибровкоц АЦП надо включить
        ADC1->CR2 |=  ADC_CR2_ADON;
        //запускаем калибровку и ждем пока завершится,  в симуляторе это не работает, в железе делать обязательно
        ADC1->CR2 |= ADC_CR2_CAL;
         while (ADC1->CR2 & ADC_CR2_CAL)
   //разрешаем прерывание от АЦП
   NVIC->ISER[0] = NVIC_ISER_SETENA_18;
   //для первого канала между выборками 7.5 цикла
   ADC1->SMPR2 = ADC_SMPR2_SMP1_0;
   //разрешаем прерывания по окончанию преобразования
   ADC1->CR1 = ADC_CR1_EOCIE;
   //разрешаем запуск от SWSTAR, разрешаем работу АЦП, разрешаем запуск внешним сигналам, непрерывное преобразования
   ADC1->CR2 = ADC_CR2_EXTSEL | ADC_CR2_EXTTRIG | ADC_CR2_CONT ;
   //длина последовательности равна 1, первый канал
   ADC1->SQR1 = 0x00000000;
   ADC1->SQR2 = 0x00000000;
   ADC1->SQR3 = 0x00000001;
   //запускаем АЦП
   ADC1->CR2 |= ADC_CR2_SWSTART;
}


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

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1119
goreprogrammist писал(а):
Код:
while (ADC1->CR2 & ADC_CR2_CAL)
//разрешаем прерывание от АЦП
NVIC->ISER[0] = NVIC_ISER_SETENA_18;

Типичная ошибка для С, в С++ принято пустые циклы записывать так
Код:
while (ADC1->CR2 & ADC_CR2_CAL) {}

именно потому что ";" в конце легко пропустить, как в данном случае.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
так там должно быть ; или не должно быть? добавил скобочки и ; но ничего не поменялось. да и зацикливаний не было.


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

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1119
goreprogrammist писал(а):
так там должно быть ; или не должно быть?

Должен быть пустой цикл, а вместо этого зациклило следующую строку разрешающую прерывания. В данном случае это может быть не критично, но все равно это ошибка.


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

Зарегистрирован: 18 апр 2017, 03:01
Сообщения: 1381
goreprogrammist писал(а):
а зачем было "|="?
просто по привычке кто-то написал, не думая. Такой косяк даже в каких-то сниппетах (или как их там называют — примеры кода от производителя) был (было "|=" вместо просто "="). Но в следующих версиях исправили.
goreprogrammist писал(а):
вообще наверное зависит от того, что там было в NVIC->ISER[0]
если другие значимые биты - то после "=" их там не станет?
Вообще — это смотря какой регистр. С этим регистром — если глянуть PM0056, то там про ISER написано:
Цитата:
Bits 31:0 SETENA[31:0]: Interrupt set-enable bits.
Write:
0: No effect
1: Enable interrupt
Т.е. как раз при "|=" могут быть глюки, а не при "=".


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
окей, спасибо вам обоим, с этим прояснили.

только один фиг, в прерывание не попадаю.

сделал без прерывания, по примеру отсюда:
http://avr-start.ru/?p=2666

только у меня, видимо, версия библиотеки другая оказалась. в структуре не поддерживает resolution, отсутствует ADC_ExternalTrigConvEdge_None (есть без Edge), отсутствует ADC_SoftwareStartConv (есть ADC_SoftwareStartConvCmd), плюс эта же команда требует не одного, а сразу двух аргументов (добавил ENABLE)
вроде бы заработало. хорошо бы переключить в восьмибитный режим еще. продолжу завтра развлекаться.
почему не заработало прерывание - для меня по-прежнему загадка.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
каждый раз одна и та же фигня.
скачал новую студию (старая перестала лицензию лицензировать)
создал хелло ворлд для stm32f103 (blue pill)
когда создавал - по ходу дела выбрал 102c8 вместо 103с8, но тем не менее оно серавно заработало (как поменять - так и не нашел)

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

подскажите пошагово, как создавать проект для stm с подгрузкой всех нужных файлов стандартной библиотеки?
как мне следовало действовать, чтобы избавиться от этих предупреждений и ошибок с assert_param?


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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1929
https://www.youtube.com/watch?v=2ojuoAI6acs

А чем примеры от Nordic не устраивают ?
Например examples/peripheral/saadc


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
ну сейчас просто без нордика, stm32 нужно было поковырять. за видео благодарю - чуть попозже посмотрю.

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


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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1929
Нажал два раза на файле saadc_pca10056.emProject, потом F7
И через 20 секунд увидел
...
3> Assembling ‘ses_startup_nrf52840.s’
3> Assembling ‘ses_startup_nrf_common.s’
1> Compiling ‘system_nrf52840.c’
1> Generating linker script ‘saadc_pca10056.ld’
1> Linking saadc_pca10056.elf
Build complete

И ВСЁ. Видимо Вы в Академию Бубна поступили.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
:-)
исторически так сложилось, что для меня 52840 пока неактуальна
а для 51822 вот так влегкую, вероятно, не получится?


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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1929
Если бубен не брать, то всё получается.
А с бубном - не знаю. Не пробовал.


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

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


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
посмотрел видео. я все так и делал.
и простой проект без внешних файлов собирается без проблем, да.
но стоит подключить библиотеку для работы с i2c - начинаются танцы с бубнами, да - c assert_param.
дело в библиотеке? наверное я вляпался в пресловутое наследие калокуба..


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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1929
Надо заставить себя потратить минут пять и разобраться.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
пока что уже часа полтора ковыряю импорт части проекта отсюда
https://github.com/SL-RU/sdmplayer/blob ... /src/v002/ для работы с этим экраном. там в том числе всякие hal файлы.
сначала думал просто добавлять те файлы, на отсутствие которых оно ругалось.
теперь понимаю, что это глупо, и надо было сразу ликвидировать ненужные инклюды.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2881
 нифига не лучше...
посмотрел на другие библиотеки для этого экранчика - они все похоже растут из одного кода и сделаны на hal.
ищу, как этот hal с минимальными усилиями импортировать в segger - и пока в ступоре...


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


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


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

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


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

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

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