Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Нужна помощь Разработка на esp8266(esp-12x) не работает blink

Тема в разделе "open hardware модули на базе ESP8266", создана пользователем strong.monkey, 10 окт 2018.

Метки:
  1. strong.monkey

    strong.monkey Новичок

    Сообщения:
    3
    Симпатии:
    0
    Доброго времени суток!

    Заказывал на али модуль esp8266 модуль, наконец решил с ним разобраться.
    собрал на макетке по схеме сборку подключил к компу, установил и настроил esp open sdk.
    почитав документацию написал следующий код (стандартный blink)

    Код (C):
    1.  
    2. #include "ets_sys.h"
    3. #include "osapi.h"
    4. #include "gpio.h"
    5. #include "os_type.h"
    6.  
    7. #define user_procTaskPrio        0
    8. #define user_procTaskQueueLen    1
    9. #define GPIO                      BIT1
    10. os_event_t    user_procTaskQueue[user_procTaskQueueLen];
    11. static void user_procTask(os_event_t *events);
    12.  
    13. static os_timer_t some_timer;
    14.  
    15.  
    16. void some_timerfunc(void *arg)
    17. {
    18.     //Do blinky stuff
    19.     if (GPIO_REG_READ(GPIO_OUT_ADDRESS) & GPIO)
    20.     {
    21.         //Set GPIO2 to LOW - TURN OFF the LED
    22.         gpio_output_set(0, GPIO, GPIO, 0);
    23.     }
    24.     else
    25.     {
    26.         //Set GPIO2 to HIGH - TURN ON the LED
    27.         gpio_output_set(GPIO, 0, GPIO, 0);
    28.     }
    29. }
    30.  
    31. //Do nothing function
    32. static void ICACHE_FLASH_ATTR  user_procTask(os_event_t *events)
    33. {
    34.     os_delay_us(10);
    35. }
    36.  
    37. //Init function
    38. void ICACHE_FLASH_ATTR user_init()
    39. {
    40.     // Initialize the GPIO subsystem.
    41.     gpio_init();
    42.  
    43.     //Set GPIO2 to output mode
    44.     PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1);
    45.  
    46.     //Set GPIO2 low
    47.     gpio_output_set(0, GPIO, GPIO, 0);
    48.  
    49.     //Disarm timer
    50.     os_timer_disarm(&some_timer);
    51.  
    52.     //Setup timer
    53.     os_timer_setfn(&some_timer, (os_timer_func_t *)some_timerfunc, NULL);
    54.  
    55.     //Arm the timer, &some_timer is the pointer 1000 is the fire time in ms
    56.     //0 for once and 1 for repeating timer
    57.     os_timer_arm(&some_timer, 1000, 1);
    58.  
    59.     //Start os task
    60.     system_os_task(user_procTask, user_procTaskPrio,user_procTaskQueue, user_procTaskQueueLen);
    61. }
    62.  
    программа компилируется без всяких проблем

    Screen Shot 2018-10-10 at 19.54.31.png
    после компиляции получаю фал прошивки который лежит в firmware

    Screen Shot 2018-10-10 at 19.55.20.png

    Собственно перед сомой прошивкой, очистил flash память модуля

    Код (Text):
    1. esptool.py --port /dev/tty.usbserial-A100JQM3 erase_flash
    все прекрасно подключилось процесс очистки прошел без ошибок.
    Потом я прочитал файл прошивки

    Код (Text):
    1. esptool.py --port /dev/tty.usbserial-A100JQM3 read_flash 0 12000 test.bin
    с помощью команды hexdump убедился что модуль чист.

    Код (Text):
    1. hexdump -C test.bin | head -10
    Screen Shot 2018-10-10 at 20.04.11.png

    Потом залил новую прошивку (blink), процесс прошел без ошибок

    Screen Shot 2018-10-10 at 20.11.47.png

    в итоге у меня просто горит синий светодиод, хотя должен мигать. Прошивка залилась
    так как я ее смог считать с модуля и просмотреть HEX

    Screen Shot 2018-10-10 at 20.14.08.png

    полный пример кода и Makefile тут mirkos-vf/ESP8266
     
  2. strong.monkey

    strong.monkey Новичок

    Сообщения:
    3
    Симпатии:
    0
    Перезалил я esp_init_data_default.bin, поробовал я залить опять свой blink. Таже картина сразу после заливки просто горит сини светодиод, нажимаю reset и не чего не горит. Может я не правильно залил esp_init_data_default.
    ------------
    Почему я взял open-sdk ? наверно потому что это первое что на гуглил в интернете.
    фирменное SDK это esp-idf? Мне оно на глаза попадалось но почему то я решил что оно
    только для esp32
     
  3. strong.monkey

    strong.monkey Новичок

    Сообщения:
    3
    Симпатии:
    0
    Долго меня не было!
    Я так понимаю что какой бы я SDK не выбрал, мне все ровно нужен компилятор xtensa-lx106-elf-gcc а для прошивки нужен esptool.py?
    Главное это указать размер флеш в прошивке в соответствии с адресом заливки esp_init_data_default.
    На самом деле последнее мне не очень понятно именно нужно указать размер флэш? Может есть дока?
     
  4. nikolz

    nikolz Гуру

    Сообщения:
    4.698
    Симпатии:
    452
    Вот здесь все написано
    Flashing the firmware - NodeMCU Documentation
     

Поделиться этой страницей