Basic support for GPIOs 0-15.
Start new 'core' component for low-level parts Progress towards #8
This commit is contained in:
		
							parent
							
								
									b01e7a89bd
								
							
						
					
					
						commit
						2c46be9825
					
				
					 15 changed files with 704 additions and 14 deletions
				
			
		
							
								
								
									
										127
									
								
								examples/blink/FreeRTOSConfig.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								examples/blink/FreeRTOSConfig.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,127 @@ | |||
| /*
 | ||||
|     FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd. | ||||
| 
 | ||||
|     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
 | ||||
| 
 | ||||
|     *************************************************************************** | ||||
|      *                                                                       * | ||||
|      *    FreeRTOS provides completely free yet professionally developed,    * | ||||
|      *    robust, strictly quality controlled, supported, and cross          * | ||||
|      *    platform software that has become a de facto standard.             * | ||||
|      *                                                                       * | ||||
|      *    Help yourself get started quickly and support the FreeRTOS         * | ||||
|      *    project by purchasing a FreeRTOS tutorial book, reference          * | ||||
|      *    manual, or both from: http://www.FreeRTOS.org/Documentation        *
 | ||||
|      *                                                                       * | ||||
|      *    Thank you!                                                         * | ||||
|      *                                                                       * | ||||
|     *************************************************************************** | ||||
| 
 | ||||
|     This file is part of the FreeRTOS distribution. | ||||
| 
 | ||||
|     FreeRTOS is free software; you can redistribute it and/or modify it under | ||||
|     the terms of the GNU General Public License (version 2) as published by the | ||||
|     Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. | ||||
| 
 | ||||
|     >>! NOTE: The modification to the GPL is included to allow you to distribute | ||||
|     >>! a combined work that includes FreeRTOS without being obliged to provide | ||||
|     >>! the source code for proprietary components outside of the FreeRTOS | ||||
|     >>! kernel. | ||||
| 
 | ||||
|     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY | ||||
|     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | ||||
|     FOR A PARTICULAR PURPOSE.  Full license text is available from the following | ||||
|     link: http://www.freertos.org/a00114.html
 | ||||
| 
 | ||||
|     1 tab == 4 spaces! | ||||
| 
 | ||||
|     *************************************************************************** | ||||
|      *                                                                       * | ||||
|      *    Having a problem?  Start by reading the FAQ "My application does   * | ||||
|      *    not run, what could be wrong?"                                     * | ||||
|      *                                                                       * | ||||
|      *    http://www.FreeRTOS.org/FAQHelp.html                               *
 | ||||
|      *                                                                       * | ||||
|     *************************************************************************** | ||||
| 
 | ||||
|     http://www.FreeRTOS.org - Documentation, books, training, latest versions,
 | ||||
|     license and Real Time Engineers Ltd. contact details. | ||||
| 
 | ||||
|     http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
 | ||||
|     including FreeRTOS+Trace - an indispensable productivity tool, a DOS | ||||
|     compatible FAT file system, and our tiny thread aware UDP/IP stack. | ||||
| 
 | ||||
|     http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
 | ||||
|     Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS | ||||
|     licenses offer ticketed support, indemnification and middleware. | ||||
| 
 | ||||
|     http://www.SafeRTOS.com - High Integrity Systems also provide a safety
 | ||||
|     engineered and independently SIL3 certified version for use in safety and | ||||
|     mission critical applications that require provable dependability. | ||||
| 
 | ||||
|     1 tab == 4 spaces! | ||||
| */ | ||||
| 
 | ||||
| #ifndef FREERTOS_CONFIG_H | ||||
| #define FREERTOS_CONFIG_H | ||||
| 
 | ||||
| /*-----------------------------------------------------------
 | ||||
|  * Application specific definitions. | ||||
|  * | ||||
|  * These definitions should be adjusted for your particular hardware and | ||||
|  * application requirements. | ||||
|  * | ||||
|  * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE | ||||
|  * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.  | ||||
|  * | ||||
|  * See http://www.freertos.org/a00110.html.
 | ||||
|  *----------------------------------------------------------*/ | ||||
| 
 | ||||
| #define configUSE_PREEMPTION		1 | ||||
| #define configUSE_IDLE_HOOK			0 | ||||
| #define configUSE_TICK_HOOK			0 | ||||
| #define configCPU_CLOCK_HZ			( ( unsigned long ) 80000000 ) | ||||
| #define configTICK_RATE_HZ			( ( portTickType ) 100 ) | ||||
| #define configMAX_PRIORITIES		( ( unsigned portBASE_TYPE ) 15 ) | ||||
| #define configMINIMAL_STACK_SIZE	( ( unsigned short )156 ) | ||||
| #define configTOTAL_HEAP_SIZE		( ( size_t ) ( 32 * 1024 ) ) | ||||
| #define configMAX_TASK_NAME_LEN		( 16 ) | ||||
| #define configUSE_TRACE_FACILITY	0 | ||||
| #define configUSE_STATS_FORMATTING_FUNCTIONS 0 | ||||
| #define configUSE_16_BIT_TICKS		0 | ||||
| #define configIDLE_SHOULD_YIELD		1 | ||||
| 
 | ||||
