diff --git a/ESP32_Project/README.md b/ESP32_Project/README.md new file mode 100644 index 0000000..db2bfaf --- /dev/null +++ b/ESP32_Project/README.md @@ -0,0 +1,34 @@ +# ESP32_Project + +## Description + +This is a template for **C** project for esp32 boards using PlatformIO with the esp-idf framework, better than Arduino but proprietary. + +## Setup + +To make this template work you will need to install PlatformIO. +For this use this link : [super quick install](https://docs.platformio.org/en/latest/core/installation/methods/installer-script.html#super-quick-macos-linux) + +During installation select all boards. + +Then in the project's platformio.ini change the board id to the one that you can find by using : +```bash +pio boards your_board +``` + +And finally in the project dir run : +```bash +pio project init +``` + +## Usage + +In vscode open your task runner and use the different tasks : + - **Build** : Build the current project + - **Build and Upload** : Build project and upload to device + - **Clean** : Clean build directory + +They correspond to calling make with the following : + - **Build** : pio run + - **Build and Upload** : pio run --target upload + - **Clean** : pio run --target clean diff --git a/GCC_Project/README.md b/GCC_Project/README.md new file mode 100644 index 0000000..939d3d3 --- /dev/null +++ b/GCC_Project/README.md @@ -0,0 +1,77 @@ +# GCC_Project + +## Description + +This is a template for **C** projects using make and gcc. + +## Setup + +To make this template work you will need to install make and gcc. + +On Debian 13 the command is : +```bash +sudo apt install make gcc +``` + +## Usage + +In vscode open your task runner and use the different tasks : + - **Build** : Build the current project + - **Clean** : Clean build directory + - **Run** : Run the compiled executable + - **Build Verbose** : Build with verbosity on (show the commands called by make while building the project) + +They correspond to calling make with the following : + - **Build** : make + - **Clean** : make clean + - **Run** : make run + - **Verbosity on** : make ... VERBOSE=1 ; You can add verbosity to any task that you want + +If you want to add more source files in your project, add their path in the SOURCES variable in the Makefile. +For exemple to add src/wifi/udp_client.c you should do something like this : +```bash +# Source files +SOURCES := \ + src/main.c \ + src/wifi/udp_client.c +``` + +You can also add include drectories for headers : +TIP : Add the same path to your c_cpp_properties.json in the .vscode folder in the includePath list, like this you don't have include errors by IntelliSense +```bash +# Include directories +INCLUDE_DIRS = lib/super_extra/include/ +``` + +> .vscode/c_cpp_properties.json +```json +{ + "configurations": [ + { + "name": "Default", + "includePath": [ + "lib/super_extra/include/" + ] + } + ], + "version": 1 +} +``` + +You can change the name of the executable and the build dir too (don't forget to change it in the .gitignore): +```bash +# Build folder +BUILD_DIR = build_dir + +#... + +# Output target name +OUTPUT := BestExecOfHumanity +``` + +And change the compiler and linker args as you want : +```bash +# Flags +CCFLAGS = -Wall -Wextra -std=c17 -g -no-pie +LDFLAGS = -no-pie +``` diff --git a/README.md b/README.md new file mode 100644 index 0000000..f492b2e --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# Projects Templates + +## Description + +This is a compilation of many differents project templates, mainly configured for vscode. +Every template has a default program so you can start by there after configuring them. + +----------------------------------------------------------------------------------------- + +## Setup + +### Per-project setup + +Each project template has a README to explain how to configure it on Debian 13 and how to use it. +Other distributions than Debian should work but configuration might not be applicable. + +### Global setup + +Many of the templates - if not all - are using the task runner in vscode, so it's highly recommended to setup a shortcut to open the task runner. + +You may also want to install the extensions in vscode. +For the moment you should install, at least, the **C/C++** default extension (not the extension pack) by *microsoft* to get IntelliSense highlighting and code browsing. +I use the **Teleplot** extension by *alexnesnes* too. It's useful to communicate over serial port to external devices like RPI Pico or ESP32 boards.