Easyelectronics.ru

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

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



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

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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1912
Так там есть проект под Keil.
Если не выходит (каменная ваза) с SES - используёте Keil.
Разницы нет никакой.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2871
я не помню, есть ли оно под мак. что-то другое ставил когда-то давно, до ses - уж очень неповоротливое оно было. ses в сравнении с той средой просто летает.
вернулся назад к примитиву без hal и dma.
и опять вылезло это безобразие с assert_param, которое не получается отследить и по-нормальному вылечить.
UPD получилось.
в корневой папке ES, где хранятся проекты, находилась папочка inc с тремя файлами, в том числе. stm32f10x_conf.h
в нем находился дефайн этого макроса. заинклюдил файл в исходники, где возникала ошибка - вроде все собралось и работает. но елы-палы...


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2871
походу дела вот с такой проблемой столкнулся
https://electronix.ru/forum/index.php?a ... &id=103597
оно инициализируется и выводит что-то, но как только отправляю в порт из терминала - виснет. в дебаге в мое якобы прерывание не попадает.
как "добавить startup_stm32f10x_ld_vl.s в проект"?

UPD все заработало. сам дурак - не туда поместил обработчик.


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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1912
То есть всё как обычно.
Крики и вопли - метод пристального вглядывания - положительный результат - осознание своих навыков.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2871
ну с этим да.
только не то, чтобы крики и вопли.
но вот чтоб избавиться от ошибки про assert_param - не увере, что добавление #include "stm32f10x_conf.h" во все используемые в проекте файлы - правильное решение.


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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1912
Ну если присмотреться то он включается автоматом в
stm32f10x.h
а уж он то уже включен


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

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

#ifdef USE_STDPERIPH_DRIVER
#include "stm32f10x_conf.h"
#endif

и у меня этого USE_STDPERIPH_DRIVER не установлено, поэтому не инклюдится.
а это надо в project -> Options -> Preprocessor -> Preprocessor definitions указать ?


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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1912
Да


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

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


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

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5819
goreprogrammist, ставь Ozone , там все есть...


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2871
с очередной фигней встрял
есть файл usbserial.c
в нем строчка
__weak void uUSBLIB_DataReceivedHandler(uint16_t *Data, uint16_t Length);
и сеггер не видит __weak, пишет ошибку:
expected ; before void
похоже, что проблема в этом:

https://stackoverflow.com/questions/519 ... -weak-case

где в сеггере нужно это прописывать?


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

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5819
del


Последний раз редактировалось dosikus_2 31 янв 2020, 15:10, всего редактировалось 1 раз.

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

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5819
goreprogrammist писал(а):
есть файл usbserial.c


Откуда оно есть?

Конкретно насчет weak - http://www.valvers.com/programming/c/gc ... ttributes/
Что значит weak понимаем?

goreprogrammist писал(а):
и сеггер не видит __weak, пишет ошибку:


И правильно , ибо не* всякий нестандарт тянуть...


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

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

пока что решил заменой этого дефайна на __attribute__((weak)) во всех пяти местах, где оно встречалось - помогло. вопрос был на грани сеггер/си

вот еще один

Код:

#define _USB_STRING_(name, ws)                  \
    \
const struct name \
{                          \
        uint8_t  bLength;                       \
        uint8_t  bDescriptorType;               \
        uint16_t bString[(sizeof(ws) - 2) / 2]; \
    \
} \
name __attribute__((used, section("usb_string"))) = {sizeof(name), 0x03, ws};


ругается на строчки
_USB_STRING_(wsCDCData, L"CDC Data"), ошибка:
wide character array initialized from incompatible wide string


по идее, как я представляю, оно преобразуется в
Код:
const struct wsCDCData
{                         
        uint8_t  bLength;                       
        uint8_t  bDescriptorType;               
        uint16_t bString[(sizeof(L"CDC Data") - 2) / 2];
}
wsCDCData __attribute__((used, section("usb_string"))) = {sizeof(wsCDCData), 0x03, L"CDC Data"};


и что странно, если развернуть это ручками - то ошибки нету, есть только ворнинги:
useless type qualifier in empty declaration (что бы это ни означало - я не понял)
и
data definition has no type or storage class
type defaults to 'int' in declaration of 'wsCDCData' [-Wimplicit-int]
excess elements in scalar initializer
(near initialization for 'wsCDCData')

и кстати еще выше была ругань (ворнинги)
volatile USBLIB_EPBuf EPBufTable[EPCOUNT] __attribute__((at(USB_PBUFFER)));
('at' attribute directive ignored [-Wattributes])


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

Зарегистрирован: 28 сен 2018, 00:25
Сообщения: 227
В какомнить вышестоящем .h напиши дефайн и незачем все исходники править


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

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

поставил прямо тут - действительно, ошибка ушла.

начал копать про остальные вопросы - директиву at (подозреваю, с этим ворнингом работать оно будет неправильно) плюс свистопляска с остальными ворнингами и ошибками.

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


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

Зарегистрирован: 28 сен 2018, 00:25
Сообщения: 227
goreprogrammist писал(а):
нету вышестоящих .h

