README for driver written and on looking how it presents itself

master
Kerem Yollu 2 years ago
parent 92f753bf50
commit ecca9af3a3

@ -42,7 +42,7 @@ set(DOXYGEN_WORKING_DIR ${CMAKE_SOURCE_DIR}/env/doc)
# INCLUDES
####################################################################################################
# Adding human readable color references for cmake
include(${CMAKE_CORE_DIR}/colors.cmake)
include(${CMAKE_CORE_DIR}/colors.cmake)
# All the library and submodule funtions and definitions are written here
include(${CMAKE_CORE_DIR}/cmakeCore.cmake)

@ -0,0 +1,96 @@
# Drivers
## Description
Drivers are the higher level of code prowided by *KED*. It come on top of the [Peripheras](https://git.keydev.me/kerem/KED/src/branch/master/peripherals) and alows the usage of comercially awailable IC's or moludes.
---
## Please follow this guide to find out about the :
- [Structure](#Structure)
- [Usage](#Usage)
- [Creation](#creation)
- [Modification](#modification)
- [Credits](#credits)
- [License](#license)
---
## Structure
##### The __driver__ folder has multiple elements inside :
+ CMakeLists.txt
+ where the DRIVERS_LIST is defined
+ Folders named after the driver that they respresent. Inside you will find:
+ Source file of the driver
+ Header file of the driver
+ This Readme file
---
## Usage
In the *CMakeLists.txt* you will find the decalarion of __DRIVERS_LIST__ list which contains the dirvers that are to be compiled.
The *name* of the declared *driver* also defines the name of the driver's *folder*, *souce* file and *header* file.
Once the driver is implemented correctly you can call the header of the driver from any soure of header file.
> exmaple for *ssd1306_i2c*
~~~ C
#include "ssd1306_i2c.h"
~~~
CMake will the automatically find the driver, compile it and implement it to the main projet as a submodule.
---
## Creation
### Let's implement a driver named *ssd1306_i2c*
#### First let's add *ssd1306_i2c* to the __DRIVERS_LIST__.
Open *CMakeLists.txt* with your favorite *text editor* and modifiy the line wehre __DRIVERS_LIST__ is defined.
In which order the drivers are added to the list has no importance.
> Before adding *ssd1306_i2c*
~~~ CMAKE
set(DRIVERS_LIST lcd_oled max7219 max31865)
~~~
> After adding *ssd1306_i2c* the declaration of __DRIVERS_LIST__ should look like this
~~~ CMAKE
set(DRIVERS_LIST lcd_oled max7219 max31865 ssd1306_i2c)
~~~
#### Than we can create a folder with the same name
~~~ bash
mkdir ssd1306_i2c
~~~
#### Inside the newly created folder add the *source* and *header* file with the same name as the driver
In our case that means __ssd1306_i2c.c__ and __ssd1306_i2c.h__
~~~ bash
touch ssd1306_i2c.c ssd1306_i2c.h
~~~
#### The final structure should look like this
As you can see this folder also contains the datashhed for this driver. If you have any additional documentation like a datasheet or calculation sheet, feel free to add them here.
~~~ bash
└── ssd1306_i2c
├── ssd1306_i2c.c
├── ssd1306_i2c.h
└── SSD1306.pdf
~~~
---
## Modification
You can modify each driver to your convinience but it can't be pushed again so please be careful during GIT transactions.
You can also remove any driver from the complation by simply removing his declaration from the __DRIVERS_LIST__
> Like so :
set(DRIVERS_LIST lcd_oled max7219 max31865 ~~ssd1306_i2c~~)
## How to Contribute
Do you want to become a contibutor ? :
How is Ked organised :
Rules to write a Driver :
## Credits
Edwin Koch
Kerem Yollu
## License
The last section of a high-quality README file is the license. This lets other developers know what they can and cannot do with your project. If you need help choosing a license, refer to [https://choosealicense.com/](https://choosealicense.com/).
---
Loading…
Cancel
Save