Easyelectronics.ru

Электроника для всех
Текущее время: 22 фев 2020, 10:03

Часовой пояс: 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
Сообщения: 2818
заблудился.
в сеггере делаю для нордика. пытаюсь отловить момент, где оно в начале зажигает светодиод и светит. ставлю брейкпоинты - а мне в ответ пишут, мол, нету кода для этой строчки. подозреваю, что нужно где-то добавить дебаг-конфигурацию (хз каким образом и куда она у меня делась) - но не совсем понятно, как (да и вообще, правильно ли я это понял)


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

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

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


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

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


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

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


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

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


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2818
значит так.
нашел я файл 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
Сообщения: 1366
goreprogrammist писал(а):
получается то же самое, но вместо "|=" используется "=" - это как раз из таких вещей глюки потом и растут?
Какие глюки в данном случае (когда "=") могут быть?


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2818
а зачем было "|="?
вообще наверное зависит от того, что там было в 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
Сообщения: 1075
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
Сообщения: 2818
так там должно быть ; или не должно быть? добавил скобочки и ; но ничего не поменялось. да и зацикливаний не было.


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

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

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


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

Зарегистрирован: 18 апр 2017, 03:01
Сообщения: 1366
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
Сообщения: 2818
окей, спасибо вам обоим, с этим прояснили.

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

сделал без прерывания, по примеру отсюда:
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
Сообщения: 2818
каждый раз одна и та же фигня.
скачал новую студию (старая перестала лицензию лицензировать)
создал хелло ворлд для 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
Сообщения: 1879
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
Сообщения: 2818
ну сейчас просто без нордика, stm32 нужно было поковырять. за видео благодарю - чуть попозже посмотрю.

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


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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1879
Нажал два раза на файле 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
Сообщения: 2818
:-)
исторически так сложилось, что для меня 52840 пока неактуальна
а для 51822 вот так влегкую, вероятно, не получится?


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

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


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

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


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

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


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

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


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2818
пока что уже часа полтора ковыряю импорт части проекта отсюда
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
Сообщения: 2818
 нифига не лучше...
посмотрел на другие библиотеки для этого экранчика - они все похоже растут из одного кода и сделаны на hal.
ищу, как этот hal с минимальными усилиями импортировать в segger - и пока в ступоре...


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


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


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

Сейчас этот форум просматривают: cubot, Romario


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

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

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