Why Function Pointers are Awesome

  Рет қаралды 5,279

Jacob Beningo

Jacob Beningo

Күн бұрын

In this 2022 Embedded Online Conference Microtalk, Jacob Beningo discusses the use cases for function pointers in embedded software.
This video looks at the C programming language function pointers, and how they can be leveraged for use cases such as:
- task scheduling
- command processing
- state machines
- interrupt vector tables
Developers often get confused that function pointers shouldn't be used in embedded systems because of MISRA C: 1998 Rule 104. As you'll see in this video, there are safe methods for using function pointers.
(The Embedded Online Conference will take place April 25 - 29th, 2022. If you are interested in participating, you can register with the code BENINGO to get at least a $100 discount).

Пікірлер: 21
@ralflici986
@ralflici986 9 күн бұрын
Very interesting talk, thank you!
@CuriousCyclist
@CuriousCyclist Жыл бұрын
Really good video! Thanks for taking the time to make it.
@LomasSubedi
@LomasSubedi 2 жыл бұрын
Thank you Jacob, your presence in here and on different blog article is helping so much to learn and understand.
@beningoembedded
@beningoembedded 2 жыл бұрын
Happy to hear that!
@grimvian
@grimvian 7 ай бұрын
The use cases gives me inspiration to enhance my C code, so a big thank you from me.
@bahtiyar.bayram
@bahtiyar.bayram 2 жыл бұрын
Great content!
@btoven66
@btoven66 2 жыл бұрын
Great to see you again!!!
@beningoembedded
@beningoembedded 2 жыл бұрын
Thanks Peter! I'm planning to post a lot more this year so stay tuned!
@deltakid0
@deltakid0 2 жыл бұрын
Could you please explain how the ATTiny85 bootloader works? It's a very basic MCU. Thank you.
@ThePing98
@ThePing98 2 жыл бұрын
Great video thank u
@beningoembedded
@beningoembedded 2 жыл бұрын
Glad you enjoyed it
@waynerifish
@waynerifish 2 жыл бұрын
Regarding "Make sure function pointers are NOT stored in RAM"... when I register a callback function, isn't that callback function pointer stored in RAM somewhere (e.g., UART0_ISR->function), even if it's done in pre-compiled or auto-generated code?
@shahfenil08
@shahfenil08 2 жыл бұрын
Interestingly, I violated the rule that said it should be constant and my code was crashing because it was pointing to the 0x0. As I was debugging the issue, I found out another bug index out range. So one bug exposed another nasty bug. Note that, before implementing function pointer other bug was still there but I couldn't find out because my program haven't crashed or going into hard fault. :D
@boudewijndijkstra82
@boudewijndijkstra82 Жыл бұрын
Another problem is that calculating the maximum stack usage becomes non-trivial. For each function pointer invocation it has to be clear which functions can potentially be called.
@beningoembedded
@beningoembedded Жыл бұрын
Absolutely! Thanks for the comment and observation!
@Bob-zg2zf
@Bob-zg2zf Жыл бұрын
I just bought your book today.❤
@beningoembedded
@beningoembedded Жыл бұрын
Excellent! I hope you enjoy it!
@Bob-zg2zf
@Bob-zg2zf Жыл бұрын
@@beningoembedded I ordered it but I have not received it. I hope I will indeed enjoy it as much as I enjoyed your videos. The thing is, my expertise level is not that advanced. I am afraid I won't understand all or most of your book's contents. But I like your video contents and style and background.
@Bob-zg2zf
@Bob-zg2zf Жыл бұрын
@@beningoembedded Do you mind if I ask you a simple question? I have read your article, where you mentioned that we are supposed to "write rock-solid embedded software". But I can only design and solder an STM32 board with HCD1080, using someone's Keil project code that I downloaded from the Internet. So, how do I write my own entire project/code? How do I improve myself from using others' code to "write my own rock-solid embedded software"? The architecture seems so difficult to master to write from scratch or modify here and there....
@hsaidinsan6345
@hsaidinsan6345 2 жыл бұрын
Do they affect the real time performance?
@beningoembedded
@beningoembedded 2 жыл бұрын
Function pointers will not have a negative impact on the real-time performance. They can improve readability, scalability, and reusability though. They can also decrease maintenance too. If you were to look at what a function call really is, it's just a pointer to the functions code anyway!
Master Pointers in C:  10X Your C Coding!
14:12
Dave's Garage
Рет қаралды 290 М.
Playing hide and seek with my dog 🐶
00:25
Zach King
Рет қаралды 33 МЛН
A teacher captured the cutest moment at the nursery #shorts
00:33
Fabiosa Stories
Рет қаралды 8 МЛН
КАК ДУМАЕТЕ КТО ВЫЙГРАЕТ😂
00:29
МЯТНАЯ ФАНТА
Рет қаралды 9 МЛН
2022 Embedded Online Conference - Why Attend?
2:20
Jacob Beningo
Рет қаралды 435
Embedded C Programming Design Patterns: Callback
22:55
Martin K. Schröder
Рет қаралды 6 М.
Optimizing C for Microcontrollers - Best Practices - Khem Raj, Comcast RDK
52:39
Callback Functions in C Explained
13:26
Codeflash
Рет қаралды 49 М.
Pointers and dynamic memory - stack vs heap
17:26
mycodeschool
Рет қаралды 1,4 МЛН
Economist fact-checks Scott Galloway’s Anti-Boomer TED Talk
26:05
Money & Macro
Рет қаралды 38 М.
Looks very comfortable. #leddisplay #ledscreen #ledwall #eagerled
0:19
LED Screen Factory-EagerLED
Рет қаралды 2 МЛН
НОВЫЕ ФЕЙК iPHONE 🤯 #iphone
0:37
ALSER kz
Рет қаралды 97 М.
تجربة أغرب توصيلة شحن ضد القطع تماما
0:56
صدام العزي
Рет қаралды 60 МЛН