Adding comments and a few fixes in coding style and include guards for epaper
authorNathael Pajani <nathael.pajani@ed3l.fr>
Mon, 21 Sep 2015 10:34:15 +0000 (12:34 +0200)
committerNathael Pajani <nathael.pajani@ed3l.fr>
Mon, 21 Sep 2015 10:34:15 +0000 (12:34 +0200)
24 files changed:
core/bootstrap.c
core/fault_handlers.c
core/pio.c
core/rom_helpers.c
core/system.c
core/systick.c
drivers/adc.c
drivers/gpio.c
drivers/i2c.c
drivers/serial.c
drivers/ssp.c
drivers/timers.c
extdrv/cc1101.c
include/core/iap.h
include/core/systick.h
include/drivers/adc.h
include/drivers/gpio.h
include/drivers/i2c.h
include/drivers/serial.h
include/drivers/ssp.h
include/drivers/timers.h
include/extdrv/cc1101.h
include/extdrv/epaper.h
include/lib/stddef.h

index 6fd83a4..26c7ea3 100644 (file)
@@ -38,7 +38,7 @@ extern unsigned int _end_bss;
 
 extern int main(void);
 
-/* Cortex M0 core interrupt handlers */
+/* Cortex M3 core interrupt handlers */
 void Reset_Handler(void);
 void NMI_Handler(void) __attribute__ ((weak, alias ("Dummy_Handler")));
 void HardFault_Handler(void) __attribute__ ((weak, alias ("Dummy_Handler")));
index 623a37f..2045a52 100644 (file)
  *
  *****************************************************************************/
 
+/* Default "fault" handlers, which catch the fault exceptions.
+ * These are defined as weak aliases of a dummy fault handler which enters an empty infinite
+ *   loop and chould be overidden by user defined handlers.
+ */
+
 #include "core/lpc_regs_17xx.h"
 
 void fault_info(const char* name, uint32_t len) __attribute__ ((weak, alias ("Dummy_Fault_Handler")));
index 0a62843..7a38594 100644 (file)
@@ -22,7 +22,9 @@
 /*                GPIOs                                                        */
 /***************************************************************************** */
 
-/*   Public access to Pins setup   */
+/*   Public access to Pins setup
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
 
 
 #include <stdint.h>
index 298c3f0..1c96fdd 100644 (file)
  *
  *************************************************************************** */
 
+/* ROM helpers are functions avalable for the user which do not use space in the
+ *  internal reprogrammable flash.
+ * They are stored in the internal ROM memory and may be called using specific
+ *  calls with defined parameters depending on the ROM call used.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
 #include <stdint.h>
 #include "core/system.h"
 #include "core/lpc_core_cm3.h"
index a36d114..bbe4c02 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- *   core/system.c (OK)
+ *   core/system.c
  *
  * All low-level functions for clocks configuration and switch, system
  *  power-up, reset, and power-down.
  *
  *************************************************************************** */
 
+/*
+ * This file holds some system wide initialisation functions and clock or sleep
+ *   related functions.
+ */
+
 #include <stdint.h>
 
 #include "core/lpc_regs_17xx.h"
@@ -31,7 +36,7 @@
 
 
 /* Private defines */
-#define LPC_XTAL         (12000000UL)  /* Oscillator frequency : 12MHz on lpc_private board */
+#define LPC_XTAL         (12000000UL)  /* Oscillator frequency : 12MHz on DTPlug board */
 #define LPC_SYS_OSC_CLK  (LPC_XTAL)    /* Main oscillator frequency */
 #define LPC_IRC_OSC_CLK  (4000000UL)  /* Internal RC oscillator frequency : 4MHz */
 
index 46a396c..eec5aa8 100644 (file)
 /*               System Tick Timer                                             */
 /***************************************************************************** */
 
+/* Driver for the internal systick timer of the LPC176x.
+ * Refer to the LPC176x documentation (UM10360.pdf) for more information
+ */
+
 #include <stdint.h>
 #include "core/lpc_regs_17xx.h"
 #include "core/lpc_core_cm3.h"
index e60a684..26c96d6 100644 (file)
 /*                Analog to Digital Converter (ADC)                            */
 /***************************************************************************** */
 
+/* ADC driver for the integrated ADC module of the LPC176x.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
 #include <stdint.h>
 #include "core/lpc_regs_17xx.h"
 #include "core/lpc_core_cm3.h"
index d0a2a99..648a9eb 100644 (file)
@@ -22,6 +22,9 @@
 /*                GPIOs and GPIO Interrupts                                    */
 /***************************************************************************** */
 
