Getting Started with Project Development

[中文]

Note

This document is automatically translated using AI. Please excuse any detailed errors. The official English version is still in progress.

When developing ESP projects, a common practice is to combine project requirements, refer to the example projects and SDK documentation provided by ESP, choose an example closest to the target application as a starting point, and gradually modify and expand on this basis.

This article will focus on the Espressif ESP development environment and introduce the knowledge points that need to be understood when developing common ESP projects:

General Knowledge

Before developing ESP projects, you need to master some key general knowledge and skills to ensure the smooth progress of the project:

  • Git: Git is an open-source distributed version control system used to track code changes and collaborative development. Using Git in your project can help you manage your code effectively, control versions, and collaborate with team members. Learning how to use Git for code submission, branch management, merging, etc., is a basic requirement for developing ESP projects.

  • FreeRTOS: FreeRTOS is an open-source real-time operating system widely used in embedded systems and microcontroller projects. ESP series chips all support FreeRTOS and often use it to implement multitasking and real-time scheduling. Understanding the concepts of FreeRTOS task scheduling, message queues, semaphores, etc., is essential knowledge for developing ESP projects.

  • C/C++: C and C++ are the main programming languages for ESP series chip development. ESP-IDF is basically developed using C/C++, so mastering them is very important for understanding low-level drivers, task scheduling, memory management, and high-performance application development. Developers should understand concepts such as variable types, pointers, memory management, functions, classes, templates, etc., and master debugging skills.

  • Linux (optional): ESP project development often takes place on the Linux operating system, as Linux provides a wealth of tools and command line environments suitable for embedded development. Developers should understand the basic commands and usage of Linux, such as file operations, directory management, process management, etc., in order to debug and configure during the development process.

    - ls: Lists the files and folders in the current directory.
    - cd <directory>: Switches to the specified directory.
    - pwd: Displays the path of the current working directory.
    - cp <source> <destination>:Copy files or directories.
    - rm <file_name>:Delete a file.
    - mkdir <directory>:Create a new directory.
    - rmdir <directory>:Delete an empty directory.
    - cat <file_name>:Display the content of a file.
    

ESP Learning Resources

ESP Products

  • Understand the features, functions, and application scenarios of ESP series chips, refer to: Board selection

  • Gain a deeper understanding of chip characteristics, interfaces, and security features by actually using ESP development boards for basic experiments and hardware operations.

Development Tools and Environment Configuration

  • Learn about setting up and configuring the development environment, complete the installation of ESP-IDF, toolchain configuration, and development environment setup.

  • Familiarize yourself with the use of ESP-IDF tools, including compilation, burning, debugging, log monitoring, and other common development tools.

  • Understand the hardware and software environment required for each ESP chip to burn firmware <https://docs.espressif.com/projects/esp-techpedia/en/latest/esp-friends/get-started/try-firmware/index.html>.

API Learning and Practice

  • Understand the functions and interface definitions of system, peripheral, network, and protocol stack APIs through the use of ESP-IDF API <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/index.html#api>.

  • Combine the guide to the usage of ESP-IDF API <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/index.html#api>, learn about the typical use cases, configuration methods, and best practices of the API.

  • Find solutions based on ESP-IDF, application examples, components, and drivers in the ESP IoT Solution library. Most documents provide both Chinese and English versions.

  • Learn related knowledge and practical skills by participating in online courses and video tutorials on ESP chip and ESP-IDF development <https://space.bilibili.com/538078399>.

ESP-IDF Framework

  • Understand the functional differences and upgrade strategies of different versions through the introduction and management of ESP-IDF versions <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/versions.html#esp-idf>.

  • Understand the componentized design, build system, and inter-module relationships through the composition and architecture of the ESP-IDF framework.

  • Learn Component Management and Usage, master the methods of introducing, configuring, and reusing components.

  • Understand the Flash space management method of ESP-IDF, refer to the partition table.

Community and Forums

  • Join the official ESP32 forum, CSDN forum, or other developer communities. Exchange experiences with other developers, seek help, and share projects and solutions.

  • Submit bugs or feature requests through the Issues section on GitHub. Before submitting new Issues, please check the existing Issues.

Reference Books

  • Read books related to embedded systems, C language, and ESP chip development to expand your breadth and depth of knowledge. Refer to: ESP32 book list.

Continuous practice and project development are the most important parts of the learning process. Developers can gradually master the skills of embedded project development of ESP chips through continuous practice and practical application.