60 lines
2 KiB
C
60 lines
2 KiB
C
/* Blink Example with covergae info
|
|
|
|
This example code is in the Public Domain (or CC0 licensed, at your option.)
|
|
|
|
Unless required by applicable law or agreed to in writing, this
|
|
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
CONDITIONS OF ANY KIND, either express or implied.
|
|
*/
|
|
#include <stdio.h>
|
|
#include "freertos/FreeRTOS.h"
|
|
#include "freertos/task.h"
|
|
#include "driver/gpio.h"
|
|
#include "esp_app_trace.h"
|
|
#include "sdkconfig.h"
|
|
|
|
/* Can use project configuration menu (idf.py menuconfig) to choose the GPIO
|
|
to blink, or you can edit the following line and set a number here.
|
|
*/
|
|
#define BLINK_GPIO CONFIG_BLINK_GPIO
|
|
|
|
void blink_dummy_func(void);
|
|
void some_dummy_func(void);
|
|
|
|
static void blink_task(void *pvParameter)
|
|
{
|
|
// The first two iterations GCOV data are dumped using call to esp_gcov_dump() and OOCD's "esp32 gcov dump" command.
|
|
// After that they can be dumped using OOCD's "esp32 gcov" command only.
|
|
int dump_gcov_after = -2;
|
|
/* Configure the IOMUX register for pad BLINK_GPIO (some pads are
|
|
muxed to GPIO on reset already, but some default to other
|
|
functions and need to be switched to GPIO. Consult the
|
|
Technical Reference for a list of pads and their default
|
|
functions.)
|
|
*/
|
|
gpio_reset_pin(BLINK_GPIO);
|
|
/* Set the GPIO as a push/pull output */
|
|
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
|
|
|
|
while(1) {
|
|
/* Blink off (output low) */
|
|
gpio_set_level(BLINK_GPIO, 0);
|
|
vTaskDelay(500 / portTICK_PERIOD_MS);
|
|
/* Blink on (output high) */
|
|
gpio_set_level(BLINK_GPIO, 1);
|
|
vTaskDelay(500 / portTICK_PERIOD_MS);
|
|
blink_dummy_func();
|
|
some_dummy_func();
|
|
if (dump_gcov_after++ < 0) {
|
|
// Dump gcov data
|
|
printf("Ready to dump GCOV data...\n");
|
|
esp_gcov_dump();
|
|
printf("GCOV data have been dumped.\n");
|
|
}
|
|
}
|
|
}
|
|
|
|
void app_main(void)
|
|
{
|
|
xTaskCreate(&blink_task, "blink_task", configMINIMAL_STACK_SIZE, NULL, 5, NULL);
|
|
}
|