Embedded Software Development using C++

所在平台: Udemy

课程主页: https://www.udemy.com/course/embedded-software-development-using-cpp/

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:使用C++的嵌入式软件开发 课程概述: “使用C++的嵌入式软件开发”课程展示了面向对象编程(OOP)在嵌入式系统中的应用。C++作为首选编程语言,因其易于实现OOP和能够与硬件级编程相结合而受到青睐。尽管C++功能丰富,但易于误用,可能导致代码膨胀。本课程特别选择了语言的特定功能,以确保开发的程序遵循以下原则:简洁性、可读性、可维护性。课程涵盖了OOP的核心概念,如抽象、封装和多态,但不涉及继承,以确保编程风格尽可能简单友好。为了加速库和应用的开发,本课程使用STM32Cube HAL API,并将直接寄存器级编程降到最低。本课程以STM32F401RE Nucleo开发板为基础,使用Keil uVision5 MDK和STM32CubeIDE进行软件开发与调试。 课程内容: - 嵌入式系统上的面向对象编程,内容包括:类、封装、抽象、多态;私有与公共关键字;指针与引用;类型安全。 - 使用C++开发库,利用STM32Cube HAL驱动程序和文档信息,将STM32微控制器与外部组件(如20x4 LCD、4x4键盘、SG90舵机、HC05蓝牙模块、HC-SR04超声波传感器、L298N电机驱动器)进行接口。 - 代码生成使用STM32CubeMx,并根据开发需求修改与定制生成的代码。 - HAL GPIO、UART和定时器编程应用,利用定时器生成PWM信号和测定输入信号的占空比。 - 在编写库或应用代码前进行软件设计。 - 在Keil uVision 5和STM32CubeIDE中进行代码测试和调试。 项目内容: 该课程项目为主,学生将完成至少两个项目,包括:井字棋游戏控制台和自动驾驶汽车。课程保证学员在完成后能独立构建嵌入式软件,设计与开发简单、可读且可维护的嵌入式软件,满足几个项目的明确需求。 硬件与软件要求: 课程要求学生购买一些硬件组件,并安装所需软件,以便更好地跟随讲座、练习和项目。软件要求包括:Keil uVision5 MDK、Java运行环境(STM32CubeMx所需)、STM32CubeMx和STM32CubeIDE(针对Keil uVision中不支持HAL的开发板)。学生需对STM32编程有基本了解,并有嵌入式C的知识。 互动学习: 课程的教学和学习过程超越了讲座和练习,学生可以通过问答部分与讲师沟通,该部分非常活跃,问题将在24小时内得到回答。

课程评论(0条)

课程详情

The Embedded Software Development using C++ course demonstrates the application of object-oriented programming (OOP) in embedded systems. C++ is the language of choice because it has facilities that make OOP easy to implement and it also allows programming at the hardware level. As feature-rich and fantastic as C++ is, it is easy to misuse and this might cause code bloat. In this course, specific features of the language have been chosen to ensure the programs developed obey the following:SimplicityReadabilityMaintainabilityCore concepts of OOP such as abstraction, encapsulation and polymorphism are covered. The course aims to present this style of programming as simple and friendly as possible hence inheritance isn't covered. In order to make library and application development relatively faster, the STM32Cube HAL APIs are used and direct register-level programming is reduced to a minimum. The STM32F401RE Nucleo Board is used throughout this course and the Keil uVision5 MDK and STM32CubeIDE are used for software development and debugging. Since the course predominantly uses the HAL, then anyone taking the course can use a different STM32 microcontroller and run the same code (with few modifications) due to the portability of the HAL. Most embedded software are written in C and with a procedural approach to programming. C++ isn't a replacement for C and neither is OOP a replacement for procedural programming. But C++ does provide some features that our embedded software can benefit from and if used judiciously, it would be rewarding for application development. In the end, it is a matter of preference and use case and this course ensures the applicability of the language and programming paradigm (OOP) are reflected and appreciated.As a student of this course, you'd be exposed to the following:Object-oriented programming on an embedded system and the following will be applied:Classes, Encapsulation, Abstraction, PolymorphismPrivate and Public keywordsPointers and ReferencesType safetyDevelopment of libraries using C++, STM32Cube HAL drivers and information from documentations to interface the STM32 microcontroller with external components like:20x4 LCD4x4 KeypadSG90 ServoHC05 Bluetooth ModuleHC-SR04 Ultrasonic SensorL298N Motor DriverCode generation using STM32CubeMx as well as modification and customization of the CubeMx generated code to suit the application being developed.HAL GPIO, UART and Timer programming on the STM32Use of timers for PWM signal generation as well as PWM input capture for determination of an input signal's duty cycleSoftware design prior to the development of a library or application codeCode testing and debugging on Keil uVision 5 and STM32CubeIDEAs this course is project-based, students will build at least two projects, some of which include:A Tic-tac-toe game consoleAn Autonomous carI can guarantee that anyone that enrolls for this course will be able to build embedded software for projects with little to no supervision after completing this course. Also, as a graduate of this course, you'd be able to design and develop simple, readable and maintainable embedded software for several projects with well defined requirements using C++. To get the best out of the course, students are required to purchase some hardware components and install some software in order to follow the lectures, exercises and projects with ease.Software requirements:Keil uVision5 MDK Java runtime environment (required for the STM32CubeMx)STM32CubeMxSTM32CubeIDE (for boards without HAL support in Keil uVision)Students are also expected to be familiar with STM32 programming at a basic level i.e. understanding of basic peripherals and their registers (GPIO, UART and Timers in normal counting mode). Knowledge of embedded C would also be helpful. Either Keil uVision 5 or STM32CubeIDE can be used. For boards without HAL support in the Keil uVision toolchain (e.g. STM32 bluepill), STM32CubeIDE can be used. The teaching and learning process in this course goes beyond the lectures and exercises. Students can always communicate with the instructor via the Q/A section. This section is very active as questions will be answered within 24 hours.

课程标签

0人关注该课程

主题相关的课程