+/* Driver for GPIO configuration and access (including GPIO interrupts) on the LPC176x.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
 
 
 #include <stdint.h>
index 1f42c0f..2d016e4 100644 (file)
 /*                      I2C                                                   */
 /**************************************************************************** */
 
+/* I2C driver for the I2C bus integrated module of the LPC176x.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
 #include <stdint.h>
 
 #include "core/lpc_regs_17xx.h"
index f4b809d..098b311 100644 (file)
 /***************************************************************************** */
 /*                UARTs                                                        */
 /***************************************************************************** */
+/* UART driver for the integrated UARTs of the LPC176x.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
 /* Both UARTs are available, UART numbers are in the range 0 - 1 */
 
 #include <stdint.h>
@@ -198,8 +202,9 @@ int serial_write(uint32_t uart_num, const char *buf, uint32_t length)
        /* If UART is sending wait for buffer empty */
        /* FIXME : be smart for OS, call scheduler or return */
        while (uart->sending != 0) {
-               if (get_priority_mask() == 0)
+               if (get_priority_mask() == 0) {
                        uart_check_tx(uart, uart->regs->func.intr_pending);
+               }
        }
 
        if (length > SERIAL_OUT_BUFF_SIZE) {
@@ -240,8 +245,9 @@ int serial_flush(uint32_t uart_num)
        /* Active wait for message to be sent. If interrupts are
         * disabled, call the UART handler while waiting. */
        while (uart->sending) {
-               if (get_priority_mask() == 0)
+               if (get_priority_mask() == 0) {
                        uart_check_tx(uart, uart->regs->func.intr_pending);
+               }
        }
 
        return 0;
index 7547655..07373f1 100644 (file)
 /*                SSP                                                          */
 /***************************************************************************** */
 
+/* SSP/SPI driver for the SSP bus integrated module of the LPC176x.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
 #include <stdint.h>
 #include "core/lpc_regs_17xx.h"
 #include "core/lpc_core_cm3.h"
@@ -319,7 +323,8 @@ void ssp_clk_update(void)
 /* SSP Setup as master */
 /* Returns 0 on success
  * Parameters :
- *  frame_type is SPI, TI or MICROWIRE (use apropriate defines for this one).
+ *  frame_type is SPI, TI or MICROWIRE (use apropriate defines for this one):
+ *     LPC_SSP_FRAME_SPI - LPC_SSP_FRAME_TI - LPC_SSP_FRAME_MICROWIRE).
  *  data_width is a number between 4 and 16.
  *  rate : The bit rate, in Hz.
  * The SPI Chip Select is not handled by the SPI driver in master SPI mode as it's
index d7d5709..040a4a8 100644 (file)
 /*                Timers                                                       */
 /***************************************************************************** */
 
+/* Timers driver for the integrated timers of the LPC176x.
+ * The LPC176x Has two 16bits timers and 2 32bits timers.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
 #include <stdint.h>
 #include "core/lpc_regs_17xx.h"
 #include "core/lpc_core_cm3.h"
index ae4d234..e2a38a7 100644 (file)
 #include "drivers/gpio.h"
 #include "extdrv/cc1101.h"
 
+/* Driver for the CC1101 Sub-1GHz RF transceiver from Texas Instrument.
+ * Refer to CC1101 documentation for more information (swrs061i.pdf)
+ */
+
 
 /***************************************************************************** */
 /*                CC1101                                                       */
index da4c4ea..8c0b092 100644 (file)
@@ -1,7 +1,7 @@
 /****************************************************************************
  *   core/iap.h
  *
- *
+ * Copyright 2015 Nathael Pajani <nathael.pajani@ed3l.fr>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 4d5a527..e98c7d2 100644 (file)
 /*               System Tick Timer                                             */
 /***************************************************************************** */
 
+/* Driver for the internal systick timer of the LPC176x.
+ * Refer to the LPC176x documentation (UM10360.pdf) for more information
+ */
+
+
 /* Start the system tick timer
  * Starting the systick timer also resets the internal tick counters.
  * If you need a value that goes beyond one start/stop cycle and accross resets,
index 0230f65..9a6cf7f 100644 (file)
 /*                Analog to Digital Converter (ADC)                            */
 /***************************************************************************** */
 
+/* ADC driver for the integrated ADC module of the LPC176x.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
 enum adc_events {
        /* CT32B0 */
        ADC_CONV_ON_CT32B0_CAP0_RISING,
index 7a9ccc2..c57911b 100644 (file)
  *
  *************************************************************************** */
 
+/***************************************************************************** */
+/*                GPIOs and GPIO Interrupts                                    */
+/***************************************************************************** */
+
+/* Driver for GPIO configuration and access (including GPIO interrupts) on the LPC176x.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
 #ifndef DRIVERS_GPIO_H
 #define DRIVERS_GPIO_H
 
index 1d1eb0e..931b758 100644 (file)
  *
  *************************************************************************** */
 
+/**************************************************************************** */
+/*                      I2C                                                   */
+/**************************************************************************** */
+
+/* I2C driver for the I2C bus integrated module of the LPC176x.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
 #ifndef DRIVERS_I2C_H
 #define DRIVERS_I2C_H
 
index 3662a71..61191e4 100644 (file)
  *
  *************************************************************************** */
 
+/***************************************************************************** */
+/*                UARTs                                                        */
+/***************************************************************************** */
+/* UART driver for the integrated UARTs of the LPC176x.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
+/* All four UARTs are available, UART numbers are in the range 0 - 3 */
+
 #ifndef DRIVERS_SERIAL_H
 #define DRIVERS_SERIAL_H
 
index 590cc27..6014d8b 100644 (file)
 /*                SSP                                                          */
 /***************************************************************************** */
 
+/* SSP/SPI driver for the SSP bus integrated module of the LPC176x.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
+ */
+
 #include <stdint.h>
 
 
@@ -94,6 +98,7 @@ void ssp_clk_update(void);
 /* Returns 0 on success
  * Parameters :
  *  frame_type is SPI, TI or MICROWIRE (use apropriate defines for this one).
+ *     LPC_SSP_FRAME_SPI - LPC_SSP_FRAME_TI - LPC_SSP_FRAME_MICROWIRE).
  *  data_width is a number between 4 and 16.
  *  rate : The bit rate, in Hz.
  * The SPI Chip Select is not handled by the SPI driver in master SPI mode as it's
index 0e3eb49..6ef9017 100644 (file)
@@ -30,6 +30,7 @@
  * All 32 bits timers have 4 channels though only timer 2 has all 4 channels available
  *   on match pins while other ones have only two (channels 0 and 1).
  * PWM timer has 7 match outputs.
+ * Refer to LPC176x documentation (UM10360.pdf) for more information.
  */
 #define NUM_TIMERS 5
 #define NUM_CHANS 4
index 5549fe7..6527903 100644 (file)
@@ -1,6 +1,17 @@
-/**
+/****************************************************************************
+ *   extdrv/cc1101.h
+ *
+ * CC1101 Low-Power Sub-1 GHz RF Transceiver.
+ *
+ * Copyright 2013 Nathael Pajani <nathael.pajani@ed3l.fr>
+ */
+
+
+/*
  * @author Athanassios Mavrogeorgiadis
- * @author TI CC1101 library  developed by Athanassios Mavrogeorgiadis (tmav Electronics) as template based on TI C8051 SOURCE CODE swrc021f
+ * @author TI CC1101 library developed by Athanassios Mavrogeorgiadis (tmav Electronics)
+ *    as template based on TI C8051 SOURCE CODE swrc021f
+ *
  * @section LICENSE
  *
  * Copyright (c) 2010 ARM Limited
index 00aa614..8c8747e 100644 (file)
@@ -26,6 +26,9 @@
  * artists on the GPIO Demo module.
  */
 
+#ifndef EXTDRV_EPAPER_H
+#define EXTDRV_EPAPER_H
+
 #include <stdint.h>
 #include "core/pio.h"
 #include "drivers/timers.h"
@@ -119,3 +122,5 @@ void epaper_send_frame(uint8_t* image, uint8_t stage);
  */
 void epaper_send_partial_frame(uint8_t* image, uint8_t start_line, uint8_t nb_lines, uint8_t stage);
 
+#endif /* EXTDRV_EPAPER_H */
+
index 3acf1e9..0543de7 100644 (file)
@@ -30,6 +30,9 @@ typedef unsigned long   size_t;
 #undef NULL
 #define NULL ((void *)0)
 
+/**
+ * offsetof - return the offset of a member in the containing structure.
+ */
 #undef offsetof
 #ifdef __builtin_offsetof
  #define offsetof(type, member)  __builtin_offsetof(type, member)