A Channel about Embedded Systems
2:29
Пікірлер
@prasenjit134
@prasenjit134 22 сағат бұрын
Memory layout so well explained. What is the IDE you use?
@rd-tk6js
@rd-tk6js 22 сағат бұрын
Interesting, look forward to completing the series, thanks !
@abdellahessetty1336
@abdellahessetty1336 2 күн бұрын
Thanks for the video series. One thing is at 11:38. there isn't an "./include/msp430.h" in the gcc folder.
@kaishang6406
@kaishang6406 8 күн бұрын
there is a weird sound through out the video. other than that, great.
@DeepanshuKatre
@DeepanshuKatre 10 күн бұрын
One of the best video on makefiles creation from scratch. Keep it up.
@tidlywidly4402
@tidlywidly4402 11 күн бұрын
You are the best.
@jonathanroberts7100
@jonathanroberts7100 11 күн бұрын
Thanks again Niklas. This video has just come at the right time to help me plan the SW (and HW) development for my eVSTOL project properly. Really appreciate your help!
@jtreg
@jtreg 12 күн бұрын
Lovely clear explanation. I like the detail and no chit chat! Very good. I am dragging out my MSP430 to make a control for TouchDRO on my milling machine as per Yuri's Toys ... I bought the MSP430 years ago and now dusting it down.. I will program it with my Pi 5. Cheers!
@jonathanroberts7100
@jonathanroberts7100 12 күн бұрын
I want to sincerely thank you for the fantastic video which you put together, which has saved me many, many hours of scratching my head. This is extremely well done, concise and accurate. Thanks heaps!
@tannguyentrong1142
@tannguyentrong1142 14 күн бұрын
i have a question, normally, text section will lowest in flash memory , follow it is another section like data, bss,... why in your video. text section have higher address than data and bss section ?
@elektron2kim666
@elektron2kim666 14 күн бұрын
Very interesting. I'm playing with GPS modules at the moment.
@alirezasalehi9149
@alirezasalehi9149 14 күн бұрын
great. thx🤗
@syeddanialahmed9353
@syeddanialahmed9353 17 күн бұрын
Great content 💕💕
@bhojasd
@bhojasd 19 күн бұрын
NEXT TIME PLEASE DON DO FARWARDING OF CODE PORTION .......PLEASE MAKE IT SLOW AND ALSO TALK SLOWLY ....LOVE FROM INDIA
@bhojasd
@bhojasd 19 күн бұрын
CAN YOU PLEASE MAKE VIDEOS IN SLOW MANNER ....YOU MOVED FAST FARWARD YOUR CODE WHICH IS VERY UNCOMFORTABLE TO UNDERSTAND FOR ME
@Oysteims
@Oysteims 20 күн бұрын
I haven't had time to look through the entire series yet, but based on the structure and videos it seems like an excellent introduction which covers a much broader and more realistic approach than some other notable embedded youtube channels do. As for the choice of components, I would generally say that when the quantity of the thing you're developing is between 1 - 20 (custom test systems, physical device emulators/simulators, personal hobby projects etc.) the biggest expense is almost always engineering hours, so just pick components from the top shelf that makes your life as easy as possible. For personal projects I have found the same to be true, better to spend a little extra money and finish the project than try to cheap out and let the project die unfinished in a cardboard box :)
@mursalaboobacker3593
@mursalaboobacker3593 28 күн бұрын
you really did a great videos series. it will help for the begineers who are looking into embedded syetems and microcontrollers. keep going.
@vishnupriyaarora
@vishnupriyaarora Ай бұрын
Hi Niklas, what's the best way to reach you?
@bhojasd
@bhojasd Ай бұрын
Pls make video in slow motion
@devvratarya1
@devvratarya1 Ай бұрын
Thanks, it helped to solve my driver problem
@philipgiles8407
@philipgiles8407 Ай бұрын
Moving from a Linux based C role at my job into designing the hardware and software for an embedded device. And these videos are so awesome. Super high quality, well made points and explained well too
@vrakitine
@vrakitine Ай бұрын
Thank you for the excellent video. As a programmer with 50 years of experience, I must say that we have lost touch with algorithms in the sense I discuss in my articles on Medium: "Bagels and Muffins of Programming or How Easy It Is to Convert a Bagel into a Black Hole" Thinking algorithmically and living in an algorithm-centric world of software engineering, creating muffin-like programs, is now the domain of a few solitary individuals. Today's programming world increasingly focuses on a code-centric approach, where algorithms are not seen as separate entities. This shift has led to significant changes in how we develop and maintain software. There was a time when algorithms were at the heart of any program, providing a clear and understandable structure for development. They helped us build logical and efficient solutions. However, with the rise of high-level programming languages and frameworks, the emphasis shifted to quickly writing code and implementing new features, often at the expense of structured algorithmic thinking. Nowadays, we often encounter bagel-like programs where the code exists separately from the algorithm, creating internal inconsistencies and maintenance difficulties. In such conditions, achieving stability and reliability in software becomes challenging. Returning to an algorithm-centric approach and creating muffin-like programs, where the algorithm and code are integrated, can significantly improve the quality of software. This will not only simplify testing and maintenance but also allow for more flexible and resilient systems. I hope more developers will begin to recognize the importance of algorithms and move towards a more structured and meaningful approach to programming. Only in this way can we create software that is reliable, understandable, and easy to maintain.
@mursalaboobacker3593
@mursalaboobacker3593 Ай бұрын
nice videos and good explanation.
@NotSionnix
@NotSionnix Ай бұрын
Hi, what is the model number of that USB to UART chip you used in the video and would it work on other Texas MCUs like the TIVAC123G?
@artfulbytes
@artfulbytes Ай бұрын
CP2102 USB to TTL Converter HW-598, yes it should work on those.
@NotSionnix
@NotSionnix Ай бұрын
@@artfulbytes thanks for the reply! I got confused on which converter to buy and I will try this one. Also, do you have any suggestions for alternative motors that would work with your PCB? I've been checking the motors linked in your second video but they've been out of stock for a while now
@yunfengwu4412
@yunfengwu4412 Ай бұрын
Nice project. It helps me a lot. I noticed that you have not been uploading new video for 5 months. Wish you could keep upload more interesting videos like this.
@user-zp9cn8mu3d
@user-zp9cn8mu3d Ай бұрын
What use of static void,()?
@artfulbytes
@artfulbytes Ай бұрын
"Local" function with no return value. In other words, it's a function that is only accessible in the .c file where it's defined and it doesn't return anything.
@user-zp9cn8mu3d
@user-zp9cn8mu3d Ай бұрын
If static function is .h library it can access in any library .c .if I include
@artfulbytes
@artfulbytes Ай бұрын
@@user-zp9cn8mu3d Yes it's possible to define a static function in a header file and then include that header file in other c files. Not sure why you would do that though, apart from some very rare use-case.
@user-zp9cn8mu3d
@user-zp9cn8mu3d Ай бұрын
Now I understand use of static keyword but I didn't know where I use static variable and static function?
@user-zp9cn8mu3d
@user-zp9cn8mu3d Ай бұрын
Most of the functions in .h file written in static function example:static void toggle_Gpio that 's I confusing .
@whothefucktookmyalias
@whothefucktookmyalias Ай бұрын
2:54 minor correction: "Universal Asynchronous Receiver Transmitter"
@monsieurLDN
@monsieurLDN Ай бұрын
Will the general focus on your channel be more on the software side of embedded systems or will you also get into hardwaee design?
@artfulbytes
@artfulbytes Ай бұрын
I will also get into hardware design on this channel.
@JhonnyNexen
@JhonnyNexen Ай бұрын
Brother is doing god's work. I HAD to like comment and subscribe
@Jindraxx20
@Jindraxx20 2 ай бұрын
Thank you for this great content. This explains very well how the memory is allocated !
@4sIElectronics
@4sIElectronics 2 ай бұрын
The documentation about the sensor in this video is at whole different level compared to ST:s. Wasted an awful amount of time with their "easily implementable" API. This video greatly endorsed me for starting to write the drivers from scratch. Your blog post is very valuable and easy to follow, thank you for your contribution.
@JoeBob189
@JoeBob189 2 ай бұрын
beautifully explained, thank you!
@xesemesa12345678
@xesemesa12345678 2 ай бұрын
One question if the IVT is in the flash how can you change the ISR?
@artfulbytes
@artfulbytes 2 ай бұрын
The addresses of the entries in the IVT are fixed*, but the entries themselves (ISR addresses) can be changed. *Technically, some architectures also allow you to relocate the IVT.
@rafassm
@rafassm 2 ай бұрын
Great video! but I have a question, in arduino when you want to burn a bootlader into a custom board (not uploading the code, just programming it) what you are doing in reality is uploading the ELF and linker script files to the MCU? I am not sure if I am misunderstanding the concepts of bootlader and those files.
@artfulbytes
@artfulbytes 2 ай бұрын
ELF and linker scripts are not what you flash/upload, they are just intermediate files used during the compilation process that outputs the final machine code (typically a hex file). It's the final machine code (hex file) that is flashed/uploaded to the MCU with a dedicated programmer (e.g. segger-jlink, stlink). A bootloader is a small program that provides a convenient alternative interface (e.g. usb, uart, i2c , wifi, bt...) for uploading your normal application code (typically hex) without the need for a dedicated programmer. The bootloader has the same compilation process as described above and must be flashed with a dedicated programmer (technically not always true, e.g. multi-stage/self-updating bootloader).
@ninjaoftherift1620
@ninjaoftherift1620 2 ай бұрын
Nikolas thank you theVideo series was amazing! all the way from picking the small.parts , doing the PCB design to programming! I had so much fun watching you and learned a bit. That being said i want to ask for some career advice I want to become an embbeded software engineer but have some questions. Any advice is greatly appreciated. For some quick background I finished my IT bachelor's focused on web development with a minor in software engineering in December 2023. But I had been working on web apps since I was around 16. From design to front end development and some backend. However, I initially was a CS student struggled rly hard with advanced calculus but I understood binary discrete and so on so I switched. I'm currently pursuing a MS in software engineering with a specialization in robotics and plan to take comp engineering electives like microcontroller programming and computer architecture and so on. Also to note this software engineering program actually focuses teaching C and Matlab more then other enterprise software courses, which is why I think it be more ideal . I guess it's because here in Houston there's a lot of embbed jobs. Program link: catalog.uhcl.edu/preview_program.php?catoid=19&poid=4864 Questions: - how much hardware does an embbeded software engineer get to work with? Do I get to write code and connect for examples microcontroller to a breadboard? Or it's it more of you just write code for the hardware like a normal software engineer? - how much hardware should i know at a fundamental level? - would I benefit more from trying to enroll in a computer engineering program that will accept me? Instead of doing my software engineering program. - how should I start learning about hardware as my elective options are limited And do not think I'd cover all that I need? - I'm assuming this would be answered kind of by the previous but why can't a normal software engineer just transition to Embedded Software engineering? Is it due to the hardware knowledge? Constrains with C? Note: I have also looked at BU's leap program for electrical and computer engineering Thank you once again !
@slimsh4dy115
@slimsh4dy115 2 ай бұрын
The Playlist of my Dreams🤩🤩
@needywallaby2030
@needywallaby2030 2 ай бұрын
i was searching for copper but found a gold this channel is best imo
@sofianemekroud7748
@sofianemekroud7748 2 ай бұрын
so Excited!
@chenrushan219
@chenrushan219 2 ай бұрын
have watched a bunch of your videos, you're a legend Thanks for the effort of making such detailed demonstration of embedded system development, really a gift to everyone intrested in this topic Wish you all the best
@Basicguy1798
@Basicguy1798 2 ай бұрын
Fantastic, its really difficult to find channels that handle embedded systems in such details. Whats your next project?
@artfulbytes
@artfulbytes 2 ай бұрын
To be revealed ;)
@fifaham
@fifaham 2 ай бұрын
One of the best videos detailing the memory work, job well done - thank you.
@forheuristiclifeksh7836
@forheuristiclifeksh7836 2 ай бұрын
1:00
@forheuristiclifeksh7836
@forheuristiclifeksh7836 2 ай бұрын
1:00 3:47
@csais2472
@csais2472 2 ай бұрын
What is the knowledge needed in order to follow this course?
@artfulbytes
@artfulbytes 2 ай бұрын
You mainly need a good understanding of C, ideally in the context of a small microcontroller project.
@dropdeaddavi440
@dropdeaddavi440 2 ай бұрын
Are there any resources you would recommend for learning how to read schematics?
@artfulbytes
@artfulbytes 2 ай бұрын
I think designing your own simple PCB is the best way to learn how to read schematics. There are some good resources on designing PCBs, e.g., have a look at robert feranec and phil's labe. Even if you don't intend to become a hw designer, it's helpful as a software engineer to still go through the pcb design process once.
@12rjig13gb
@12rjig13gb 2 ай бұрын
Great work, really enjoyed
@bennguyen1313
@bennguyen1313 2 ай бұрын
My humble suggestion would be a video on how to use an RTOS in an embedded application. I have a motor control application, and would like if a task receives a command in the queue, it will move until it reaches the destination (30+ seconds). If another command is received while it's moving, it must stop and go to the new position. Maybe the task could look like: wait for queue command start motor moving Continuously check position and stop when reached OR stop when new queue command is received Would monitoring the position block/starve all other tasks? If so, what's the proper way for it to closely monitor position while still allowing the RTOS to run other tasks? Does an RTOS' delay function (ex. FreeRTOS' vTaskDelay()), allow the scheduler to run other tasks? Actually, even if a low-priority task sits in a tight while(1), isn't the whole point of an RTOS to have the ability to wrestle away the CPU after too much time?
@artfulbytes
@artfulbytes 2 ай бұрын
Yes I would like to do content on RTOS in the future. It depends on how you sense that the motor has reached it's position. If via interrupt, the interrupt handler can queue a command/event "position reached". Otherwise as you say, a task can periodically check the status of the motor (sleep in between, i.e., vTaskDelay). It won't starve the other tasks as long as it sleep in between each position check. It would only starve if you have a "busy" while loop (without sleep) that just checks the position.
@keralagamingbuddy8472
@keralagamingbuddy8472 2 ай бұрын
bro is it possible to use 5 i2c slaves in an Arduino without using any multiplexers, if you used Arduino for this project (just curious about it) , unless all 5 have different i2c address.
@artfulbytes
@artfulbytes 2 ай бұрын
It's possible if they have different addresses. The range sensors I used for this project (VL53L0X) have the same address at boot, so they can't be used on the same bus as is, but it's possible to reconfigure the address of them, so that's what I do. I boot them up one by one and configure a unique address.
@keralagamingbuddy8472
@keralagamingbuddy8472 2 ай бұрын
@@artfulbytes that's cool , your embedded series is soo much interesting, Keep it up bro ♥️
@madhusudhanan9278
@madhusudhanan9278 2 ай бұрын
Hey, which linux do you use and what is the name of that embedded system IDE name? -Thank you!
@artfulbytes
@artfulbytes 2 ай бұрын
Hi, Ubuntu Linux and the IDE is Code composer studio.
@ShivamYadav-eq6bc
@ShivamYadav-eq6bc 2 ай бұрын
Thank you very much😀