Значит организовать. В крайнем случае прописать один раз в начале файла.
Цитата:
+ все дефайны оформляются заглавными буквами - а тут как быть?

О_О с каких это пор это стало правилом проверяемым препроцессором? О_О


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

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

лучше про at подскажите.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2871
такс.
теперь делаю так
https://wiki.segger.com/Porting_from_GC ... GER_Linker
выполнил все. ругань на define region FLASH = FLASH1; в SEGGER_Flash.icf
region 'FLASH1' is not defined

тут
https://forum.segger.com/index.php/Thre ... Flash-icf/
предлагают сделать это
So, we've a to go in the Options/Build/Memory segments and replace FLASH and RAM by FLASH1 and RAM1 ? For every project updated from V4.xx to V4.18 ?

а у меня там пусто.
теперь вопрос, где взять эти значения для stm32f103c8 ?


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2871
интересно, насколько меня еще хватит?

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

продолжаю сеггерствовать. почему-то делаю две одинаковые по сути строчки, но одна дает желаемую строчку в .map файле, а другая - не дает.
Show "такая вот морока"

+ ищу, почему код не генерируется.

обработчик назывался void TIM1_UP_IRQHandler() - кода для него не было.
зато был код для TIM1_UP_TIM10_IRQHandler.

далее, для uUSBLIB_DataReceivedHandler кода нету. ищу дальше, выясняю, что оно вызывается из USBLIB_EPHandler (для которой кода тоже нет), которая вызывается из USB_LP_CAN1_RX0_IRQHandler - для которого и кода нет, и даже названия такого в .map файле. зато есть CAN1_RX0_IRQHandler, и если я этот обработчик переименовываю так, что получаю ошибку unplaced section: usb_string [usblib.o], size=134, align=4
и хз что тут делать.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2871
итак, что делает конструкция

name __attribute__((used, section("usb_string"))) = {sizeof(name), 0x03, ws};

как ее в сеггере повторить?


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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1912
Посмотреть несколько раз, а потом так же станцевать.


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2871
добавил секцию .usb_string, ошибка ушла. скомпилировалось. код везде сгенерировался.
но в прерывания ни в какие не попадаю. я не знаю, можно ли это назвать прогрессом...


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

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2871
колупаюсь дальше.
оно вроде бы и. собирается, и код компилируется (в режиме дебага брейкпоинты ставятся), но не заходит в прерывания.
выяснил такое:
Код:
#ifdef STM32F10X_MD
  ADC1_2_IRQn                 = 18,     /*!< ADC1 and ADC2 global Interrupt                       */
  USB_HP_CAN1_TX_IRQn         = 19,     /*!< USB Device High Priority or CAN1 TX Interrupts       */
  USB_LP_CAN1_RX0_IRQn        = 20,     /*!< USB Device Low Priority or CAN1 RX0 Interrupts       */
  CAN1_RX1_IRQn               = 21,     /*!< CAN1 RX1 Interrupt                                   */
  CAN1_SCE_IRQn               = 22,     /*!< CAN1 SCE Interrupt                                   */
  EXTI9_5_IRQn                = 23,     /*!< External Line[9:5] Interrupts                        */
  TIM1_BRK_IRQn               = 24,     /*!< TIM1 Break Interrupt                                 */
  TIM1_UP_IRQn                = 25,     /*!< TIM1 Update Interrupt                                */

(у меня используется USB_HP_CAN1_TX_IRQn и TIM1_UP_IRQn), оно у меня в .map файле соответствует
Код:
ADC_IRQHandler           08001239      0x84      4  Code  Wk  STM32F103xx_Vectors.o
  CAN1_TX_IRQHandler       0800123b      0x84      4  Code  Wk  STM32F103xx_Vectors.o
  CAN1_RX0_IRQHandler      0800123d      0x84      4  Code  Wk  STM32F103xx_Vectors.o
  CAN1_RX1_IRQHandler      0800123f      0x84      4  Code  Wk  STM32F103xx_Vectors.o
  CAN1_SCE_IRQHandler      08001241      0x84      4  Code  Wk  STM32F103xx_Vectors.o
  EXTI9_5_IRQHandler       08001243      0x84      4  Code  Wk  STM32F103xx_Vectors.o
  TIM1_BRK_TIM9_IRQHandler
                           08001245      0x84      4  Code  Wk  STM32F103xx_Vectors.o
  TIM1_UP_TIM10_IRQHandler
                           08001247      0x84      4  Code  Wk  STM32F103xx_Vectors.o

то есть вроде как с названиями обработчиков я не ошибся.

правильно ли я понимаю, что весь код USB держится на одном прерывании USB и одном таймере?

остается разобраться, какого фига оно никак и не на что не реагирует...


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

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

goreprogrammist писал(а):
остается разобраться, какого фига оно никак и не на что не реагирует...
На F103-м прерывание USB висит на USB_LP_CAN1_RX0_IRQHandler. CAN1_RX0_IRQHandler определён к нему алиасом в stm32f103x8.h.


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


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


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

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


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

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

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