FreeRtos – TMR SVR stack overflow

I dag havde jeg et problem med jeg fik et stack overflow crash. Det viste sig, at det var et TMR SCR stack overflow. Efter lidt søgning viste det sig, at man bestemmer stack størrelse i freeRtosConfig.h. Jeg øgede Timer stack størrelsen til 3 gange minimal stack størrelse med nedenstående i freeRtosConfig.h. #define configTIMER_TASK_STACK_DEPTH            ( configMINIMAL_STACK_SIZE * … [Read more…]

STM32F7 – HAL – Interrupt handling

Når man bruger CubeMx til at lave den basale kode får man automatisk genereret en interrupt handler for External Interrupts, som vist nedenfor.   /** * @brief This function handles EXTI line0 interrupt. */ void EXTI0_IRQHandler(void) { /* USER CODE BEGIN EXTI0_IRQn 0 */ /* USER CODE END EXTI0_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); /* USER CODE … [Read more…]

C++ – Hvornår skal man bruge unordered map

C++ fik med C++11 versionen en “std::unordered_map” STL container, men hvornår skal man bruge “std::unordered_map” frem for “std::map”. Jeg har samlet en lille oversigt for hvornår, man skal hvad. Brug “std::map” når:  Du ønsker lav memory forbrug std::unordered_map bruger noget ekstra memory, så hvis der er ønske om at bruge mindst memory skal std:map vælges. Hvis … [Read more…]

VHDL I2C slave

Jeg er i gang med et FPGA design (Microsemi IGLOO nano) til vores test system, og havde i den forbindelse brug for en I2C slave implementation. Mircrosemi leverer en I2C IP med som en del af deres pakke, men den er både master og slave, og er beregnet til at interface op mod en internal … [Read more…]

UNI/O med STM32F7 og FreeRtos

For at kunne kommunikere med en UNI/O eeprom med en STM32F7, som kører FreeRtos, har jeg lavet et lille test program. Jeg har taget udgangspunkt i et eksempel skrevet af Stephen Early (Thanks Steve 🙂 – https://github.com/martmaiste/UNIO/blob/master/UNIO.h )   /* Copyright (C) 2011 by Stephen Early <steve@greenend.org.uk> Permission is hereby granted, free of charge, to any … [Read more…]