Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 12.07.2023, 19:00  
Dtolok
Гражданин KAZUS.RU
 
Регистрация: 28.11.2007
Адрес: харьков
Сообщений: 850
Сказал спасибо: 339
Сказали Спасибо 43 раз(а) в 23 сообщении(ях)
Dtolok на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

j-Roger
там нет драйверов
Реклама:

Последний раз редактировалось mike-y-k; 12.07.2023 в 23:14. Причина: 7.15
Dtolok вне форума  
Непрочитано 14.07.2023, 00:29  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 709
Сказал спасибо: 363
Сказали Спасибо 795 раз(а) в 370 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Dtolok
Если речь о CMSIS, то в каталоге Drivers/CMSIS/Device/ST/STM32G4xx/Include находятся именно файлы "Device Peripheral Access Layer Header" с определениями регистров периферии, в том числе для чипа G431. Кстати, по ссылке eddy - точно такой же каталог заголовочных файлов для G4xx.

Если же под драйверами подразумевается HAL, то Drivers/STM32G4xx_HAL_Driver - это, видимо, оно

Последний раз редактировалось mike-y-k; 14.07.2023 в 12:44. Причина: 7.15
j-Roger вне форума  
Непрочитано 07.01.2024, 23:12  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

А не сталкивался ли кто с такой проблемой: опробованный на многих МК код для работы с флеш-памятью на "китайском" STM32F303 приводит к непонятному зависанию во время стирания страниц. Одну-две стирает, а потом - все. В отладчике, поставил break на функцию стирания - все свободные страницы стерлись без проблем. А без брейка зависает, зараза! Причем, утилита st-flash спокойно все стирает и не ругается, а то я уж было подумал, что там вместо 128кБ флеша только 64…
Очень странное поведение.
Функция стирания страницы:
Код:
static int erase_pageN(int N){
    int ret = 0;
    FLASH-›AR = (uint32_t)Flash_Data + N*FLASH_blocksize;
    FLASH-›CR |= FLASH_CR_STRT;
    uint32_t xx = 100000;
    while((FLASH-›SR & FLASH_SR_BSY) && --xx) IWDG-›KR = IWDG_REFRESH;
    if(xx == 0) return 1;
    FLASH-›SR = FLASH_SR_EOP;
    if(FLASH-›SR & FLASH_SR_WRPERR){ /* Check Write protection error */
        ret = 1;
        FLASH-›SR = FLASH_SR_WRPERR; /* Clear the flag by software by writing it at 1*/
    }
    return ret;
}
Функция стирания хранилища:
Код:
int erase_storage(int npage){
    int ret = 0;
    uint32_t end = 1, start = 0, flsz = 0;
    if(FLASH_SIZE › 0 && FLASH_SIZE ‹ 20000){
        flsz = FLASH_SIZE * 1024; // size in bytes
        flsz -= (uint32_t)Flash_Data - FLASH_BASE;
    }
    DBG("total free blocks: "); printu(flsz / FLASH_blocksize);
    end = flsz / FLASH_blocksize;
    if(end == 0) return 1;
    if(npage › -1){ // erase only one page
        if((uint32_t)npage ›= end) return 1;
        start = npage;
        end = start + 1;
    }
    if((FLASH-›CR & FLASH_CR_LOCK) != 0){
        FLASH-›KEYR = FLASH_KEY1;
        FLASH-›KEYR = FLASH_KEY2;
    }

    while(FLASH-›SR & FLASH_SR_BSY) IWDG-›KR = IWDG_REFRESH;
    FLASH-›SR = FLASH_SR_EOP | FLASH_SR_PGERR | FLASH_SR_WRPERR;
    FLASH-›CR |= FLASH_CR_PER;
    __disable_irq();
    for(uint32_t i = start; i ‹ end; ++i){
        if(erase_pageN(i)){
            ret = 1;
            break;
        }
    }
    __enable_irq();
    FLASH-›CR &= ~FLASH_CR_PER;
    return ret;
}
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 08.01.2024, 00:05  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 709
Сказал спасибо: 363
Сказали Спасибо 795 раз(а) в 370 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