| #define INCLUDE_xTaskGetIdleTaskHandle 1 | ||||
| #define INCLUDE_xTimerGetTimerDaemonTaskHandle 1 | ||||
| 
 | ||||
| #define configCHECK_FOR_STACK_OVERFLOW  2 | ||||
| #define configUSE_MUTEXES  1 | ||||
| #define configUSE_TIMERS    1 | ||||
| 
 | ||||
| #if configUSE_TIMERS | ||||
| #define configTIMER_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) | ||||
| #define configTIMER_QUEUE_LENGTH (10) | ||||
| #define configTIMER_TASK_STACK_DEPTH  ( ( unsigned short ) 512 ) | ||||
| #endif | ||||
| 
 | ||||
| /* Co-routine definitions. */ | ||||
| #define configUSE_CO_ROUTINES 		0 | ||||
| #define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) | ||||
| 
 | ||||
| /* Set the following definitions to 1 to include the API function, or zero
 | ||||
| to exclude the API function. */ | ||||
| 
 | ||||
| #define INCLUDE_vTaskPrioritySet		1 | ||||
| #define INCLUDE_uxTaskPriorityGet		1 | ||||
| #define INCLUDE_vTaskDelete				1 | ||||
| #define INCLUDE_vTaskCleanUpResources	0 | ||||
| #define INCLUDE_vTaskSuspend			1 | ||||
| #define INCLUDE_vTaskDelayUntil			1 | ||||
| #define INCLUDE_vTaskDelay				1 | ||||
| 
 | ||||
| /*set the #define for debug info*/ | ||||
| #define INCLUDE_xTaskGetCurrentTaskHandle 1 | ||||
| #define INCLUDE_uxTaskGetStackHighWaterMark 1 | ||||
| 
 | ||||
| #endif /* FREERTOS_CONFIG_H */ | ||||
| 
 | ||||
							
								
								
									
										2
									
								
								examples/blink/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								examples/blink/Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| TARGET=blink | ||||
| include ../../common.mk | ||||
							
								
								
									
										60
									
								
								examples/blink/blink.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								examples/blink/blink.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,60 @@ | |||
| /* The classic "blink" example
 | ||||
|  * | ||||
|  * This sample code is in the public domain. | ||||
|  */ | ||||
| #include "espressif/esp_common.h" | ||||
| #include "espressif/sdk_private.h" | ||||
| #include "FreeRTOS.h" | ||||
| #include "task.h" | ||||
| #include "esp8266.h" | ||||
| 
 | ||||
| const int gpio = 14; | ||||
| 
 | ||||
| /* This task uses the high level GPIO API (esp_gpio.h) to blink an LED.
 | ||||
|  * | ||||
|  * Even though it reads better than the register-level version in blinkenRegisterTask, | ||||
|  * they compile to the exact same instructions. | ||||
|  */ | ||||
| void blinkenTask(void *pvParameters) | ||||
| { | ||||
|     gpio_enable(gpio, GPIO_OUTPUT); | ||||
|     while(1) { | ||||
| 	gpio_write(gpio, 1); | ||||
| 	vTaskDelay(1000 / portTICK_RATE_MS); | ||||
| 	gpio_write(gpio, 0); | ||||
| 	vTaskDelay(1000 / portTICK_RATE_MS); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /* This task uses all raw register operations to set the pins.
 | ||||
| 
 | ||||
|    It's not fully parameterised, as the IOMUX_SET macro requires the pin number | ||||
|    as part of the GPxx value. | ||||
| 
 | ||||
|    This code compiles to the exact same instructions as blinkenTask, | ||||
|    so it's probably better to use the blinkenTask version. | ||||
| 
 | ||||
|    NOTE: This task isn't enabled by default, see the commented out line in user_init. | ||||
| */ | ||||
| void blinkenRegisterTask(void *pvParameters) | ||||
| { | ||||
|     GPIO_DIR_SET = BIT(gpio); | ||||
|     IOMUX_SET(GP14,GPIO,IOMUX_OE); /* change this line if you change 'gpio' */ | ||||
|     while(1) { | ||||
| 	GPIO_OUT_SET = BIT(gpio); | ||||
| 	vTaskDelay(1000 / portTICK_RATE_MS); | ||||
| 	GPIO_OUT_CLEAR = BIT(gpio); | ||||
| 	vTaskDelay(1000 / portTICK_RATE_MS); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| void user_init(void) | ||||
| { | ||||
|     gpio_enable(13, GPIO_OUTPUT); | ||||
| 
 | ||||
|     sdk_uart_div_modify(0, UART_CLK_FREQ / 115200); | ||||
|     xTaskCreate(blinkenTask, (signed char *)"blinkenTask", 256, NULL, 2, NULL); | ||||
|     //xTaskCreate(blinkenRegisterTask, (signed char *)"blinkenRegisterTask", 256, NULL, 2, NULL);
 | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue