I would describe embedded C as 99% of the time reading your documentation and 1% programming :)
@JacobSorber3 жыл бұрын
😂
@karazee4043 жыл бұрын
I can totally confirm... the STM32 data sheet... ^^
@ewout48903 жыл бұрын
@@karazee404 true I'm currently using a L476RG dev board that thing has so many peripherals😅
@hansdietrich833 жыл бұрын
Setup, code, compile, flash, ...... , open the 1000 page datasheet to find why it does not work
@kawrx20023 жыл бұрын
And doing a hail mary google search that someone else has figured out what you're looking for
@erickballesteros45313 жыл бұрын
One of my project courses in CS, was actually embedded programming; we programmed chips to be calculators, serve as alarms, and even play music, and the overall structure felt a lot more comforting than regular C. I liked having all the linker files and macros cuz they just made me feel like I was coding in an environment.
@datawolk3 жыл бұрын
I would like to see an more in depth video about linkerscripts!
@JacobSorber3 жыл бұрын
Yeah, it seems you aren't alone. I'll see what I can do.
@m4l490n3 жыл бұрын
Definitely! You could make a more detailed video about linker scripts, especially showing how you can place stuff on certain locations using the linker script. That is very useful for example when you need to have a struct always placed in a specific location in ram, or some code in certain location in flash, etc. Knowing how to use the linker file is very valuable and a must for embedded C developers.
@derekkonigsberg20473 жыл бұрын
Yeah, I went down the rabbit hole of linker scripts a few months ago to put some "descriptor" structs into my embedded app binary, and it wasn't the easiest thing to figure out. The top-level basics are simple, but the moment you try to actually do anything with them it becomes a lot more difficult.
@Psykorr3 жыл бұрын
Just want to add to the list of wishes for linkerscript videos :)
@Ma1ne23 жыл бұрын
I totally agree, would love to learn more about it!
@lilposte69703 жыл бұрын
I am an embedded systems engineering student , i like your tutorials , i like your way of explaining , thank you very much mr jacob
@666aron3 жыл бұрын
Nice explanation! I have only one rule for embedded C/C++ vs others. If I'm dealing with embedded systems, I tend to stay far away from dynamic array allocations. But that may be because of the limited experience I have. The heap is scarce, and every time that I tried (string manipulations and complex math algorithms), I ran into hard faults (even with freeing pointers).
@JacobSorber3 жыл бұрын
Thanks. Me too. As resource constraints tighten, anything (like dynamic memory allocation) that introduces nondeterminism tends to create headaches.
@MrHaggyy2 жыл бұрын
😅 i also try to avoid it and only use a fixed memory layout. Only exception beeing diagnostics, you simply need to store different types of structs. Most of the time i even try to stay away from an (RT)OS.
@selectstriker211 ай бұрын
Static memory allocations or dynamic memory allocations at initialization only in my experience with bare metal
@yournemesis82323 жыл бұрын
RIP to the college student who contributed to this article
@chillbro22755 ай бұрын
haha back in 1999
@HeitorCarobelli-io5rc2 ай бұрын
It feels like an AI generated text
@lewiscole51933 жыл бұрын
Aside from linker scripts and defines, there's also the small matter of various libraries that are specific to a particular embedded processor or family of embedded processors. I bring this up because it seems like neophyte C programmers seem to think that I/O functions like "printf" are a part of the C language (like "WRITE" is a part of the FORTRAN language) rather than a part of a library that can be replaced or omitted entirely depending on need.
@mathemabeat0093 жыл бұрын
Thank you for sharing this, I am an embedded firmware developer, and yes, is a usage of a old C, and not only that, you must be strong at Make and the linkerscript, a whole world on it, diferent architectures. Lot of fun.
@belesiu3 жыл бұрын
Nice video. Surprised the Embedded C misinformation is out there. I’ve been using C for embedded systems since … um … the 80s (and that dates me). Back then, we used DOS based cross compilers and had to write our own standard C library and had to create our own header files for the hardware (it was an electrocardiograph based on an Intel 80376, a protected mode only version of the ‘386). We never really considered it a different C language, just regular C with a limited built in library. And we had different ways of writing into the HW registers, sometimes using linker scripts and other times just assigned pointers to physical addresses.
@_BerkDogan10 ай бұрын
wow
@jorgeferreira67272 жыл бұрын
Last time I used "Borland Turbo C" was on top of WinNT 4.0, for cross development for an MS-DOS based platform. In case you are curious the MS-DOS based platform(s) were Norand/Intermec portable devices, the grand parents of modern tablets. By that time, 1999, my goto programming tool for desktop development was C++ Builder 3, and some Visual Basic 5 when forced by my co-workers.
@szilagyimiklos4757 Жыл бұрын
Did you know that the first embedded system, the Apollo Guidance Computer, was developed for NASA's Apollo program in the 1960s? It used a custom-built assembly language, but modern embedded systems have come a long way since then! Today, we use Embedded C/C++ to program microcontrollers, enabling devices like IoT gadgets, drones, and even smart appliances. The key difference between regular C/C++ and Embedded C/C++ lies in the system constraints, like memory and processing power, that embedded systems have to work with. This makes writing efficient and optimized code a top priority for Embedded C/C++ developers!
@jamesboby22062 жыл бұрын
Great video as usual, Jacob. When you said "I'm not sure anyone has used borland C in the past decade....." you had me laughing my ass off. We still use borland C to learn C in colleges and universities in India to date. It's run in DOSbox. I do see the appeal of using it for educational purposes, as you can see the state of the registers and stuff much easier using the in-built debugging tools.
@kerr1221 Жыл бұрын
GDB: "Am I a joke to you?!"
@jgcooper3 жыл бұрын
Please more on linkers. Say for example, if you were writing an old console game on C, would you be able to write a custom linker to manage the memory mapped resources?
@siliconrobot65222 жыл бұрын
4:31 I think I have an old version of DOS Borland Turbo C and Turbo assembler TASM and Turbo Pascal as well. I used to program my old DOS a lot with these high quality software and even made DOS graphic and mouse driven interfaces with them. I still using them in DOSBOX from time to time. I can send them to you if you still need them.
@LogicEu3 жыл бұрын
Hey! Absolutely loved the last part, I had never seen that kind of embedded slang in C, would love to see more!
@JacobSorber3 жыл бұрын
Glad you liked it! I'll see what I can do.
@gonzajuarez49183 жыл бұрын
i'd like to see more about linker scripts. so far each time i see ".ld" i just know "that's the black box that joins stuff together" but the more i get into embedded and systems programming the more common they become, so it seems like a good time to understand a bit of that black box lol. Really like your channel. greetings from Argentina
@gregoryfenn14623 жыл бұрын
Agreed! linker files looks sort of like C but not really and I'd like to learn more
@hansdietrich833 жыл бұрын
Yes please
@shaimaehoo8213 жыл бұрын
A real BLACK BOX, I always have that question; how does the linker work? How it joins everything together ?
@chiragsingla.3 жыл бұрын
Yes I also want to learn about linkers
@vijayk79473 жыл бұрын
I started following u last month...i watched almost every video in ur channel... u r really doing great job mate👍
@JacobSorber3 жыл бұрын
Thanks and welcome.
@burningglory23732 жыл бұрын
Funny that GCC was only under the "Normal C" while microchip basically only uses forks of GCC for their pic compilers.
@salsamancer Жыл бұрын
The syntax of C doesn't change, but rather you need to rethink how you design your code. You're not building an app to execute on an OS, you're creating the firmware to run the entire machine.
@mabagoury3 жыл бұрын
And finally some well-thought content about the difference. I always thought as you about that, but all that content on the web really confused me. They never convinced me, though.
@doowi11823 жыл бұрын
Embedded C is when you have switch statements instead of if-elses and the more switch statements you have the more embedded the C is.
@JacobSorber3 жыл бұрын
😂
@cleightthejw22023 жыл бұрын
Yes, I would like to see some linker scripts videos, Jacob!! :)
@JacobSorber3 жыл бұрын
Ok. I'll put it on the list. Thanks.
@leokiller123able3 жыл бұрын
Nothing to do about the video but I'd love to see some videos in which you dive into assembly and low level programming (kind of like the one you did 11 months ago but deeping more into code)
@edgarbonet12 жыл бұрын
Although the expression “embedded C” is quite fuzzy in its meaning, it can sometimes be used to refer to one of two specific things: • A freestanding C implementation. Although the difference between hosted and freestanding is mostly about the libc, there is also the language requirement that the entry point of the program should be main(), which is lifted in a freestanding implementation. • A set of extensions to the C language standardized by the ISO as “Programming languages - C - Extensions to support embedded processors”. These extensions do affect the language. As an example of the latter, consider how you would read a constant from instruction memory (i.e. flash) on AVR. This is a Harvard architecture, where RAM and flash live in different address spaces and are accessed through different machine instructions. Regular C doesn't know about address spaces: a pointer is a pointer, and is always dereferenced in the same way. The avr-libc works around this issue with some macros like pgm_read_byte() that expand to inline assembly, but they are clumsy to use. Now, since gcc implemented the “named address spaces” section of the embedded C extensions, you can use the __flash type qualifier, and the compiler knows how to dereference your pointers to flash.
@benarcher3723 жыл бұрын
Also, debugging and testing of embedded systems would be great to hear more about.
@manuelcapel58899 ай бұрын
It's like asking "what is the difference between English/French and legal English/French". Both are the same languages, use the same vocabulary and grammar set, just that in a legal setting, you focus more on certain vocabulary and syntax that are not very common in everyday speech.
@bobfarker4001 Жыл бұрын
"borland turbo C for archeological sake" -People who LOVE this stuff care about the HISTORY.
@bestpseudonym16933 жыл бұрын
Man this would have been very topical when I was teaching myself how to use embedded C++ to program a SBC half a year ago
@DM-qm5sc2 жыл бұрын
Will you do more embedded content? I really like Arduino and other microprocessors and programming them to do neat things.
@brokenicry Жыл бұрын
DEFINITELLY a YES on debugging and testing... Do you perhaps have such a video already??
@ivanronda9583 Жыл бұрын
I was learning to code in C for the last 2 years and i was stunned when i saw that embed code.
@BorlandC4523 жыл бұрын
I actually still have a CD-ROM of the Borland C++ 4.52 compiler that I bought back in the late 90's. Then in the early 2000's, Borland was bought by a company called Embarcadero. Up until 2015, they actually used to let you download the 32-bit compiler for free. (It was strictly a command-line compiler - no IDE.) They still let you download a free compiler, but it's clang-based instead of Borland. I actually still use the 32-bit compiler on the rare occasions I develop something for Windows.
@yamunasuryawanshi35633 жыл бұрын
I pretty sure the question was asked by a person who tried learning python and ended up learning libraries 😂. Love your videos .LIVE FROM INDIA STAY BLESSED .
@karazee4043 жыл бұрын
hey Jacob! I got hooked to your videos and they have been really helpful. I'd really love to hear about debugging embedded systems. cheers!
@MDarkus33 жыл бұрын
perfect video! Please, do an episode about linker script ! also do an episode about why c++ would be considered for embedded system development ? I have trouble figuring this out
@hansdietrich833 жыл бұрын
How often do you look at decompiled assembly when debugging? I used it exactly once in many years of embedded C programming on Atmel and STM32 and I'm wondering if it could be used more.
@JacobSorber3 жыл бұрын
I probably look at the assembly weekly. It doesn't always end up being useful, but often it does. I find that it depends a lot on the sort of problem I'm trying to solve and the nature of the bug.
@MrHaggyy2 жыл бұрын
😅 whenever you found a hardware bug you will need assembly for sure. It highly depends on what you are doing. Bootloader or other "premain" code is quite often written in assembly so you debug it in assembly. Application code like controllers or state machines are more detached from the HW so i usually stay in C and watch windows.
@Appel0702 жыл бұрын
Nice video, its wierd that such misinformation is out there would be really frustrating to read that and later found out that it was all bullocks
@hongsonly37853 жыл бұрын
Hello Jacob, can you make a content about difference between about embedded software engineer, embedded hardware engineer, automotive engineer, driver development engineer? Love your videos much
@All.In.One-i2m11 ай бұрын
I am not sure what linker files are but as the looks of it, it looks like he is using a typedef enum which is inside a struct that is named "MEMORY" and he is using bitfields(since they can't be used with enums that's why it might be added inside a struct) to intialize how many bits that certain enum variable takes. If that's the case, that would mean I have finally found a purpose of enums.
@RobertFletcherOBE3 жыл бұрын
I get your reticence to call out people for bad information but Its appreciated. Getting good information on C is allot more difficult than C++ and other more 'modern' languages Your videos have inspired me to take another look at C, I've been learning C++ and there is so much 'guff' and complication involved in it that something simpler is quite nice.
@WistrelChianti2 жыл бұрын
Thanks that was really interesting. I came here thinking "eh? there's a difference?" was glad to be assured there wasn't. That said the 2nd half of the video about how the registeres are defined as variables stored at certain memory addresses was super interesting. I had no idea it would be done like that. I'd kinda assumed it was happening in code somewhere rather than a linker.
@Miguel-tr2ev3 жыл бұрын
Exactly what I need!!! Thanks alot in advance. Imma bout to watch
@ShaunRoselt Жыл бұрын
Borland Turbo C evolved into Embarcadero C++ Builder and it's absolutely amazing.
@vedantm192 жыл бұрын
Please add more about programming with embedded C. Some sort of examples with explanation. Also I would really be thankful if detailed video on linkerscript is uploaded anytime soon on this channel! :)
@elijahbuscho77153 жыл бұрын
I'm curious what level of experience the person who wrote the article has. My initial thought was like an inexperienced undergrad who took a couple of courses, and was trying to flex their computer science knowledge, but there are some pretty advanced terminology that I would have never been able to use as an undergrad. I'm impressed at how much they know, with how little they seem to understand. Like they understand that the OS changes how you may need to write a program, but they don't really understand what an OS really is.
@not_ever3 жыл бұрын
It's entirely possible that the parts that impressed you were plagiarised, hence why they seemed to have advanced knowledge with little understanding.
@ravimali28143 жыл бұрын
Holy crap. That article needs to be pulled down.
@JacobSorber3 жыл бұрын
That was my thought. Or fixed?
@ravimali28143 жыл бұрын
@@JacobSorber There is sea of misinformation everywhere to fix. It's rather easier to spread correct information which you are already doing. Keep up the good work.
@gdotone1 Жыл бұрын
more on linker scripts please. a lot more on embedded programming, a project start to finish. walk throughs of were to find and use information for the parts and project. that would be very valuable. and, of course, more than 5 such projects.
@ashvinjagadeesan28813 жыл бұрын
Thank you for posting such high quality content!
@robertstrickland97223 жыл бұрын
Love your videos and glad to be a top tier patron!
@JacobSorber3 жыл бұрын
Thanks. Always appreciate the support.
@kasimsche28123 жыл бұрын
Sir then any plan for Embedded C course??? We would like to have specially if you start with ARM mcus and processors. RISC-V is also a very good option
@axalius5723 жыл бұрын
When Jacob talked about misinformation in regards to programming, I instantly knew which site he meant. The same one that has tons of bugs and memory leaks in their example algorithms.
@aneeshprasobhan3 жыл бұрын
which site ?
@w.mcnamara3 жыл бұрын
@@aneeshprasobhan geeksforgeeks. Avoid it
@sharana.p59213 жыл бұрын
Thank you for the video 😊😊. Waiting for linker script, debugging and testing.
@alainterieur50043 жыл бұрын
something offtopic but: how to know when we are good enough to contribute to an open source project ?
@JacobSorber3 жыл бұрын
Good question. One answer might be: when the maintainers start accepting your proposed fixes/updates.
@alainterieur50043 жыл бұрын
@@JacobSorber it's a big brain answer lol
@m4l490n3 жыл бұрын
@@JacobSorber lol I came here to say exactly that. You beat me to it. There is really no other way of knowing.
@ranjithmkumar3 жыл бұрын
I think it would be better if you have told about the availability of the C standard library. Most OSs like Linux or Mac come with a standard library like glibc or bionic libc. But on a embedded system, it is optional. So, the microcontroller vendor might or might not provide a full-fledged standard library. This means standard malloc or logging to the console using printf which is over UART usually in embedded system is optional. Something like diet libc, musl libc, nanolib, newlib all implement printf over a wrapper to sbrk. And it is optional for embedded systems with a memory section for heap. This is one huge difference I feel. And usually when writing on top of an OS, we deal with files and not with registers or memory. In case of embedded systems, there is optionally a filesystem and usually peripheral registers and memory addresses.
@JacobSorber3 жыл бұрын
Good point (maybe material for a future video). The styles, interfaces, and patterns definitely vary.
@benhetland5763 жыл бұрын
Yes! And exactly this is probably the key difference in using C on an embedded platform vs on a full-fledged OS. The standard has a whole list of requirements that either don't apply to embedded implementations, or that are more lenient or adaptable in those environments. All the startup code and whether or how main gets invoked is one such topic, and the other is the reduced set of standard headers one can rely on to be there. Otherwise it is C and nothing but C.
@ranjithmkumar3 жыл бұрын
@@benhetland576 Yes The startup code and bootstrap code is one more set of differences.
@ronalerquinigoagurto555 Жыл бұрын
Gcc has different versiones like none-eabi, so I think in the end the compilers avoid using syscall instructions as it knows beforhand that there is no kernel/os
@brucelytle1144 Жыл бұрын
Funny, just yesterday I was thinking about Borland. I liked their software. Learned C with TurboC.
@TeoTheZetron3 жыл бұрын
Hello and thanks for this specification. Unfortunately, many programmer comment in totally wrong motion and insert absurd documentation on thei websites which are often taken from other websites. Do people no longer want to study?
@sridayalseth8013 жыл бұрын
It will be better if a good discussion on linker should be there. Informative video !!!
@deepakr82613 жыл бұрын
Hey Jacob Awesome video as usual. Could you do a video on RTOS vs GPOS. Like what make RTOS "real time". Again there are lot of resources out there but intrigued to know your view on it. Thanks.
@JacobSorber3 жыл бұрын
You're welcome. I'll add it to the list and see what I can put together.
@neerajkale3 жыл бұрын
This got to be the most popular interview question out there... 😂
@blahhblaah743 жыл бұрын
That compiler comparison was probably true 20 years ago, and around that time Borland C compilers were used as well... Nuf said.
@LaeeqKhan0110 ай бұрын
One question: how can we access a "non memory mapped" register in C? Nice video though.
@ucnamnguyen75493 жыл бұрын
Please make more videos about linker process of embedded programming
@tobaadesanya323 жыл бұрын
Hi, thank you for this video. I would like to see more videos on linker scripts and testing, especially automated testing, for embedded systems.
@raghavsrivastava29103 жыл бұрын
Great Video 🔥.... Please make a video that explains in depth about linker scripts and why we can directly manipulate registers on embedded devices in C/C++.
@aneeshyr3 жыл бұрын
4:19 the website is indian, and in indian schools (at least mine, high/elementary) they still teach c++ using turbo c compiler. It's really outdated its main function type is void, there is no std namespace and its soo different from the standard c compilers I use. Really sad , my classmates don't even know how the standard modern c++ looks like although they are studying computer science
@JacobSorber3 жыл бұрын
Interesting. Do you think it's just institutional/instructional inertia, or do you think there are other reasons why they don't use more current freely-available tools?
@dipto1003 жыл бұрын
Great video. Thanks for clearing this up. Hard to find quality and easy to understand information on the web sometimes. I'd definitely be interested in videos on linker scripts and debugging embedded systems.
@JacobSorber3 жыл бұрын
You're welcome. Linker scripts and embedded debugging coming right up...well eventually in the coming weeks/months. 😀
@htainlindwa80 Жыл бұрын
Hello sir, I am extremely new with learning C programming, but I want to learn from you because I like your attitude. I am not sure though, that i would be able to learn from you because I am a slow learner. Do you think your class could be for me or do you thank I need some prerequisites to start learning C? Let me know thanks!
@trumanbeal56683 жыл бұрын
Linker scripts would be awesome! Especially on something embedded, as that is extremely interesting
@moseschuka75722 жыл бұрын
please can you do a tutorial on programming stm32s with C++ on keil or stm32cube
@ChiragHadiyaCreations3 жыл бұрын
In my mind I got first question is that does c and embedded c are same ?
@chillbro22755 ай бұрын
I have been wondering what a linker is for years. I would like a to watch a little more information on linkers.
@daguich3 жыл бұрын
As someone who is doing embedded software development for a living, I am almost offended by this article... Thanks for the clarification!
@nikolatotev3 жыл бұрын
I'm just starting out in the field, I love programming devices that do something in the real world. How would you recommend for a newbie to start, are there any good books on the subject?
@daguich3 жыл бұрын
@@nikolatotev I guess you are a hobbyist. I don't like to read books so much, in my opinion you will learn the most by trying things out by yourself. Most of the time you will find really well written articles and wiki pages about so many topics with a quick and simple google search. I'd say think about an easy project. I'd recommend to start with something like an arduino, as it is easy to setup and you don't need to think about your own boards and whatnot. There are a lot of arduino projects out there and especially a lot of (good) videos on youtube. There lots of ready to use libraries for arduinos, so you don't have to bother about writing all the "drivers" by your own. Certainly your "easy" project will turn out to be more complex than you thought, but this is fine as you will learn more and more about different topics. Once you have played with arduinos and ESPs, you can design your own boards, you will read lots of datasheets of different microcontrollers and other components, you will read about different communication interfaces (I2C, SPI, ...).
@bhimbdrlama2 жыл бұрын
Can you tell me where I can learn this?? Online course .. any information is valuable.
@tokki_3 жыл бұрын
I would love more Embedded C content, as much low level as possible
@aiyamenkhueljerry2604 ай бұрын
Embedded C is same as C, the difference is just understanding microprocessor tool chain, data sheet and understanding hardware architectures and a knowledge of electronics. Embedded C is simply the application of C on embedded product development.
@amitabhgogoi18233 жыл бұрын
yeah !! want to learn more about linkerscripts and debugging in emmbedded systems !!! pls put some videos
@derekkonigsberg20473 жыл бұрын
Back in the late 90's, when I first started to dabble in embedded systems, a lot of the embedded C compilers were really bad. It was also not uncommon for them to not actually properly support ANSI C as we know it. Thankfully we're long past that, but I wouldn't be the least bit surprised if some lingering opinions can be traced back to that era.
@JacobSorber3 жыл бұрын
Thank you.
@anupnishanrao77673 жыл бұрын
You're amazing man i didn't know this before 🙏💕
@lewiscole51933 жыл бұрын
Not that it's really all that relevant to the subject at hand or matters in the slightest if it is, but once upon a time, _Circuit Cellar INK_ magazine used to be a wonderful source of information on embedded systems work. But that was back before most of its regular contributors departed and the magazine devolved into the Jeff Child equipment review and offline blog. When that happened I dropped my subscription and haven't looked back since. Still, many of the old _Circuit Cellar INK_ articles are still available online, and I at least still think they are a good introduction to doing things embedded and just happen to show what "embedded C" looks like compared to non-embedded C. So if anyone out there has nothing better to do, may I suggest you try Googling articles from some of the old regular contributors like Ed Nisley ("Above the Ground Plane"), Jeff Bachiochi ("From the Bench") and Robert Lacoste ("The Darker Side"). And if Professor Sorber or someone else out there as other sources they'd like to mention, I for one would be interested in hearing what they'd be.
@samgarg52282 жыл бұрын
Useful for filling up sheets in exams (experienced).
@vatsalnaik153 жыл бұрын
Great video again. Please do more videos about linker scripts, and embedded C in general. It would be great.
@dimdimich2 жыл бұрын
It is hilarious for me when people write programs for IoT with gigabytes of RAM and gigahertz multicore CPU under Linux, and call it "Embedded Programming" :)
@aadhuu2 жыл бұрын
4:35 yep. In India many colleges unfortunately still use Turbo C and I do have it on my laptop lmao .
@tjalferes3 жыл бұрын
More on testing in future videos please. Thank you.
@nezbrun8729 ай бұрын
Oh dear! That website is an great example of the blind leading the blind.
@Astfresser3 жыл бұрын
I'm doing embedded system programming with C but I now found out that its actually embedded C?
@smit17xp3 жыл бұрын
coming form rust's no_std, I always thought Embedded C is just C without standard library also many indian collages teach with turbo C cause old teachers refuses to learn anything new and cant accept the fact the c++ is evolved but they are not
@hightlightlol21063 жыл бұрын
So should I learn for C or C++ to learn embeded systems. I'm new here
@gauravsingh30073 жыл бұрын
@Smit Patil I haven't heard a lot of Turbo C/C++ being used in colleges, but that's what was being used in my intermediate school (11th-12th). And I am not so sure if teachers are the main reason for that.
@not_ever3 жыл бұрын
@@hightlightlol2106 At university we learned Assembler (PIC), C and C++ for embedded systems programming, in that order. However if you are self-taught learn whatever you like. Don't listen to people who tell you, nobody uses C++ in embedded systems or you should only learn Assembly code, C or whatever language. These people are wrong. Since embedded systems is a big field, if you are going to teach yourself, it will be hard to know where to start, pick one platform, language and dev environment and stick with it for a while.
@skeleton_craftGaming9 ай бұрын
you can't cross compile Java, that's on of its features [or rather that you don't have to]...
@mechaelbrun-kestler38683 жыл бұрын
C is C! 1 major difference: 1) printf.scanf dont work out of the box. You need to pipe them to a relevant IO library.
@AGBuzz1823 жыл бұрын
I'd like to see more about linker scripts
@tech-preneurshipwithjeff57452 жыл бұрын
please can you be my mentor. I am currently learning c and embeded c for chip programming. I would love to have someone i can talk to and share my concerns during my learning journey.
@classicryda120908 Жыл бұрын
as a beginner, im confused to this type of programming style, can it be replaced as a more user friendly code that doesnt involve bit shifting/register? or is it a totally different thing? for example im accustomed to digitalWrite(pin, HIGH) instead of toggling some bit on the register, is it equivalent?
@JacobSorber Жыл бұрын
It's functionally equivalent. digitalWrite is simply just providing a function wrapper around some register accesses. Depending on your compiler, the higher-level interfaces may incur a cost (larger code, slightly slower execution). But, they're doing essentially the same thing.
@jorgeferreira67272 жыл бұрын
Microchip compilers for the PIC32 family of micro.controllers are GCC based.
@Maranello9883 жыл бұрын
Cool video, thanks! Yeah, and I would like to get more about the linker script, that will be useful, thanks in advance!
@davidramsay93213 жыл бұрын
Self taught myself alot but can you make a video on the translation layer on makefiles where _("THIS") can be translated via complile time.. vs "this" is hard coded.
@serred94522 жыл бұрын
Embedded system is a lot easier than general system as it is built mostly for specific task. Theres definitely a lot of documentation reading tho
@habibahmed51403 жыл бұрын
Hey good to watch your videos finally someone is right here to ask the following question I have completed bachelors in mechanical here in Italy now i have started masters in mechatronics but i want to make my career in embedded software development, i am going to study "operating systems for embedded systems ", "programming for IoT using python " and "software architecture "this semester any help and guidance to make my path towards this will be highly appreciated
@impairsosa26632 жыл бұрын
I studied embedded C which was easy as hell for me as an engineer but i do not know if it is the same as C/C#/C++ my lecturer says that is the language but im still not sure xD
@tomsparks3259 Жыл бұрын
This article sounds like it came from ChatGPT. There is no difference. If you can do some of the simple stuff you generally never do with C, like setting and clearing bits, you can do this. Trust me, it's not too tough. The registers for configuring and controlling the device's native peripherals are most often mapped into memory locations. And the programming software the manufacturers supply for free often provide for addressing a register as you would a simple variable using native features of the C language. So, you essentially operate on bytes and bits in memory with language features that have probably been there forever in plain old C. What may be tougher is understanding the hardware you choose to use. But even that gets easier. I practically slept with the MCU's reference manual until things made sense.
@aasaialangaram68473 жыл бұрын
Why returning a static local variable is a bad practice. I have seen many articles but it would be nice to hear it from your video
@JacobSorber3 жыл бұрын
Just to clarify. Do you mean returning a pointer/reference to a static local variable?
@aasaialangaram68473 жыл бұрын
@@JacobSorber Yes sir..pointer reference to static local variable... many of them using malloc'ed pointer instead of what I have mentioned. Thanks for your reply..