Why Function Pointers are Awesome
11:11
Deep Insight Analysis using Ozone
7:04
An Example of OsAware
4:06
6 жыл бұрын
Mastering RTOS Debugging Techniques
1:00:04
Micro Python - PyBoard Overview
4:26
2015-ESC-Boston
3:47
9 жыл бұрын
Пікірлер
@unclechaelsneckvein
@unclechaelsneckvein 15 сағат бұрын
Fuck AI
@ralflici986
@ralflici986 5 күн бұрын
Very interesting talk, thank you!
@rockerzzz...353
@rockerzzz...353 6 күн бұрын
Can you plz share all the videos?!! Plz
@edh6096
@edh6096 Ай бұрын
I am an EE with 45 years of embedded retiring soon. All assembler, C, and then C++ OO at several multi-national top tier companies. Started using DevOps at least 10 years ago. STILL SEEING 65% OF PROJECTS OF OUR PROJECTS ARE LATE!! What is different from the old days? 100% of the Tech. What is the same as the old days? 100% of the management strategies.
@naymulhasan1533
@naymulhasan1533 Ай бұрын
Awesome! 🎉
@fifaham
@fifaham 2 ай бұрын
@22:40 it would be great if we have translators between assembly codes of various manufacturers that help facilitate the code transition to another manufacturer.
@fifaham
@fifaham 2 ай бұрын
@21:32 for low count pin MCU we can set the code to poll for the zero logic via the switch for 1 second after power up, or so - and after say 1 second from power up the code flow goes automatically to program, not bootloader, if low logic is not detected. So before you power up you just press and hold the switch then power up - this guarantees that the MCU will enter bootloader code. I have done such a similar design before. Then re-use that GPIO pin for another task.
@jacob_beningo
@jacob_beningo 2 ай бұрын
1 second is a very long time in a lot of application. In some industries, there is a requirement for this entire process to take less than 1 millisecond!
@SumitAdep
@SumitAdep 2 ай бұрын
nicely explained this part 49:17
@davidhawley1132
@davidhawley1132 2 ай бұрын
Excellent. I plan to use to resolve issue with FTDI232 board that doesn't seem to like me powering my PCB separately. Unfortunately, I will have to create my own breakout board, but that's a minor inconvenience.
@dreadesina5216
@dreadesina5216 4 ай бұрын
C++ for embedded system? I think he misspoken, first C++ too bloated for an embedded system, with the limited resources available for an embedded system, C will always be the de facto programming language for embedded development and also C will never be faced out, lot of compilers, applications included enterprise applications depend on this ubiquitous language and the most popular programming language of all time. Rust did nothing new in term of technology only help programmer who don't understand C with memory management and allocations and synthetic sugar for using structure as interface the funniest thing is any language new or upcoming will still need to be write in C and with the portability of C and how small it is, it's the perfect language for embedded system and any system applications in my opinion. So instead of trying to look or invent a new tools take the time to understand the one you have and how it works use the good side for your advantage and be aware of the bad ones and take note. We all know the usefulness of an hammer also we also know how dangerous it is during engagement if we don't pay attention so do we say hey the hammer hit me on the finger so it's not good for this function we need another hammer that won't crush my finger when I'm using it even if I wasn't paying attention. No programming language is perfect the same way no software is perfect out of the box so why do we always pretend and justify the proliferation of programming language every time some programmer got bitten by not understanding the tools they're using. Please understand your tools and the functionality of the tools to help your development and help you write elegant codes and software.
@user-ee1wy8gv5u
@user-ee1wy8gv5u 4 ай бұрын
So how much time do we have until there won't be any job for embedded programmers in your opinion?
@beningoembedded
@beningoembedded 4 ай бұрын
I think there will always be jobs for embedded developers. Companies can't find developers with the right skills. Most folks go into more "sexy" areas like AI, web apps, etc. AI will be a great tool to make the few that do embedded more productive at it. At least, that's my opinion today.
@TheJoMoVO
@TheJoMoVO 5 ай бұрын
Awesome video. I'm curious, do you have a favorite RTOS to work with?
@beningoembedded
@beningoembedded 4 ай бұрын
I don't have a favorite. I have several that I use based such ThreadX, FreeRTOS, Zephyr, etc.
@hectorvidales876
@hectorvidales876 5 ай бұрын
Great video, thank you!
@theeeview6718
@theeeview6718 6 ай бұрын
Great video, gents! I'm a history nut so I loved this.
@emanueleziglioli499
@emanueleziglioli499 6 ай бұрын
Max is a legend!
@zoenagy9458
@zoenagy9458 6 ай бұрын
How many decades we have to wait till we get a universal HAL like uart_init(ch) uart_read(ch, u8*) uart_write(ch, buf, len) chip independently, out of the box, which then can be customised.
@beningoembedded
@beningoembedded 6 ай бұрын
Thanks for the comment. I don't think we will ever end up with a universal hal. While the idea is appealing, there are so many diverse ways of doing things and so many requirements for different architectural sets that it is probably improbable. If you are working with Cortex-M parts, you could view CMSIS as providing that need. In automotive, you might use autosar, etc While I'm not optimistic, we could see some open-source HALs gain traction in specific market areas.
@user-xh9cj7in3p
@user-xh9cj7in3p 6 ай бұрын
The closest we will come to a Universal HAL was demonstrated into "2001 a space odyssey". @@beningoembedded 😜
@Bob-zg2zf
@Bob-zg2zf 6 ай бұрын
Thank you, Jacob! Long time no see! Great video. but, sometimes, I feel using ChatGPT is kind of cheating. weird... sigh...
@grimvian
@grimvian 7 ай бұрын
The use cases gives me inspiration to enhance my C code, so a big thank you from me.
@ShyuLee
@ShyuLee 7 ай бұрын
How can you get SES attached to the target via J-Link and the SystemView access J-Link at the same time?
@SurvivalSquirrel
@SurvivalSquirrel 7 ай бұрын
Thank you for this free education.
@bennguyen1313
@bennguyen1313 8 ай бұрын
My debugger only has JTAG, i.e. no real-time tracing via Arm's ITM SWV (SWD+SWO) or J-Link RTT. How can Tracealyzer be used, either streaming via uart (USB CDC), or versus placing in ram for later analysis? Would love to see a typical debug session using Eclipse+Tracealyzer and an STM32.
@GrindAlchemyTech
@GrindAlchemyTech 10 ай бұрын
Thank you
@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 Жыл бұрын
so true, but so difficult to do, constantly.
@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....
@AzlanIkram
@AzlanIkram Жыл бұрын
Really nice explanation of the bootloader topic . I had a lot of questions on mind but this cleared up alot
@bobby9568
@bobby9568 Жыл бұрын
The stops: up. to. date.
@TecICTian
@TecICTian Жыл бұрын
Thanks for the demo
@CuriousCyclist
@CuriousCyclist Жыл бұрын
Really good video! Thanks for taking the time to make it.
@Kefford666
@Kefford666 Жыл бұрын
That memory map allocates a whole 1KB page to the boot config byte. You said you write a string there rather than a whole byte, but do you write anything else here? It seems like a waste of a flash page if there isn't much written there.
@jacob_beningo
@jacob_beningo 2 ай бұрын
You can write other information there that might be useful. It does seem like a waste, but 1 kB in many hardware solutions today is not that much.
@Kefford666
@Kefford666 2 ай бұрын
@@jacob_beningo I am sure other things will come up so it may prove to be handy!
@jorgereyes436
@jorgereyes436 Жыл бұрын
Great video and explanation! Thanks
@suptarotangel
@suptarotangel Жыл бұрын
What’s the job a developer comes to someone to update their firmware? What’s that guy? If I wanna be him lol
@AbuSous2000PR
@AbuSous2000PR Жыл бұрын
very helpful many thx for sharing
@kneg7843
@kneg7843 Жыл бұрын
Great Tutorial. Thank for sharing this great overview
@shahfenil08
@shahfenil08 Жыл бұрын
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
@isaacdaniel2015
@isaacdaniel2015 2 жыл бұрын
Very nicely done
@umeshjawalikar4913
@umeshjawalikar4913 2 жыл бұрын
best
@ravimali2814
@ravimali2814 2 жыл бұрын
Exceptional video. Such detailed and clear explanation. Thank you very very much.
@beningoembedded
@beningoembedded 2 жыл бұрын
Thanks!
@gurpalsingh8880
@gurpalsingh8880 2 жыл бұрын
do you know what X represents in stack information (X@address )
@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!
@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?
@bahtiyar.bayram
@bahtiyar.bayram 2 жыл бұрын
Great content!
@ThePing98
@ThePing98 2 жыл бұрын
Great video thank u
@beningoembedded
@beningoembedded 2 жыл бұрын
Glad you enjoyed it
@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!
@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!
@deltakid0
@deltakid0 2 жыл бұрын
Could you please explain how the ATTiny85 bootloader works? It's a very basic MCU. Thank you.
@jagatheshkumars3758
@jagatheshkumars3758 2 жыл бұрын
It was very helpful for understand the bootloader
@ruisaraiva9717
@ruisaraiva9717 2 жыл бұрын
Hello, do you know were to buy, i cant find one to buy because the stock is out. Best regards
@beningoembedded
@beningoembedded 2 жыл бұрын
The parts are nearly 10 years old now. If they are not nearing end-of-life, it wouldn't surprise me if none are available due to the supply chain issues. It may just be a wait patiently for them to come back into stock kinda thing.
@exobodyfoundation4472
@exobodyfoundation4472 2 жыл бұрын
thanks for showing us how to set this up. I would just run Linux natively though
@antonfernando8409
@antonfernando8409 2 жыл бұрын
Would be nice to know how to debug like this in a Linux embedded box, thanks.
@beningoembedded
@beningoembedded 2 жыл бұрын
Noted. Perhaps something to look at in the future.