This project includes limited-functionality GPIO, Timer, System Clock, and Interrupt Control MCAL (Microcontroller Abstraction Layer) drivers for TM4C123GH6PM microcontroller. It is a project for Udacity's Advanced Embedded Systemd Nanodegree. It's purpose is for practicing MCAL driver development.
The project includes the necessary drivers to implement a simple blinking LED. Not all timers or GPIO ports are available.
The source code itself includes many comments on improvements and changes. However, here is a list of general to-dos in the project:
- Add the remaining GPIO ports
- Add the remaining timers
- Add functionality of external interrupts in the GPIO modules
- Add more documentation for the existing code
- Keil uVision Version 5.29.0.0
- C ARM Compiler Version 5
Distributed under the CC BY license. Click here for more info.
Since this project was inteded for practice, I recommend using something else for any professional project. For example TivaWareTM for C by Texas Instruments.
However, if you would like to practive building drivers or contributing to embedded open source projects, feel free to use this project and contribute to it.
For any driver module:
- Include the
module.h
header file where you want to use the module - Add the
module.c
andmodule_lcfg.c
(if it exists) files to your project's files (add them to your build targets) - If included for the module, adjust the
module_cfg.h
andmodule_lcfg.c
files to configure the usage of the module
Mohamed Atef: mohamed.a13121998@gmail.com