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Ай бұрын
Awesome! 🎉
@fifaham2 ай бұрын
@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.
@fifaham2 ай бұрын
@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_beningo2 ай бұрын
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!
@SumitAdep2 ай бұрын
nicely explained this part 49:17
@davidhawley11322 ай бұрын
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.
@dreadesina52164 ай бұрын
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-ee1wy8gv5u4 ай бұрын
So how much time do we have until there won't be any job for embedded programmers in your opinion?
@beningoembedded4 ай бұрын
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.
@TheJoMoVO5 ай бұрын
Awesome video. I'm curious, do you have a favorite RTOS to work with?
@beningoembedded4 ай бұрын
I don't have a favorite. I have several that I use based such ThreadX, FreeRTOS, Zephyr, etc.
@hectorvidales8765 ай бұрын
Great video, thank you!
@theeeview67186 ай бұрын
Great video, gents! I'm a history nut so I loved this.
@emanueleziglioli4996 ай бұрын
Max is a legend!
@zoenagy94586 ай бұрын
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.
@beningoembedded6 ай бұрын
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-xh9cj7in3p6 ай бұрын
The closest we will come to a Universal HAL was demonstrated into "2001 a space odyssey". @@beningoembedded 😜
@Bob-zg2zf6 ай бұрын
Thank you, Jacob! Long time no see! Great video. but, sometimes, I feel using ChatGPT is kind of cheating. weird... sigh...
@grimvian7 ай бұрын
The use cases gives me inspiration to enhance my C code, so a big thank you from me.
@ShyuLee7 ай бұрын
How can you get SES attached to the target via J-Link and the SystemView access J-Link at the same time?
@SurvivalSquirrel7 ай бұрын
Thank you for this free education.
@bennguyen13138 ай бұрын
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.
@GrindAlchemyTech10 ай бұрын
Thank you
@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 Жыл бұрын
Absolutely! Thanks for the comment and observation!
@Bob-zg2zf Жыл бұрын
so true, but so difficult to do, constantly.
@Bob-zg2zf Жыл бұрын
I just bought your book today.❤
@beningoembedded Жыл бұрын
Excellent! I hope you enjoy it!
@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 Жыл бұрын
@@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 Жыл бұрын
Really nice explanation of the bootloader topic . I had a lot of questions on mind but this cleared up alot
@bobby9568 Жыл бұрын
The stops: up. to. date.
@TecICTian Жыл бұрын
Thanks for the demo
@CuriousCyclist Жыл бұрын
Really good video! Thanks for taking the time to make it.
@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_beningo2 ай бұрын
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.
@Kefford6662 ай бұрын
@@jacob_beningo I am sure other things will come up so it may prove to be handy!
@jorgereyes436 Жыл бұрын
Great video and explanation! Thanks
@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 Жыл бұрын
very helpful many thx for sharing
@kneg7843 Жыл бұрын
Great Tutorial. Thank for sharing this great overview
@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
@isaacdaniel20152 жыл бұрын
Very nicely done
@umeshjawalikar49132 жыл бұрын
best
@ravimali28142 жыл бұрын
Exceptional video. Such detailed and clear explanation. Thank you very very much.
@beningoembedded2 жыл бұрын
Thanks!
@gurpalsingh88802 жыл бұрын
do you know what X represents in stack information (X@address )
@btoven662 жыл бұрын
Great to see you again!!!
@beningoembedded2 жыл бұрын
Thanks Peter! I'm planning to post a lot more this year so stay tuned!
@waynerifish2 жыл бұрын
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.bayram2 жыл бұрын
Great content!
@ThePing982 жыл бұрын
Great video thank u
@beningoembedded2 жыл бұрын
Glad you enjoyed it
@hsaidinsan63452 жыл бұрын
Do they affect the real time performance?
@beningoembedded2 жыл бұрын
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!
@LomasSubedi2 жыл бұрын
Thank you Jacob, your presence in here and on different blog article is helping so much to learn and understand.
@beningoembedded2 жыл бұрын
Happy to hear that!
@deltakid02 жыл бұрын
Could you please explain how the ATTiny85 bootloader works? It's a very basic MCU. Thank you.
@jagatheshkumars37582 жыл бұрын
It was very helpful for understand the bootloader
@ruisaraiva97172 жыл бұрын
Hello, do you know were to buy, i cant find one to buy because the stock is out. Best regards
@beningoembedded2 жыл бұрын
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.
@exobodyfoundation44722 жыл бұрын
thanks for showing us how to set this up. I would just run Linux natively though
@antonfernando84092 жыл бұрын
Would be nice to know how to debug like this in a Linux embedded box, thanks.
@beningoembedded2 жыл бұрын
Noted. Perhaps something to look at in the future.