2021-06-09 07:25:56 +01:00
|
|
|
/* Hello World Example
|
|
|
|
|
|
|
|
|
|
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>
|
2022-11-30 12:59:58 +00:00
|
|
|
#include <inttypes.h>
|
2021-06-09 07:25:56 +01:00
|
|
|
#include "sdkconfig.h"
|
|
|
|
|
#include "freertos/FreeRTOS.h"
|
|
|
|
|
#include "freertos/task.h"
|
|
|
|
|
#include "esp_system.h"
|
2022-11-30 12:59:58 +00:00
|
|
|
#include "esp_flash.h"
|
|
|
|
|
#include "esp_err.h"
|
2022-03-21 11:33:10 +00:00
|
|
|
#include "esp_idf_version.h"
|
|
|
|
|
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0)
|
|
|
|
|
#include "esp_chip_info.h"
|
|
|
|
|
#endif
|
2021-06-09 07:25:56 +01:00
|
|
|
|
|
|
|
|
#include "RustApi.h"
|
|
|
|
|
|
|
|
|
|
void app_main(void)
|
|
|
|
|
{
|
2022-11-30 12:59:58 +00:00
|
|
|
uint32_t flash_size;
|
|
|
|
|
|
2021-06-09 07:25:56 +01:00
|
|
|
printf("Hello world!\n");
|
|
|
|
|
|
|
|
|
|
/* Print chip information */
|
|
|
|
|
esp_chip_info_t chip_info;
|
|
|
|
|
esp_chip_info(&chip_info);
|
|
|
|
|
printf("This is %s chip with %d CPU cores, WiFi%s%s, ",
|
|
|
|
|
CONFIG_IDF_TARGET,
|
|
|
|
|
chip_info.cores,
|
|
|
|
|
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
|
|
|
|
|
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
|
|
|
|
|
|
|
|
|
|
printf("silicon revision %d, ", chip_info.revision);
|
|
|
|
|
|
2022-11-30 12:59:58 +00:00
|
|
|
ESP_ERROR_CHECK( esp_flash_get_size(NULL, &flash_size) );
|
|
|
|
|
printf("%"PRIu32"MB %s flash\n", flash_size / (1024 * 1024),
|
2021-06-09 07:25:56 +01:00
|
|
|
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
|
|
|
|
|
|
2022-11-30 12:59:58 +00:00
|
|
|
printf("Free heap: %"PRIu32"\n", esp_get_free_heap_size());
|
2021-06-09 07:25:56 +01:00
|
|
|
|
|
|
|
|
int x = 2;
|
|
|
|
|
int y = 3;
|
|
|
|
|
int sum = add_in_rust(x, y);
|
|
|
|
|
printf("Rust calculated %d + %d = %d\n\n", x, y, sum);
|
|
|
|
|
|
2021-08-17 10:08:22 +01:00
|
|
|
x = 9;
|
|
|
|
|
y = 10;
|
|
|
|
|
sum = add_in_rust_inline_asm(x, y);
|
|
|
|
|
printf("Rust calculated (using asm!) %d + %d = %d\n\n", x, y, sum);
|
|
|
|
|
|
2021-06-09 07:25:56 +01:00
|
|
|
for (int i = 10; i >= 0; i--) {
|
|
|
|
|
printf("Restarting in %d seconds...\n", i);
|
|
|
|
|
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
|
|
|
|
}
|
|
|
|
|
printf("Restarting now.\n");
|
|
|
|
|
fflush(stdout);
|
|
|
|
|
esp_restart();
|
|
|
|
|
}
|