Written READMEs

This commit is contained in:
Ulysse Cura 2025-12-21 22:12:02 +01:00
parent 0e02c38686
commit df3a988ff6
3 changed files with 134 additions and 0 deletions

34
ESP32_Project/README.md Normal file
View File

@ -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

77
GCC_Project/README.md Normal file
View File

@ -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
```

23
README.md Normal file
View File

@ -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.