Thank you. This was cathartic for me to watch as someone who also bucks the convention of "C only" for microcontrollers. Also thanks for the introduction to Boost.SML. Watching that next.
@shirshzibbu3303 жыл бұрын
42:40 "the good stuff starts at time mark 45"
@petermuller95186 жыл бұрын
I can so feel you, having suffered the same struggle when making C++ work on our product
@RaaynML3 жыл бұрын
3:10 it's actually because of the insane crowd of gasoline engines sitting in traffic or speeding on the highway that causes that noticeable smog, diesels are generally heavily filtered and don't produce much carbon emissions, their nox emissions are higher, so the exhaust is technically worse for humans but doesnt effect the environment so much
@GurpreetKakar48736 жыл бұрын
Excellent talk.
@manofacertainrage8566 жыл бұрын
That was an amazing talk. Thank you.
@MichaelCaisse_ciere6 жыл бұрын
Thank you John. I'm glad you found it useful.
@RudMerriam6 жыл бұрын
Terrific talk. Was laughing out loud a few times. BTDT frequently on most of what you said. Did the startup code for a Moto 68332 in early 90s. Wrote pages of #defines for every bit and its position in the registers. Created #define macros for every register which merged the bits and wrote to the register. One of the best compliments I've gotten from a hardware guy was, "I think I could create the startup code using Rud's work." Wrote some articles on using C++ for embedded systems. Mainly was for Arduino and some Pi but the concepts are the same for other systems. hackaday.io/project/8238-embedding-c Especially like the comment around 55:00 that if your reaching for the debugger you've already got a problem. One embedded system I created had 24 LEDs: 8 red for error status and 16 green for operating status. You could diagnosis the system using the LEDs. But 8 green ones were only used by developers for debugging. I always prided myself on debugging skills. I could think through the system flow and would then realize the bug had to be in a specific section. Walking through the code usually found the problem. On some of the first systems I did we had In Circuit Emulators (ICE) that allowed step by step execution on the hardware. Find it funny that embedded developers apparently don't trust the compiler and need to step through code. In all my decades that is not something I've worried about and can't recall ever finding a bug caused by bad compiler code generation.
@ReagueOfRegends6 жыл бұрын
Starting an embedded job as a fresh CompE grad soon; not sure if this was encouraging or intimidating, but a good talk nonetheless!
@MichaelCaisse_ciere6 жыл бұрын
Good luck with the new job! Don't be intimidated. If you are ever at a conference and I'm there, find me and let me know how it is going.
@mhassaankhalid13699 ай бұрын
this looks like a Renesas mpu RZ/T1
@maximilian199313 жыл бұрын
so count_if with value as filter and a const list which contains the item, will calculate the answer at compiletime, massively reducing compute time!! NICE
@pedrovictor86666 жыл бұрын
I'm interested in knowing more about embedded. In this matter, all I have worked with is using timers and other peripherals in Atmega328p. I uploaded the code to the board by clicking "upload" in Atmel Studio 7. I didn't really configure anything other than selecting the board and tht's pretty much all I know. How would I go about learning how to do this more manually, as I think is the case presented in this talk? I'm referring to CMake files and Linker scripts, and also how to implement a good abstraction layer API for Timers, ADCs etc. It does seem a little overwhelming and I would appreciate any guidance :)
@EdwinFairchild5 жыл бұрын
did you ever take on this challenge to try and learn how to really program the chip?
@edobez6 жыл бұрын
Talking about state machines, have you ever tried to use QP/C++ (www.state-machine.com/)? Maybe it doesn't use as much of the modern C++ tecniques as Boost.SML, but it seems to me a more mature piece of SW.
@cstrieder6 жыл бұрын
Where do I buy a smart pointer like that?
@dinoscheidt3 жыл бұрын
Two years late but for anybody reading by: It’s the Logitech Spotlight Presenter - If the target computer has the spotlight app installed, the gyro position of the device is send while the top button is pressed. The highlighted area can be styled yourself, like he did here.
@Tinfoilpain6 жыл бұрын
I feel so included in this talk
@anthonyrocha80753 жыл бұрын
Where is the source code for this presentation?
@idan43296 жыл бұрын
any thoughts on : Keynote: What can C++ do for embedded systems developers? - Bjarne Stroustrup"" ?
@alexandrebustico96916 жыл бұрын
Thanks for this talk. Ladon library seems interesting, is it open source ? I hardly found it searching google and github
@MichaelCaisse_ciere6 жыл бұрын
Ladon is not open sourced ... yet. We are considering how to proceed with making the library available.
@Hauketal6 жыл бұрын
Bug in example code at 52:02, sizeof(data) is too large by a factor of sizeof(int).
@bktero6 жыл бұрын
Why? The 'end' iterator is not used in the algorithm and 'data+sizeof(data)' points to the next int right after 'data'. So it goes through the array and when the internal iterator equals the 'end' iterator, it stops without. Am I missing something?
@Hauketal6 жыл бұрын
bktero Yes, you are missing the (inherited from C) fact, that pointer±integer scales the integer by sizeof(*pointer) before the addition. Correct method: #define ELEMS(a) (sizeof(a)/sizeof((a)[0])) end=data+ELEMS(data); Like the version in the video, this only works if data has not decayed from array to pointer, i.e. is not a function parameter.
@bktero6 жыл бұрын
You are absolutely write. My bad... I often write code like the one in the video but with byte arrays and it works in that case. But that's a special case. And I also std::array and it's size() member function. I also misunterstood 'factor' in your sentence. I was thinking 'it is a going on step too far' but no, it is going a lot of steps too far.
@MichaelCaisse_ciere6 жыл бұрын
Indeed. Embarrassing. In an effort to make some of the code more familiar to people with little C++ experience I decided to not use std::begin and std::end. It should have just been written : std::count_if(std::begin(data), std::end(data) ...
@patlecat6 жыл бұрын
C++ on Arduino or RaspPie is so unaccesssible as well. Who can help to bring the TTHW down to 1 minute instead of 1 month?
@HermanWillems5 жыл бұрын
ssh into raspberry pi. touch HelloWorld.cpp then Nano HelloWorld.cpp write helloworld code save and compile with GCC and run.
@farway-4176 жыл бұрын
What is meant with the remark about the use of header-only libraries? At kzbin.info/www/bejne/mWq7pWmDmpiggJYm
@EdwinFairchild5 жыл бұрын
a library/code that you made to reuse but all of your code is just in one header file
@Minh-si1zz3 жыл бұрын
boost sml is too expert for me
@CandyHam28 күн бұрын
Congrats on managing to mention a concept - CRTP - then acknowledge that maybe not everyone knows what that is - and finally proceed to talk through it without ever actually spelling out the acronym. Come on man.
@KarelDonk6 жыл бұрын
Regarding getting c developers to switch to c++, check this blog.kareldonk.com/convincing-c-programmers-to-switch-to-c-a-look-at-human-thinking-behavior/
@wdmeister6 жыл бұрын
58:30 i would clap as well :)
@maximkosheleff6 жыл бұрын
1:30:37 rare noticed truth
@dangbinghoo5 жыл бұрын
for this kind of bare metal system, you should just try D or Rust, those two just works better than cpp.
@HermanWillems5 жыл бұрын
Can you also give some good solide arguments for that? rather then just say "works better" but actually give arguments why?