What Does MVP Stand For? It’s Not What You Think.
October 7, 2024
Article
Instructor: Packt - Course Instructors
Included with
Recommended experience
Intermediate level
For anyone seeking to enhance embedded firmware skills and learn object-oriented principles in C and C++, this course is ideal.
Recommended experience
Intermediate level
For anyone seeking to enhance embedded firmware skills and learn object-oriented principles in C and C++, this course is ideal.
Understand object-oriented principles and their application in firmware development
Apply object-oriented principles to write embedded C and C++ applications
Analyze firmware structures using polymorphism, inheritance, and encapsulation in C and C++
Evaluate and build robust firmware by applying object-oriented principles
Add to your LinkedIn profile
September 2024
5 assignments
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
In this course, you will embark on a journey through the fundamentals and advanced techniques of embedded systems programming with a focus on object-oriented methodologies. Beginning with the setup of essential tools like Keil uVision and STM32CubeIDE, you will gain hands-on experience in configuring and using these powerful development environments.
As you progress, the course delves into object-oriented firmware programming, starting with the creation of drivers and classes in both C and C++. You will learn to develop UART drivers, create LED classes, and implement inheritance, all while adhering to best practices. The course also explores the development of GPIO and UART libraries from scratch, providing a robust understanding of how to build and test reusable code components in an embedded context. Finally, the course covers advanced topics such as polymorphism and the extension of GPIO libraries to handle alternate functions. By the end of this course, you will have a comprehensive understanding of object-oriented programming in embedded systems, enabling you to create efficient, scalable, and maintainable firmware for a wide range of applications. This course is designed for embedded systems engineers, firmware developers, and hobbyists with a basic understanding of C programming. Familiarity with microcontrollers and basic electronics is recommended but not required.
In this module, we will provide an overview of the course, including its objectives and scope. You will learn how to download, install, and set up Keil uVision, ensuring you are ready to begin your journey in firmware programming.
5 videos1 reading
In this module, we will delve into object-oriented firmware programming by creating a UART driver and an LED class. You will learn to apply object-oriented principles in C and transition these concepts into C++ for enhanced firmware development.
4 videos
In this module, we will focus on implementing inheritance in both C and C++. You will learn how to create inherited classes, understand the advantages of using inheritance, and perform testing to ensure functionality in embedded systems.
4 videos1 assignment
In this module, we will guide you through the development of a GPIO driver and library in C from scratch. You will learn to build and test the necessary structures, integrate them into a comprehensive driver, and validate the complete library.
8 videos
In this module, we will explore polymorphism in embedded C and C++. You will learn to add new classes to your project, implement polymorphism, and use virtual functions to enhance the flexibility and scalability of your firmware.
3 videos
In this module, we will extend the GPIO library to handle alternate functions. This optional section will allow you to apply advanced features to your GPIO driver, enhancing its overall functionality and versatility.
1 video1 assignment
In this module, we will focus on developing a GPIO library in C++ from scratch. You will apply object-oriented principles to manage GPIOs effectively and ensure the library's functionality through thorough testing.
1 video
In this module, we will guide you through creating a UART driver and library in C. You will learn to implement UART register structures, develop the driver and library, and validate their functionality through comprehensive testing.
5 videos
In this module, we will develop a UART library in C++ from scratch. You will apply object-oriented principles to manage UARTs effectively and ensure the library's functionality through thorough testing.
1 video1 assignment
In this module, we will focus on creating a SysTick timer library in C. You will learn to implement the SysTick registers structure, develop and test the library, and then transition the implementation to C++ for enhanced functionality.
4 videos
In this module, we will guide you through setting up the STM32CubeIDE. You will learn to download, install, and configure the IDE, and then write and test a GPIO driver using the STM32CubeIDE environment.
6 videos1 assignment
In this module, we will conclude the course by summarizing the key concepts covered. You will be encouraged to continue exploring and applying your firmware programming skills, and provided with contact information for any additional support or questions.
1 video1 assignment
Packt helps tech professionals put software to work by distilling and sharing the working knowledge of their peers. Packt is an established global technical learning content provider, founded in Birmingham, UK, with over twenty years of experience delivering premium, rich content from groundbreaking authors on a wide range of emerging and popular technologies.
EIT Digital
Course
Coursera Project Network
Course
Arizona State University
Course
Course
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Earn a degree from world-class universities - 100% online
Upskill your employees to excel in the digital economy
Yes, you can preview the first video and view the syllabus before you enroll. You must purchase the course to access content not included in the preview.
If you decide to enroll in the course before the session start date, you will have access to all of the lecture videos and readings for the course. You’ll be able to submit assignments once the session starts.
Once you enroll and your session begins, you will have access to all videos and other resources, including reading items and the course discussion forum. You’ll be able to view and submit practice assessments, and complete required graded assignments to earn a grade and a Course Certificate.
If you complete the course successfully, your electronic Course Certificate will be added to your Accomplishments page - from there, you can print your Course Certificate or add it to your LinkedIn profile.
This course is one of a few offered on Coursera that are currently available only to learners who have paid or received financial aid, when available.
You will be eligible for a full refund until two weeks after your payment date, or (for courses that have just launched) until two weeks after the first session of the course begins, whichever is later. You cannot receive a refund once you’ve earned a Course Certificate, even if you complete the course within the two-week refund period. See our full refund policy.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work.
These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
These cookies enable the website to provide enhanced functionality and personalization. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly.