Author: Flemming Jahn

Mine sider

FreeRtos – xQueueSendToFrontFromISR – assertion failure

I dag havde jeg er problem med at sende data til en FreeRtos queue fra et interrupt kald. Problemet var, at når jeg kaldte xQueueSendToFrontFromISR crash’ede systemet med en assertion. Det viste sig at FreeRtos ikke tillader at have en interrupt med en højere prioritet end configMAX_SYSCALL_INTERRUPT_PRIORITY, så problemet blev løst ved at sætte interrupt prioriteten.…
Read more


January 9, 2018 0

Boganmeldelse : Scott Meyers – Effective C++ : 55 specific ways to improve your programs and designs ½

Lad det være sagt med det samme. “Effective C++ : 55 specific ways to improve your programs and designs”  er ikke en nem bog at læse. Det er ikke en bog for begyndere, og kræver nok at man har et par års erfaring med at programmere C++ før man kan få noget ud af den. Jeg…
Read more


December 10, 2017 0

ST32 og I2C write + read i en transaction

Når man skal lave en I2C læsning med ST findes der HAL funktioner til dette. Problemet med standard funktionerne er, at de færdiggør hver læsning og skrivnings transaction før næste transaction kan udføres. Nogle peripherals kræver, at man opsætter register adressen før man laver læsningen. Samtidig kræver nogle peripherals, at det sker i en transaction. Heldigvis…
Read more


December 3, 2017 0

Lav et Ethernet loopback med FreeRtos ogLWIP

Vores produkt har et Ethernet interface, og vi har et ønske om at kunne lave en selftest af dette interface ved, at lave et loopback i PHY’en, så sende en pakke på interfacet, og checke at vi modtager den samme pakke. Vi bruger LWIP og FreeRtos, og nedenstående kode viser hvordan en sådan selftest kan…
Read more


November 26, 2017 0

Cache coherence problem med STM Cortex M7 processor

Selvom jeg har arbejdet med embedded systemer i mange år, kan jeg stadig støde på ting jeg ikke har prøvet før. Et problem jeg ikke havde stødt på før er et problem, der hedder ”cache coherence”, og som jeg lige har brugt laaaang tid på. Problemet viste sig ved, at mit system pludselig begyndte at…
Read more


November 18, 2017 0

Sådan bruges Ruby til at kommunikere via RS232

Jeg bruger ofte Ruby som script sprog til, at lave test systemer til test af mine embedded projekter. Dette kræver, at man kan kommunikere mellem det embedded system og test computeren. Dette gøres nemt via en RS232 forbindelse. Nedenstående kode viser hvor Ruby bruges til at sende og modtage vis RS232. class Cli   attr_reader…
Read more


November 11, 2017 0

Ruby Pry – Windows

Når jeg laver Ruby scripts, bruger jeg typisk Pry (binding.pry) til at debugge og steppe igennem koden. Desværre er Pry ikke en del af standard Ruby, så nedenstående pakker skal installeres ( jeg bruger pt. Windows). gem install pry gem install pry-nav gem install pry-byebug Når de er installeret, har jeg typisk en fælles fil…
Read more


November 1, 2017 0

Ruby – Timeout

Jeg bruger Ruby til, at teste mine embedded C kode, og har derfor en RS232 forbindelse til mit board. I dag havde jeg et lille problem med, at når der var en fejl i den embedded kode, og jeg lavede mine accesses fra Ruby over RS2332 porten, så hang Ruby uden at komme videre. Det…
Read more


October 24, 2017 0

Hvorfor bruge c++ casting ala static_cast frem for ANSI C casting

3 grunde til at bruge C++ casting C++ casting bliver checket af compileren. C casting kan ikke checkes, og kan fejle under runtime. C++ casting er nemme at finde frem fra C casting (specielt vigtig hvis man skal noget, der er scriptet). C++ har 4 typer casting, der bedre kan fortælle nøjagtigt hvad der er…
Read more


October 10, 2017 0

Konvertering af binær data til C++ array

I dag skulle jeg lave noget kode til at lave voice prompts. Alle voice lyd filerne skal ligge som FAT16 format i en ekstern flash. Desværre er hardware’en ikke færdig endnu, så jeg har ikke den faktiske flash. For at teste mit FAT16 system bestemte jeg mig for, at havde mit “fil system” som et…
Read more


October 3, 2017 0