Size: a a a

2021 March 14

s

stD in STM32
Ок
источник

PK

Pirojenka Kremowaya in STM32
Огромное спасибо, лучей добра вам:D
источник

s

stD in STM32
Ок
источник

П

Петр in STM32
Друзья - коллеги, у кого есть опыт использования симулятора для stm32?
источник

S

Sergey in STM32
void Application_jump(void)
 {
    uint32_t JumpAddress;

    __disable_irq();

    JumpAddress = (uint32_t) *((__IO uint32_t*)MAIN_PROGRAM_START_ADDRESS);// 0x80005000

    Jump_To_Application = (pFunction) *(__IO uint32_t*) (MAIN_PROGRAM_START_ADDRESS + 4);

    SCB->VTOR = JumpAddress;

    __set_MSP(JumpAddress);

    HAL_DeInit();

    Jump_To_Application();
 }
источник

S

Sergey in STM32
Кто как настраивает переход из загрузчика в CudeIDE ?
источник

S

Sergey in STM32
Основная программа лежит 0x80005000 но не стартует
источник

S

Sergey in STM32
/* Memories definition */
MEMORY
{
 RAM    (xrw)    : ORIGIN = 0x20000000,   LENGTH = 32K
 FLASH    (rx)    : ORIGIN = 0x8005000,   LENGTH = 128K - 0x5000
}
источник

GZ

Genadi Zawidowski in STM32
Msp  желаемый стек поставить (сразу за концом области озу под него)  а не начало программы
источник

u

unt0njs in STM32
Добрый вечер! Подскажите, пожалуйста, если использовать STM32duino bootloader, будут ли корректно работать на Nucleo ардуиновские библиотеки вроде LiquidCrystal, Servo и т.п. ?
источник

VO

Valeriy Osipov in STM32
Почему бы и нет
источник

VO

Valeriy Osipov in STM32
Единственное что админ писал что на нуклео куча разных резисторов ненужных на пинах висит
источник

u

unt0njs in STM32
Спасибо
источник

СА

Самуил Германович Ар... in STM32
unt0njs
Добрый вечер! Подскажите, пожалуйста, если использовать STM32duino bootloader, будут ли корректно работать на Nucleo ардуиновские библиотеки вроде LiquidCrystal, Servo и т.п. ?
Должны нормально. Нуклео под ардуино и создавалось, да.
источник
2021 March 15

OD

Oleg Dvoryadkin in STM32
Sergey
Кто как настраивает переход из загрузчика в CudeIDE ?
void Bootloader_JumpToApplication(void)
{
   uint32_t  JumpAddress = *(__IO uint32_t*)(APP_ADDRESS + 4);
   pFunction Jump        = (pFunction)JumpAddress;

   HAL_RCC_DeInit();
   HAL_DeInit();

   SysTick->CTRL = 0;
   SysTick->LOAD = 0;
   SysTick->VAL  = 0;

#if(SET_VECTOR_TABLE)
   SCB->VTOR = APP_ADDRESS;
#endif

   __set_MSP(*(__IO uint32_t*)APP_ADDRESS);
   Jump();
}
https://github.com/akospasztor/stm32-bootloader/blob/master/lib/stm32-bootloader/bootloader.c
источник

OD

Oleg Dvoryadkin in STM32
Sergey
Основная программа лежит 0x80005000 но не стартует
В основной программе нужно добавить...
int main(void)
{
 /* USER CODE BEGIN 1 */
   __set_PRIMASK(1);
   SCB->VTOR = APP_ADDRESS;
   __set_PRIMASK(0);
   __enable_irq();
...}
источник

S

Sergey in STM32
Попробую вечером. В кейле все само работает.
источник

S

Sergey in STM32
Есть обсуждение по данному вопросу
источник

S

Sergey in STM32
источник

И

Игорь in STM32
Добрый день. Подскажите не могу сообразить, считываю показания энкодера, затем пересчитываю чтобы понять в какую сторону вращается, хочу на нем сделать  регулировку разных параметров. Поэтому думал делать через прерывание, но не могу понять как правильно организовать алгоритм
источник