Writing better embedded Software - Dan Saks - Keynote Meeting Embedded 2018

Sdílet
Vložit
  • čas přidán 16. 06. 2024
  • Writing better embedded Software
    Dan Saks
    Keynote Meeting Embedded 2018
    meetingembedded.com/2018
  • Věda a technologie

Komentáře • 36

  • @DarkVegetaman
    @DarkVegetaman Před 5 lety +16

    Great talk, and thanks for fixing the slides!

  • @brunicki
    @brunicki Před 3 lety +10

    Really nice! As a former C embedded developer, I totally agree with the lecturer. I have been using C++ for over 2 years for, let's say, system programming. I am still learning C++ and I am getting rid of C programming habits. It is not easy but I see profits.

    • @189Blake
      @189Blake Před 3 lety

      Would you recommend to avoid C and jump straight into Embedded C++ if possible?

    • @brunicki
      @brunicki Před 3 lety +3

      @@189Blake Sorry You have to wait for my response so long.
      My answer is no. Lately, I've changed jobs and I use both C and C++. If you were a monk and wrote embedded code in pure C++ for fun the answer would be yes, dive into C++ and leave C. However, in real life, nothing is black and white. Companies still use C and a little C++. I have to admit C++ has lots of advantages over C but experience tells me you have to know both.

    • @dylanryan5125
      @dylanryan5125 Před 2 lety

      you all prolly dont give a shit but does anyone know a tool to log back into an Instagram account??
      I was dumb lost my login password. I would love any assistance you can offer me

    • @VaShthestampede2
      @VaShthestampede2 Před 2 lety +3

      @@dylanryan5125 Yeah. It's called, put in your email and reset the password doofus.

    • @MrHaggyy
      @MrHaggyy Před rokem

      They are so familiar yet have distinct differences so it's worth learning both. And you will find both in embedded systems quite often.

  • @yutubl
    @yutubl Před 2 lety +1

    Very important team skill information. As fresh computer engineer (Diplom Ingenieur Technische Informatik FH Flensburg University of Applied Sciences) I had a short talk with oldest colleage about object oriented programming and using its possibilities, he was fully trusted by and advising the boss of that small software company with 1 mio. lines of code (modular programming style). He were not interested at all, so I keep my mouth closed for years about OOP as I did not want to loose my job. Few years later when we all worked on porting to windows I answered another me asking colleage that OOP might help to keep his tasks done, this time he tried and used it for productive code in user interface parameter code (but not for running measurements inside the measurement kernel system).

  • @technik27
    @technik27 Před 2 lety

    Another big thing is using operator overloading and templates to write a good and safe fixed point math library. Fixed point math is very common in embedded devices, and it is so easy to get bugs with overflows and misplaced shifts that could have been caught at compile time!

  • @cadelmonterde7472
    @cadelmonterde7472 Před 7 měsíci

    The real change between C and C++ is the friends you made a long the way. Ok I'll stop now. Great talk! Been writing embedded code in C++ for a little bit (not as long as most folks here), We mainly do C++ and rarely see any C code. Something I've noticed over the years at least where i work at, is how we refuse to leave the C++11 world. I understand the fear of always upgrading to the latest but, it sometimes hurt to miss out on some of the newer features. For instance constexpr functions in 14 without having to use twenty ternary operators would make the code so much readable and easier to debug. Going into more details would take too much of my time, but i did appreciate the talk :)

  • @microtechbdsystem-automati8689

    Excellent Presentation.. Thanks..
    I think for Better embedded Software Development there should be few Good Driver Library for Standard most used Modules. And Some Common HAL layers standards Which make Embedded Developer's Life Easy..

  • @mafazabrar4349
    @mafazabrar4349 Před 10 měsíci

    great lecture!

  • @ameptechsolutions2015
    @ameptechsolutions2015 Před 3 lety

    nice work

  • @ArjanvanVught
    @ArjanvanVught Před 2 lety +1

    @1:04:04 isdigit() is not available in an embedded standalone environment. The standalone environment is badly defined in Modern C++

  • @sprytnychomik
    @sprytnychomik Před rokem

    How about using header (usually auto-generated from RDL/IPXACT/etc.) with register definitions and linker script with an IVT... from a vendor instead of making it your problem? Even if there's no vendor header it's just a one-time thing that rarely if ever change.

  • @vertigo6982
    @vertigo6982 Před 5 lety +5

    Excellent presentation. I'm one of those newer bucks that never learned C and went right into C++. Let me tell you the frustration I would have when I would watch C++ videos on youtube, and you see printf and scanf. Then you find out its C.. and that the videos you are watching that clearly say C++ are really teaching you C and C++ which never sat right with me.. it confused my learning.. but now I understand there are C++ guys who use some C in their code because they say its a bit lighter than the C++ counterpart.. not sure how true that is, but to each their own. I think that is just one of the things that happens with C people who learn C++.. they end up merging the two languages together in their code.
    It was just aggravating learning C mixed in with C++ because as a beginner you dont know what is C, and what is C++, nor do you know if the author used it properly that its more efficient or if they are just teaching bad programming habits. As someone who just learned C++, and not C first I had to go back and learn the basics of C just to truly understand what it is that makes C++ different. So in my mind those who learn, and know C have an advantage to those who dont know C and learn C++ that they can appreciate the tools more and have a better idea how to use those new tools.. They will already know what problems in C that those new tools fix.. whereas people like me will have no idea why those tools exists.. that they werent always around and were later added to address situations that happen in C.
    But once you learn C++ and learned the basics of C to see the differences.. you can go and learn C without it interfering with your C++.. but I think once you learn C++ you wont really care to use C.. even when programming that Arduino.. C++ people will just use C++ out of habit and for fun than using C code.
    What I would like to see in a talk which mightve been done already was why the preference of C over C++ for certain tasks... such as why C is the preferred language to use when building Linux kernels. I think that would help people see the languages in a different light and better adjust to the transition.

    • @rockandball
      @rockandball Před 5 lety +3

      Streams in C++ can get quite expensive in some situations. In other situations using printf helps keeping things more readable. All in all, printf is a libc function, and one of the good things of C++ is complete compatibility with C interfaces, so I don't really see a big issue with using some C functions *if you have a reason for that*.
      For example:
      printf( "{\"%s\": %s}
      ", "hello", "world);
      vs
      std::cout

    • @MeetingCPP
      @MeetingCPP  Před 5 lety +3

      There is a new library called fmt, which will give printf like functionality in a type safe matter.
      Watch this talk for more about this: czcams.com/video/g51_HYn_CqE/video.html

    • @FF_Fanatic
      @FF_Fanatic Před 5 lety +1

      @@MeetingCPP fmt is also coming to C++20. By the way, you might have meant czcams.com/video/Az-hi8tKLGY/video.html

  • @hershjoshi3549
    @hershjoshi3549 Před 5 lety +2

    Thankfully now the ECE program at my program has two required C++ data structures and algorithms. Even if you don't go into something involving software, you'll at the very least be better at writing a faster matlab script or analyzing or interfacing with your system with something like python or an embedded system hooked up to your computer.

    • @supershaye
      @supershaye Před 4 lety

      Still waiting for our university EEE course to introduce this in addition to the very basic C programming course.

  • @Zrzyck
    @Zrzyck Před 2 lety +1

    wow, i was living in dark

  • @jenny9226
    @jenny9226 Před 2 lety

    Just use #pragma pack(1) if you want to get rid of your padding bytes. wth. You can also just add compiler warning to error parameters to gcc in c? I feel like none of these points are valid.

  • @alexcipriani6003
    @alexcipriani6003 Před 2 lety +1

    if we take the abstraction a couple of levels higher we end up with Arduino

  • @quicksupport2175
    @quicksupport2175 Před 2 lety

    Sir can I reapply to software developer because I in computer science study

  • @jessicahill3165
    @jessicahill3165 Před 3 lety +2

    Good job and thanks. I work as an embedded software. Engineer in the USA. Only 1% of my fellow engineers are professionals that learned grade school. The are fakes that have almost no knowledge or capabilities. They can’t even read or write as processionals. The reason c++ is unpopular is because they don’t have clue what design is, and an architecture of one bad module. Bye..

    • @gamar1226
      @gamar1226 Před 3 lety

      Hey, I was wondering if you could give me some tips/ resources to use so I can become a good embedded software developer. Thanks!

    • @rallokkcaz
      @rallokkcaz Před 2 lety +1

      Were you drunk when you wrote this comment, what does that even mean?

  • @dushanindunil500
    @dushanindunil500 Před 3 lety

    sir i was dropped out from my engineering school in 3rd year and after i leaned by my self and i am working in a small company , but i wanna apply for overseas
    could you help me to and give me a advice ?

    • @MaxxG94
      @MaxxG94 Před 3 lety +1

      Most jobs wont even consider your application just because you don't have a degree, even if you are qualified for the job in terms of technical ability
      If possible, I recommend finish that degree

    • @dushanindunil500
      @dushanindunil500 Před 3 lety

      not possible

    • @MaxxG94
      @MaxxG94 Před 3 lety

      @@dushanindunil500 then look for jobs that will day “will substitute degree for experience” but typically those jobs require 6 plus years = one degree

    • @MaxxG94
      @MaxxG94 Před 3 lety +2

      Start ups are probably your best bet, they tend to be less strict about following those requirements, they typically just want someone who can get the job done, is qualified and has a “get it done” attitude

  • @wpbest
    @wpbest Před 3 lety

    I don’t agree with your definition of what an embedded system. I believe because of technology it’s been blurred. A Raspberry Pi for example. Is it an embedded system? Yes and No. An Arduino Hat connected with a Raspberry Pi. Don’t forget the Ada Language that was standardized in 1983. A Data Structure is a defined grouping that represents real world Data Type(s). You also need to deal with careful consideration with pointers to these structures. You need to treat C and C++ as different languages.

  • @bankoftrustnwobot3218
    @bankoftrustnwobot3218 Před 4 lety +4

    For many years he holds the same talk and try to argue against the facts.
    I hope he will find his way to C.