ЕМНИП "при зависании" под отладкой обычно первым делом в отладчике жмем на паузу и сразу видим, где "зависли", и можно посмотреть все регистры МК вплоть до самого незначащего бита )
j-Roger вне форума  
Непрочитано 08.01.2024, 00:14  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

j-Roger, в том-то и проблема, что под отладкой не зависает! Память стирается нормально. Даже просто брейки не ставлю - все штатно проходит.
А как только без отладчика запускаю - зависон…

Обнаружил, что у меня нога Rx USART'а висела в воздухе и периодически шум в прерывания загонял МК. ХЗ, как это связано с моей проблемой, но подтяжка Rx к плюсу вроде бы избавила от проблемы. А может и появится снова…
__________________
Союз Советских Социалистических Округов Северной Америки

Последний раз редактировалось eddy; 08.01.2024 в 00:43.
eddy вне форума  
Непрочитано 08.01.2024, 11:55  
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,359
Сказал спасибо: 85
Сказали Спасибо 613 раз(а) в 371 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Ну так надо все прерывания запрещать на время стирания-записи флэша.
Иначе может возникнуть HardFault.
Цитата:
__disable_irq();
Ну или переопределить вектора прерываний в RAM или в правильную страницу флэша.
pambaru вне форума  
Непрочитано 19.01.2024, 17:34  
ankirus
Частый гость
 
Регистрация: 30.05.2009
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
ankirus на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

В папке с IARом в ProgrammFiles аж две библиотеки STL, но ни одну не могу заставить работать. Буквально "class" undefined и т.п., т.е. CPP вообще не компилируется, хотя auto выбор с/cpp выставлен и все известные мне варианты расширений файлов перепробованы. Помогите новичку советом.
__________________
"При отрыве шестой ноги таракан теряет слух"
ankirus вне форума  
Непрочитано 19.01.2024, 17:45  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Проверьте версию стандарта языка в настройках компиляции. Укажите версию не ниже С++14. Потому как многие плюшки стандартной библиотеки шаблонов появились в поздних версиях стандарта. С++17, С++20.

Ну и проверьте подключения в файл необходимых файлов (#include ‹›), которые требуются для конкретных инструментов
NewWriter вне форума  
Непрочитано 19.01.2024, 19:50  
ankirus
Частый гость
 
Регистрация: 30.05.2009
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
ankirus на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от NewWriter Посмотреть сообщение
Проверьте версию стандарта языка в настройках компиляции. Укажите версию не ниже С++14. Потому как многие плюшки стандартной библиотеки шаблонов появились в поздних версиях стандарта. С++17, С++20.

Ну и проверьте подключения в файл необходимых файлов (#include ‹›), которые требуются для конкретных инструментов
Спасибо. Огромное. Я сам не догадался, что нужно новый проект создать на том же workspace. Невероятно, но первого раза скомпилировалось,
__________________
"При отрыве шестой ноги таракан теряет слух"

Последний раз редактировалось ankirus; 20.01.2024 в 06:26.
ankirus вне форума  
Непрочитано 20.01.2024, 10:59  
ankirus
Частый гость
 
Регистрация: 30.05.2009
Сообщений: 25
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
ankirus на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Получается смешно. IAR STL вместе с пользовательским кодом компилируется (кусок, где с++ , но без файлов конфигурации контроллера), и IAR CUBEMX с необходимой конфигурацией и так же с пользовательским кодом - тоже компилируется (без куска с с++). По отдельности. Соединить их вместе - непонятно, как. Кто-нибудь подскажет, как подключить куб к с++, либо с++ к проекту куба, чтобы вместе работали. Какова процедура? Подключать вручную 509 файлов из проекта куба к проекту библиотеки? Может есть менее идиотские варианты?https://kazus.ru/forums/images/smilies/icon_obstenu.gif
ankirus вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 23:21.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot